Public API
Authenticate with an API key, then create events and identify users within your Organization.
The EmitKit API v1 has three operations:
createEventsends an event to a named Channel. EmitKit creates the Channel when it doesn’t exist yet.identifyUsercreates or updates the identity of one of your users.deleteIdentityerases 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/*.
Create Event
The request, response, and retry contract.
Identify User
Identities, properties, and aliases.
Delete Identity
Erase one person’s identity and aliases.
API keys
Create, rotate, and revoke keys.
Complete reference
Every schema, example, and error response.
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, andX-RateLimit-Reset. Over the limit you get429 Too Many RequestswithRetry-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.