Skip to content
EmitKitDocs
Esc
↑↓navigate↵open⌘Jpreview
On this page

Public API

Authenticate with an API key, then create events and identify users within your Organization.

The EmitKit API v1 has three operations:

  • createEvent sends an event to a named Channel. EmitKit creates the Channel when it doesn’t exist yet.
  • identifyUser creates or updates the identity of one of your users.
  • deleteIdentity erases an identity, so you can honour one of your users’ erasure requests without waiting for retention.

The base URL is https://api.emitkit.com. Every /v1/* route is also served at /api/v1/*.

Authentication

Send an EmitKit API key in one of these headers:

Authorization: Bearer emitkit_REPLACEWITHKEY
X-API-Key: emitkit_REPLACEWITHKEY

If you send both, they must carry the same key. A key belongs to one Organization and is bound to one Project. EmitKit takes the Organization and Project from the key; IDs in a request body never select them.

Limits

  • Rate limit: up to 100 requests per API key in a 60-second window. The window starts again 60 seconds after the key’s last accepted request. Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. Over the limit you get 429 Too Many Requests with Retry-After.
  • Request size: request bodies are limited to 1 MiB, checked before authentication (413).
  • Event size: a stored event is limited to 16 KB across its fields, including metadata (413).

Errors and request IDs

Every response carries an X-Request-ID header, and error bodies repeat it as requestId. Include it when you contact support. Error bodies never contain credentials or internal details.

Erasing a user

DELETE /v1/identities/{user_id} erases one person’s identity: its properties and aliases are deleted. The events you already sent are kept for their normal 90 days, but the dashboard no longer shows that person on events recorded before the erasure. Titles and metadata aren’t changed, so don’t put personal data you may need to erase there.

Pass the canonical user_id; an alias isn’t accepted. The response is 200 OK with "status": "erased", or 404 Not Found when EmitKit doesn’t know the user, so repeating a completed erasure doesn’t report success. Any API key of the Organization can erase an identity.

Was this page helpful?