| Endpoint | Limit | Notes |
|---|---|---|
| Dashboard and authenticated API | 240 requests per minute | Per workspace. Comfortably above interactive use; a backfill should pace itself below it. |
| Public chat endpoint | Per bot, configurable | Each assistant carries its own per-minute limit so one busy site cannot starve another. An adaptive bot challenge sits in front of it. |
| Sign in | 10 per minute | — |
| Registration | 20 per hour | — |
| Password reset | 5 per hour | — |
| One-time code request | 5 per hour | Verification of the code itself allows 20 per hour. |
| Team invitations | 30 per hour | — |
| Test messages from the dashboard | 20 per minute | — |
When you hit one
Two different errors — tell them apart
Too many requests
Wait the seconds in the Retry-After header, then back off with jitter so clients don't re-synchronise.
The error pageYour allowance is spent
A billing boundary, not a speed limit — retrying won't help until the cycle resets or you top up.
The error pageRetrying a 402 with backoff is the most common integration bug here — it waits for something that was never going to change on its own.
Bulk work
Backfills without surprises
Pace below the limit
The API isn't billed per request, so there's nothing to gain by going faster.
Send an idempotency key
A retry after a timeout returns the original result, not a second record.
Blocked? Ask
The numbers are defaults, not a policy — a legitimate workload is worth an email.
Headers and mechanism: retries, versioning and limits · every error code