Errors & plan limits

Ingest API errors return JSON { error: string, code?: string }. Use code for programmatic handling where present.

HTTP status codes

StatusBody
401Missing or invalid Authorization bearer token
403Organization mismatch; org suspended; forbidden scope
402 / 429Plan limit: events/month or feature cap (code: plan_limit)
404Resource not found (approvals, events)
409Conflict: e.g. approval not in approved state
422Validation: invalid JSON, signature, envelope fields
503Dependency unavailable (database, policy engine)

SDK errors

  • PolicyDeniedError: wrapFetch policy returned deny; no HTTP call made
  • ApprovalRequiredError: includes approvalId for obligation flow
  • Network errors include hint to start pnpm dev when API unreachable

Free plan defaults (typical)

  • 5,000 events / month
  • 3 ingest API keys
  • 5 members
  • 90-day retention

Exact limits are shown in Console → Settings → Plan & usage.

Idempotency

Re-posting the same event with the same Idempotency-Key returns 200 with status: "replayed": safe for retries after network failures.