Rate limits
Per-minute limits by tier, the headers we send, and how to back off.
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.
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 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.