API Reference

The public umami-analytics surface: configuration, authentication, sending events, and querying stats. Every network operation has a synchronous function and an identically-signed _async twin.

Configuration

One-time setup. set_url_base() is required before any operation; Cloud users call set_cloud_api_key() instead.

set_url_base()

Set the base URL of your self-hosted Umami instance.

set_website_id()

Set the default website ID used for subsequent calls.

set_hostname()

Set the default hostname used when sending events and page views.

set_cloud_api_key()

Authenticate against Umami Cloud with an API key instead of login().

clear_cloud_api_key()

Exit Cloud mode and return to self-hosted/token behavior.

enable()

Enable event and page view tracking.

disable()

Disable event and page view tracking.

Authentication

Required for the query endpoints and verify_token. Not needed to send events.

login()

Log into a self-hosted Umami instance and retrieve a temporary auth token.

login_async()

Log into a self-hosted Umami instance and retrieve a temporary auth token.

is_logged_in()

Whether a credential is currently set locally.

verify_token()

Verify that the currently stored credential is still valid.

verify_token_async()

Verify that the currently stored credential is still valid.

Sending events

Send custom events, revenue, and page views. No login required — only a URL base and a website id/hostname.

new_event()

Create a new custom event in Umami for the given website_id and hostname

new_event_async()

Create a new custom event in Umami for the given website_id and hostname

new_revenue_event()

Create a new revenue event in Umami. This is a convenience wrapper around

new_revenue_event_async()

Create a new revenue event in Umami. This is a convenience wrapper around

new_page_view()

Create a new page view event in Umami for the given website_id and hostname

new_page_view_async()

Create a new page view event in Umami for the given website_id and hostname

Querying stats

Read analytics back out. Requires login (or a Cloud API key).

websites()

All the websites that are registered in your Umami instance.

websites_async()

All the websites that are registered in your Umami instance.

website_stats()

Retrieves the statistics for a specific website over a date range.

website_stats_async()

Retrieves the statistics for a specific website over a date range.

active_users()

Retrieves the number of currently-active visitors for a specific website.

active_users_async()

Retrieves the number of currently-active visitors for a specific website.

Health

Check Umami server connectivity.

heartbeat()

Check whether the configured Umami server is reachable and healthy.

heartbeat_async()

Check whether the configured Umami server is reachable and healthy.

Response models

Pydantic models returned by the query functions.

models.WebsitesResponse

The paged envelope returned by the Umami /api/websites endpoint.

models.Website

A website registered in your Umami instance.

models.WebsiteStats

Aggregate traffic statistics for a website over a time range.

models.WebsiteStatsCmp

Prior-period comparison totals for a website’s statistics.

models.LoginResponse

The result of authenticating against a self-hosted Umami instance.

models.User

An authenticated Umami user account.

models.WebsiteUser

A minimal reference to the user who owns or created a website.

Errors

Exception hierarchy. ValidationError is the base; OperationNotAllowedError is raised when required state (url_base, login) is missing.

errors.ValidationError

Base exception raised when an input or argument fails validation.

errors.OperationNotAllowedError

Raised when the SDK is missing required state for an operation.