# Rate Limits & Quotas: News Search API

[ChatGPT ↗](https://chatgpt.com/?q=Read%20https%3A%2F%2Fnewssearchapi.com%2Fdocs%2Frate-limits%2F%20and%20help%20me%20build%20with%20the%20News%20Search%20API.)[Claude ↗](https://claude.ai/new?q=Read%20https%3A%2F%2Fnewssearchapi.com%2Fdocs%2Frate-limits%2F%20and%20help%20me%20build%20with%20the%20News%20Search%20API.)

RATE LIMITS

# Rate limits and quotas

Two independent limits protect the API: a per-second **rate limit** and a daily or monthly **quota**. There is never any overage billing; requests simply stop until the limit resets.

## How limits work

Rate limit

A sustained number of requests per second per key, with a short burst allowance on top (a token bucket). Exceeding it returns `429 rateLimited` with `Retry-After`.

Quota

The total requests your plan includes. Every plan, Free included, resets at the start of each UTC calendar month. Exceeding it returns `429 quotaExceeded`.

## Plan limits

Each plan’s credits and entitlements are listed on [Plans](/pricing), and your current limits are shown in the console.

Need more? [Compare plans](/pricing) or upgrade from the console; the new limits apply within 60 seconds.

## Response headers

Authenticated responses tell you where you stand, so you can slow down before you hit a limit:

Example response headers

```
HTTP/1.1 200 OK
X-RateLimit-Limit: 5
X-RateLimit-Remaining: 9
X-Quota-Limit: 20000
X-Quota-Remaining: 18542
```

Rate-limit and quota response headers

Header

Description

`X-RateLimit-Limit`

Uniform gateway requests-per-minute limit shared by all plans.

`X-RateLimit-Remaining`

Whole requests remaining in the gateway rate-limit window.

`X-RateLimit-Reset`

Unix time (seconds, rounded up) when the gateway rate limit resets.

`Retry-After`

Seconds to wait before retrying (minimum 1).

Rate-limit headers are sent once the key is authenticated; quota headers are sent once the request passes the rate limit. All of them are readable from browser JavaScript (CORS-exposed).

## When you hit a limit

-   `rateLimited`: wait the number of seconds in `Retry-After`, then retry.
-   `quotaExceeded`: don't retry; it won't succeed until `X-Quota-Reset`. Stop and alert, or upgrade.

A copy-paste retry helper is in [Retrying safely](/docs/errors#retry), and the [SDKs](/docs/sdks) handle it automatically.

## Staying under the limit

-   **Request bigger pages.** One call with `page_size=100` costs the same as one with 10.
-   **Poll for new articles only.** Use `indexed_from` with `sort=indexed_desc` instead of re-running the same search. See [Keep a RAG index fresh](/docs/guides/rag).
-   **Cache results** for repeat queries in your own app.
-   **Watch `X-Quota-Remaining`** and alert before it reaches zero. Usage charts in the console show the trend.
