LeenOpsDocs
Developer

Rate Limits

Plan for quotas and abuse protection.

Rate limits depend on the product area, plan, and route. The values below are verified from current code on 2026-06-29; treat them as implementation notes, not commercial commitments.

Verified limits

AreaCurrent behavior
Chatbot message API/api/cxo/chatbot enforces API-key, IP, and session tiers. Defaults are 60/min and 1000/hour per API key, 100/min and 500/hour per IP, and 20/min and 200/hour per session. API-key rows can override the API-key minute/hour values.
Chatbot config handshake/api/cxo/config returns the active key's minute/hour limits to the widget as informational config.
Search API/api/search allows 20 requests per minute per rate-limit identifier.
Manual agent trigger/api/agents/[id]/trigger defaults to 10 requests/minute per agent and caller, with stricter 3 requests/5 minutes for selected heavier agents.
Voice commercial admissionVoice plans define concurrency limits and monthly minute caps. Default concurrency ranges from 2 for cx_voice_starter to 20 for enterprise.
Voice synthesis/api/voice/synthesize rejects text above 5000 characters.
Inngest workflowsMany workflows define concurrency in the function registration; limits are workflow-specific rather than one global number.

Client behavior

Handle 429 Too Many Requests by reading Retry-After, retry_after, or retry_after_seconds when present, backing off, and showing the user a clear message.

Publishing rule

Do not publish a single global LeenOps quota table unless it is generated from route code and plan configuration. Quotas are currently distributed across route handlers, API-key rows, budget tables, voice commercial plans, and Inngest function definitions.