Skip to main content

Base URL

All endpoints are prefixed with /api/v1.

Authentication

Include your API key as a Bearer token in the Authorization header:
See Authentication for details on key management, IP allowlisting, and rate limits.

Request Format

  • All request bodies must be JSON with Content-Type: application/json.
  • All timestamps use ISO 8601 format with optional microsecond precision.

Response Format

Successful responses return JSON. Event ingestion endpoints return 202 Accepted to indicate asynchronous processing.

Error Format

Error responses use a consistent structure:

Status Codes

Rate Limits

API requests are rate limited per workspace: When rate limited, the response includes a Retry-After header.

Cursor Pagination

List endpoints use cursor-based pagination with URL-safe base64 cursors encoding microsecond-precision timestamps.

Response Shape

data
array
Array of results for the current page.
pagination.has_more
boolean
Whether more results exist beyond this page.
pagination.next_cursor
string | null
URL-safe base64 cursor to pass as the cursor query parameter for the next page. Only present when has_more is true.
pagination.total
integer
Total number of results matching the query.

Usage

Async Responses

Event ingestion endpoints (POST /api/v1/events and POST /api/v1/events/batch) return 202 Accepted. The event ID is pre-generated and returned immediately while processing (hash computation, geo enrichment, alert evaluation, log stream fanout) happens asynchronously.