Skip to main content

Errors, idempotency & rate limits

Errors

Every error shares one shape:
Match on error.code (a stable slug), not the human-readable message.

Idempotency

POST / PATCH accept an Idempotency-Key header. Replaying the same key on the same route within 24h returns the original response with Idempotency-Replayed: true.
Pair idempotency keys with fresh request signatures: the signature must always be fresh (replay-protected), but the Idempotency-Key is what makes the operation safe to retry.

Rate limits

Limits are per key. Exceeding one returns 429.
Per-account rate tiers are a Phase-2 item. Phase 1 applies these flat defaults to every key.