Base URL
Authentication
Authenticate every request with an API key as a bearer token:401.
Request limits
| Limit | Value |
|---|---|
| Maximum request body | 4 MiB |
| Maximum events per request | 500 |
413. Split large workloads into multiple batches.
Errors
Every error response has the same shape:error.id | Status | Meaning |
|---|---|---|
invalid_request_body | 400 | Body is missing or not valid JSON |
invalid_event_batch | 400 | JSON does not match { events: [...] } with valid events |
unauthorized | 401 | Missing or invalid API key |
batch_too_large | 413 | Request body exceeds 4 MiB |
too_many_events | 413 | More than 500 events in one request |
internal_server_error | 500 | Unexpected server error |
ingest_unavailable | 503 | Ingest is temporarily unavailable |
Retries
- Retry on
5xx,503, and network failures, with backoff. - Do not retry
400,401, or413— fix the request instead. - Reuse the same event
idvalues when retrying. Events are deduplicated by ID, so retries never create duplicates — see Delivery guarantees.
Success
A successful request returns202 Accepted: events are validated and durably queued, and will appear in the dashboard within seconds. See POST /v1/ingest-events.