Skip to main content
The endpoint pages in this tab are generated from the live OpenAPI document the API itself serves - the same Zod schemas the server validates every request against. The reference cannot drift from the deployed API.

Base URL

All examples and the interactive playground target the nonprod environment:
Production base URLs are provided during partner onboarding.

Conventions

  • Auth - Authorization: Bearer <org_… key> on every endpoint, except POST /v1/track, which takes a publishable ek_live_… tracking key as ?key= or the body key field. See Authentication.
  • Wire format - JSON with snake_case field names. Timestamps are ISO 8601 with timezone; dates (like dob) are plain YYYY-MM-DD strings.
  • Errors - one envelope everywhere: { "error": { "code", "status", "message", "details"? } }. The code is stable; message wording is not a contract.
  • Idempotency - endpoints that declare it accept an Idempotency-Key header. Same key + same body → the original response is replayed. Same key + different body → 409 IDEMPOTENCY_CONFLICT.
  • Async jobs - bulk import validation and commit run asynchronously: the call returns 202 Accepted and you poll the job resource for state.

Surfaces

The raw OpenAPI document is available at /openapi/partner.json.