API Client

Overview

Umami API Client is built in TypeScript and contains functions to call every API endpoint available Umami.

Requirements

Install Yarn

npm install @umami/api-client

Configure

The following environment variables are required to call your own API.

UMAMI_API_CLIENT_USER_ID
UMAMI_API_CLIENT_SECRET
UMAMI_API_CLIENT_ENDPOINT

To access Umami Cloud, these environment variables are required.

UMAMI_API_KEY
UMAMI_API_CLIENT_ENDPOINT

More details on accessing Umami Cloud can be found under API key.

Usage

Import the configured api-client and query using the available class methods.

import { client } from '@umami/api-client';
 
const { ok, data, status, error } = await client.getWebsites();

The result will come back in the following format.

ok: boolean;
status: number;
data?: T;
error?: any;

API Client function mapping

Me

getMe() : GET /me
updateMyPassword(data) : POST /me/password
getMyWebsites() : GET /me/websites

Users

getUsers() : GET /users
createUser(data) : POST /users
getUser(id) : GET /users/{id}
updateUser(id, data) : POST /users/{id}
deleteUser(id) : DEL /users/{id}
getUserWebsites(id) : GET /users/{id}/websites
getUserUsage(id, data) : GET /users/{id}/usage

Teams

getTeams() : GET /teams
createTeam(data) : POST /teams
joinTeam(data) : POST /teams/join
getTeam(id) : GET /teams/{id}
updateTeam(id) : POST /teams/{id}
deleteTeam(id) : DEL /teams/{id}
getTeamUsers(id) : GET /teams/{id}/users
deleteTeamUser(teamId, userId): DEL /teams/{teamId}/users/{userId}
getTeamWebsites(id) : GET /teams/{id}/websites
createTeamWebsites(id, data) : GET /teams/{id}/websites
deleteTeamWebsite(teamId, websiteId) : DEL /teams/{teamId}/websites/{websiteId}

Websites

getWebsites() : GET /websites
createWebsite(data) : POST /websites
getWebsite(id) : GET /websites/{id}
updateWebsite(id, data) : POST /websites/{id}
deleteWebsite(id) : DEL /websites/{id}
getWebsiteActive(id) : GET /websites/{id}/active
getWebsiteEvents(id, data) : GET /websites/{id}/events
getWebsiteMetrics(id, data) : GET /websites/{id}/metrics
getWebsitePageviews(id, data) : GET /websites/{id}/pageviews
resetWebsite(id) : GET /websites/{id}/reset
getWebsiteStats(id, data) : GET /websites/{id}/stats

Event Data

getEventDataEvents(id, data) : GET /event-data/events
getEventDataFields(id, data) : GET /event-data/fields
getEventDataStats(id, data) : GET /event-data/stats

Environment Variables

UMAMI_API_CLIENT_USER_ID = <user uuid>

The USER_ID of the User performing the API calls. Permission restrictions will apply based on application settings.

UMAMI_API_CLIENT_SECRET = <random string>

A random string used to generate unique values. This needs to match the APP_SECRET used in the Umami application.

UMAMI_API_CLIENT_ENDPOINT = <API endpoint>

The endpoint of your Umami API. example: https://{yourserver}/api/

UMAMI_API_KEY = <API Key string>

A unique string provided by Umami Cloud.