Record one event
Records a single event for the project identified by X-Project-Key. X-User-Id names the person: your own user id, or an anonymous id you generate and keep per visitor; the user exists by its events, no identify call needed (identify only adds a profile). Without the header the event is filed under a profile derived from the source address and User-Agent, which merges every caller behind one server, proxy or NAT into a single user. 201 means the event is durably accepted: written and fsynced to the api's ingest log, from which it reaches analytics within about a second while ClickHouse is up. It does not mean the event is already queryable. 503 with Retry-After means nothing was accepted; retry. A retry with the same message_id is stored once (docs/EVENT_IDENTITY.md).
Authorization
projectKey Public write key. Safe to embed in client applications; grants ingest only. Paired with X-Project-Secret it also grants read-only programmatic access.
In: header
Header Parameters
Who the event belongs to: your user id, or a per-visitor anonymous id you keep (the SDKs generate one). Same namespace as identify's custom_id. Omit only when a shared, address-derived profile is acceptable.
1 <= length <= 256Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/events/track" \ -H "Content-Type: application/json" \ -d '{ "event_name": "checkout_completed", "event_type": "track", "properties": { "items": 3, "order_id": "ord_456", "total": 99.99 } }'{ "status": "ok", "user_uuid": "00000000-0000-0000-8b20-15635fadf462"}