Skip to content

Rate Limits and Quotas ​

Your rate limit is the number of requests you can send per minute. If you exceed it, the API returns 429 Too Many Requests.

TIP

Your plan sets your request limit. Check the table below.

Rate limits ​

Limits apply per account to requests sent in the previous minute. All live keys share this limit; creating more keys does not increase it. Test keys (api_test_) have a separate limit.

PlanRate limit
Free10 requests per minute, results limited to the first 5 pages
Starter / Basic / Professional50 requests per minute
Corporate200 requests per minute

Starter, Basic and Professional allow 50 requests per minute. Their quotas and features differ. Corporate allows 200 requests per minute. On Free, requesting page 6 or later returns 400 ER0173.

Exceeding the limit returns 429 ER0203. Repeated violations can temporarily block your key. While blocked, requests return 429 ER0204.

Results per page ​

Your plan also limits per_page, the number of results per page. The default is 100 or your plan's maximum, whichever is lower. Without per_page, Free returns 10 articles and Starter returns 50.

PlanMax per_page
Free10
Starter50
Basic200
Professional250
Corporate250

If per_page exceeds your plan's maximum, the API returns 400 ER0171. The error message states the allowed value (Limit is out of range. Your plan allows up to 10 results per page.).

On Free, you can access 5 pages of 10 articles: at most 50 articles per search.

Title search window ​

Title searches can cover at most 31 days of published_at per request. This limit applies to all plans and endpoints, including exports, SSE and WebSocket. It covers title, title_starts_with, title_ends_with, title_pattern and query.

RequestResult
Title search without published_at.start / published_at.endLast 31 days are searched. 200 with an ER0366 warning in meta.warnings and an x-query-window-clamped: 31 header
Title search with a range wider than 31 days400 with code ER0110
Title search with a range of 31 days or lessRuns as requested
Any request without a title searchNo range limit

To search a longer period, split it into ranges of 31 days or less and send a separate request for each range. See Search window limit for examples.

Free plan delay ​

On Free, articles become available 12 hours after publication. The delay applies to searches, counts, trends, SSE, WebSocket and webhook delivery. Starter and higher plans have no added delay.

On Free, exports other than JSON and the Trends endpoint return 403 ER0706. See Plan gates for all features that require a paid plan.

Fact Check ​

Fact Check (/v1/fact-check) requires a paid plan and allows 10 requests per minute. This limit applies in addition to your plan's overall rate limit. Exceeding it returns 429 ER0203.

Natural language prompt ​

The prompt parameter is available on Basic and above. On Free and Starter it returns 403 ER0706 before the translation runs, so no points are spent.

Planprompt
FreeNo
StarterNo
BasicYes
ProfessionalYes
CorporateYes

The prompt parameter writes filters for you. You can also send those filters directly, including the boolean query parameter, without using prompt.

SSE Stream Connections ​

Each plan has a limit on the number of concurrent SSE stream connections:

PlanMax SSE Connections
Free0
Starter2
Basic2
Professional10
Corporate50

If you exceed the limit, the API will return a 429 error with code ER0360.

Monitoring Rate Limits ​

Read these response headers to track your request limit:

HeaderDescription
X-RateLimit-LimitThe maximum number of requests you can make in the current time window
X-RateLimit-RemainingThe number of requests remaining in the current time window
X-RateLimit-ResetThe number of seconds remaining until the rate limit resets

Example (a paid plan with a 50 requests-per-minute limit):

X-RateLimit-Limit: 50
X-RateLimit-Remaining: 49
X-RateLimit-Reset: 32

Account and quota headers ​

These response headers show your plan, remaining points and balance. You can read them without a separate /v1/balance request:

HeaderDescription
X-Subscription-PlanThe key's plan (free, starter, basic, professional, corporate)
X-Points-RemainingPoints left in the current quota period
X-Balance-RemainingPrepaid pay-as-you-go balance left, in cents
X-Budget-RemainingCents left in this month's PAYG spending limit — only present when a limit is set
X-Apitube-Modelive or test, so an SDK never has to parse the test marker out of the content
X-Request-IDUnique id of the request — quote it when contacting support

When X-Points-Remaining reaches 0, the next request returns 402 ER0176. When X-Budget-Remaining reaches 0, requests billed to your balance return 402 ER0177. Check these headers to stop requests before a limit is reached.

X-Subscription-Plan: basic
X-Points-Remaining: 48500
X-Balance-Remaining: 0
X-Apitube-Mode: live
X-Request-ID: e5efb02a-d9bd-45e7-8264-829167dd4842

Spending your pay-as-you-go balance ​

To pay for requests beyond your plan quota, turn on balance spending in the dashboard. The switch is on the Pay as you go page and under Account → Plan & usage. It is off by default. Only the workspace owner can change it.

With balance spending off, requests beyond your quota return 402 ER0176. This applies to REST, SSE, WebSocket and webhooks. With it on, requests use your plan quota first, then your balance at $0.01 per request.

X-Balance-Remaining shows the money in your account even when balance spending is off. A positive balance also removes Free plan restrictions. The switch only controls whether requests can spend that money.

Pay-as-you-go spending limit ​

Set a monthly spending limit in the dashboard to cap spending from your prepaid balance. It resets at the start of each calendar month in UTC.

When a limit is configured, every response includes the remaining budget for the current month:

HeaderDescription
X-Budget-RemainingRemaining monthly pay-as-you-go budget, in cents. Present only when a limit is set.

Example (50000 cents = $500 left this month):

X-Budget-Remaining: 50000

When you reach the monthly limit, requests charged to your balance return 402 ER0177. You can wait until the next month or raise or remove the limit in the dashboard. Requests covered by your plan quota still work.