Usage limits
Limits exist so that a runaway loop at one integrator does not degrade the service for everyone else. They are sized so a normal company never meets them.
What is included
Section titled “What is included”| Limit | Value |
|---|---|
| Requests per calendar month | 25,000 |
| Requests per minute (burst) | 60 |
The per-minute limit catches runaways — a loop with no stop condition, a badly written retry. The monthly limit is the one that matches your real usage.
Test mode is counted separately. It is rate-limited the same way, but it never eats into your live quota: trying things out costs nothing.
What happens as you approach the limit
Section titled “What happens as you approach the limit”We do not cut the service off at 100 %. A hard stop would turn a commercial conversation into a production outage, and it would hit precisely those companies whose business is growing.
Instead:
- You are notified at 50 %, 80 % and 100 % of your monthly quota.
- Past 100 %, an overage of 20 % is allowed — once per calendar month. Your calls keep going through.
- Once that overage is spent, calls are refused until the next month.
The allowance does not renew within the same month: it is there to give you time to call us, not to let you settle above your limit.
When a limit is reached
Section titled “When a limit is reached”The response is a 429, with the headers that say what to do:
HTTP/1.1 429 Too Many RequestsRetry-After: 30Tay-RateLimit-Limit: 60Tay-RateLimit-Remaining: 0Tay-RateLimit-Reset: 1758186794Two codes, because the two failures need different reactions. rate_limited
means slow down and retry; quota_exceeded means the month is spent and
retrying will not help until it resets.
{ "error": { "code": "rate_limited", "message": "Too many requests: the limit is 60 per minute." }}{ "error": { "code": "quota_exceeded", "message": "The monthly quota of 25000 requests, and the overage allowance on top of it, are spent." }}Both carry a Link: <…>; rel="help" header pointing at the page for asking for
a higher limit. There is no self-serve upgrade — see below.
Respect Retry-After rather than retrying immediately. A client that hammers
a 429 only spends its own allowance faster.
Checking your usage
Section titled “Checking your usage”curl https://staging.tayo.pro/api/v1/usage \ -H "Authorization: Bearer tay_live_your_key"{ "mode": "live", "period": "2026-09", "resetAt": "2026-10-01T00:00:00.000Z", "limits": { "monthlyRequests": 25000, "burstPerMinute": 60, "source": "default" }, "month": { "used": 12483, "remaining": 12517, "state": "within" }}state is within below the quota, overage inside the one-shot allowance,
and exhausted once calls are being refused. source reads override when
your company has a negotiated limit rather than the published default.
The key’s own mode is what you get: a tay_test_… key reports test usage, and
never live figures.
This endpoint does not count against the monthly quota and is never refused by it — it is the one call that still answers once the quota is spent.
Usage, along with your failed requests of the last 30 days, is also visible in Settings → API.
If you need more
Section titled “If you need more”Contact us. The limit is raised per company, with no change on your side, and we agree together on a price that matches your volume.
There is no tier grid to pick from: heavy usages differ too much from one another for a grid to do them justice.
This conversation is commercial, not support: it is never charged — see Support.