Rate limits
Each API key has a per-minute request limit. It applies to every /v1
request — submitting and polling tasks.
Response headers
Section titled “Response headers”Every response includes your current limit state:
| Header | Meaning |
|---|---|
X-RateLimit-Limit |
Requests allowed per minute for this key. |
X-RateLimit-Remaining |
Requests left in the current window. |
X-RateLimit-Reset |
Unix epoch second when the window resets. |
When you exceed it
Section titled “When you exceed it”Over-limit requests return 429 with code serpapi.rate_limited and a
Retry-After header (seconds to wait):
HTTP/1.1 429 Too Many RequestsRetry-After: 12X-RateLimit-Remaining: 0Handling limits
Section titled “Handling limits”- Honor
Retry-Afterwhen present. - Use exponential backoff with jitter on
429, rather than a fixed retry. - Keep polling loops gentle (see Task lifecycle) — aggressive polling is the most common way to hit the limit.
Need a higher limit? Contact us from your dashboard.