Pricing and limits
How quotas and rate limits work on the Tase API: requests per minute, concurrency, 429 handling with Retry-After, fair use, and usage tracking.
Every Tase account has quotas that keep the platform fast for everyone. This page explains the concepts — what is limited, what happens when you hit a limit, and how to build around it. Concrete numbers are not listed here because they vary by plan; the current figures are always on the pricing page.
What is limited
- Requests per minute (RPM): how many API requests you can send in a rolling one-minute window. This is the limit you will encounter most often.
- Concurrency: how many requests can be in flight at the same time. Streaming responses count as in flight until the stream closes.
- Usage quota: total consumption over a billing period. When a quota is exhausted, requests are rejected until the period resets or the plan is upgraded.
When you hit a limit: 429
Requests over a limit receive HTTP 429 Too Many Requests with a Retry-After header telling you how many seconds to wait before retrying. Always honor it — retrying earlier only extends the wait.
HTTP/1.1 429 Too Many Requests
Retry-After: 12
Content-Type: application/json
{
"error": {
"type": "rate_limit_exceeded",
"message": "Requests-per-minute limit reached for this plan.",
"retry_after": 12
}
}Retry pattern
async function withRetry(makeRequest, maxAttempts = 3) {
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
const res = await makeRequest();
if (res.status !== 429) return res;
const waitSeconds = Number(res.headers.get('Retry-After') ?? 2 ** attempt);
await new Promise((r) => setTimeout(r, waitSeconds * 1000));
}
throw new Error('Rate limited after ' + maxAttempts + ' attempts');
}Do not retry in a tight loop
Fair use
Limits exist to keep latency low for every account, not to meter normal product usage. Sustained automated traffic that looks like bulk scraping, load testing against production, or resale of raw API capacity falls outside fair use and may be throttled independently of your plan limits. If you have a legitimate high-volume use case, contact support before you ship it — higher limits can be arranged.
Plans
Every plan carries its own RPM ceiling, concurrency ceiling, and usage quota, and higher tiers raise all three. Numbers change as the platform evolves, so this page intentionally does not list them — the pricing page is the single source of truth for current figures per plan.
Tracking your usage
- Your account dashboard shows consumption for the current billing period, broken down by model and by day.
- Rate-limit headers on every API response report the remaining allowance in the current window, so clients can slow down before hitting 429.
- Usage alerts can notify you when consumption crosses a threshold you set, before a quota runs out.
Do streamed responses count differently?+
A streaming request counts as one request against RPM, but it occupies a concurrency slot for as long as the stream is open. Long-running streams are the most common way to hit the concurrency ceiling.
Do routed (escalated) requests cost more?+
Escalation is handled by the platform and billed under your plan. How escalated requests are metered depends on the plan — the pricing page has the current details.
What happens when my quota runs out mid-period?+
Requests are rejected with a quota error until the period resets. Upgrading takes effect immediately, so you can restore access without waiting for the reset.