rate_limit_per_minute, rate_limit_per_day). When exceeded, Clausum returns 429 Too Many Requests with code RATE_LIMIT_EXCEEDED.
Defaults (new secret keys)
Publishable and ingest keys may use lower defaults. Adjust per key in Conexiones → Claves API when creating or editing a secret key.
Limits are per API key. Use separate keys for checkout vs batch jobs so bursts do not throttle each other.
Production enforcement
In production, rate limits use Upstash Redis (UPSTASH_REDIS_REST_URL + UPSTASH_REDIS_REST_TOKEN) for distributed counting across Vercel instances. Without Upstash in production, Clausum fails closed on rate-limit checks — ensure Redis is configured before go-live.
Sandbox / development may use in-memory fallback when Upstash is not set.
Response headers
Handling 429s
Tips
Assess once per decision
Assess once per decision
Call assess at checkout submit or payout authorization — not on every keystroke. Use the browser SDK for device signals only.
Idempotent retries
Idempotent retries
Retries after timeout should reuse the same
order_id or Idempotency-Key — they do not double-count against velocity the same way duplicate orders would.Request higher limits
Request higher limits
High-volume production? Contact api@clausum.ai before launch.