Errors & plan limits
Ingest API errors return JSON { error: string, code?: string }. Use code for programmatic handling where present.
HTTP status codes
| Status | Body |
|---|---|
401 | Missing or invalid Authorization bearer token |
403 | Organization mismatch; org suspended; forbidden scope |
402 / 429 | Plan limit — events/month or feature cap (code: plan_limit) |
404 | Resource not found (approvals, events) |
409 | Conflict — e.g. approval not in approved state |
422 | Validation — invalid JSON, signature, envelope fields |
503 | Dependency unavailable (database, policy engine) |
SDK errors
PolicyDeniedError— wrapFetch policy returned deny; no HTTP call madeApprovalRequiredError— includesapprovalIdfor obligation flow- Network errors include hint to start
pnpm devwhen 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.