The tier is selected automatically from the request — reads and mutations don’t share a bucket, so heavy polling doesn’t starve your writes (or vice versa).
When you exceed a limit
The API responds with429 Too Many Requests:
Staying under the limits
- Prefer webhooks over polling. Every request outcome is pushed to your webhook endpoint; a poll loop against
GET /request/{id}spends read budget to learn what a webhook would have told you immediately. - Page deliberately. List endpoints accept
pageSizeup to 100 — one page of 100 costs a single read, not ten pages of 10. - Treat the resend limit as a safety rail.
PATCH /request/resenddelivers a new OTP to a real person; 20/minute is deliberately tight to protect recipients from notification storms. - One key per integration. Limits are per key, so separate workloads (e.g. a backend service and an internal script) don’t compete if they use their own keys.