Rate limits

Per-minute limits by tier, the headers we send, and how to back off.

Open in…
Ask on Discord
What your agent reads
Limits are per API key, per endpoint, per minute (Batch submissions are per hour). Each endpoint page lists its own limits.

| Endpoint | Free | Starter | Pro | Startup | Enterprise |
| --- | --- | --- | --- | --- | --- |
| Google SERP | 3 | 20 | 30 | 40 | 60 |
| Search | 10 | 30 | 60 | 120 | 200 |
| Lite | 15 | 60 | 120 | 240 | 300 |
| Slow | Not available | 30 | 60 | 120 | 240 |
| Deep Search | 2 | 4 | 6 | 10 | 20 |
| Search + Content | 10 | 20 | 40 | 80 | 120 |
| Extract | 10 | 30 | 60 | 120 | 200 |
| Sitemap | 5 | 20 | 40 | 80 | 120 |
| Answer | 10 | 30 | 60 | 120 | 200 |
| Web Agent | 3 | 10 | 20 | 40 | 80 |
| Batch (submits per hour) | Not available | 10 | 25 | 50 | 200 |

Your tier follows your credit balance: Starter from 1,000 credits, Pro from 15,000, Startup from 50,000.

## When you hit a limit

You get `429 RATE_LIMIT_EXCEEDED`. Read these headers:

| Header | Meaning |
| --- | --- |
| `X-RateLimit-Remaining` | Requests left in the current window |
| `Retry-After` | Seconds to wait before retrying |

Wait `Retry-After` seconds, then retry with exponential backoff. For large jobs, use [Batch](/bulk/batch) instead of a tight loop.
Every page: append .md to the URL. Whole site: /llms.txt · /llms-full.txt

Limits are per API key, per endpoint, per minute (Batch submissions are per hour). Each endpoint page lists its own limits.

EndpointFreeStarterProStartupEnterprise
Google SERP320304060
Search103060120200
Lite1560120240300
SlowNot available3060120240
Deep Search2461020
Search + Content10204080120
Extract103060120200
Sitemap5204080120
Answer103060120200
Web Agent310204080
Batch (submits per hour)Not available102550200

Your tier follows your credit balance: Starter from 1,000 credits, Pro from 15,000, Startup from 50,000.

When you hit a limit

You get 429 RATE_LIMIT_EXCEEDED. Read these headers:

HeaderMeaning
X-RateLimit-RemainingRequests left in the current window
Retry-AfterSeconds to wait before retrying

Wait Retry-After seconds, then retry with exponential backoff. For large jobs, use Batch instead of a tight loop.

Let your agent build it

Paste one prompt into Claude Code, Cursor, Codex or Windsurf. It installs Keiro MCP, reads these docs and writes the integration against the real API.

Ask on Discord

On this page