Sending stats
POST /api/send
To register an event, you need to send a POST to /api/send with
the following data:
For Umami Cloud send a POST to https://cloud.umami.is/api/send.
Parameters
| Parameter | Type | Description |
|---|---|---|
payload.hostname | string | Name of host. |
payload.screen | string | Screen resolution (ex. "1920x1080"). |
payload.language | string | Language of visitor (ex. "en-US"). |
payload.url | string | Page URL. |
payload.referrer | string | Referrer URL. |
payload.title | string | Page title. |
payload.tag | string | Additional tag description. |
payload.id | string | Session identifier. |
payload.website | string | Website ID. |
payload.name | string | Name of the event. |
payload.data | object | (optional) Additional data for the event. |
type | string | event is currently the only type available. |
Sample payload
{
"payload": {
"hostname": "your-hostname",
"language": "en-US",
"referrer": "",
"screen": "1920x1080",
"title": "dashboard",
"url": "/",
"website": "your-website-id",
"name": "event-name",
"data": {
"foo": "bar"
}
},
"type": "event"
}Note, for /api/send requests you do not need to send an
authentication token.
Also, you need to send a proper User-Agent HTTP header or
your request won't be registered.
Sample response
{
"cache": "xxxxxxxxxxxxxxx",
"sessionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visitId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}Programmatically
You can generate most of these values programmatically with JavaScript using the browser APIs. For example:
const data = {
payload: {
hostname: window.location.hostname,
language: navigator.language,
referrer: document.referrer,
screen: `${window.screen.width}x${window.screen.height}`,
title: document.title,
url: window.location.pathname,
website: 'your-website-id',
name: 'event-name',
},
type: 'event',
};