SERP API
Get the full search results page for any query as structured JSON — organic listings, AI Overview, People Also Ask, featured snippet, shopping, and local pack — across Google, Bing, Yahoo & DuckDuckGo, plus dedicated News, Image, and Video search.
serp:readOne request, structured JSON back
curl -X POST https://instarankseo.com/api/v1/serp \
-H "X-API-Key: isk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"q": "best running shoes", "country": "us", "num": 20, "engine": "google"}'{
"success": true,
"query": "best running shoes",
"country": "us",
"results": {
"organic": [
{ "position": 1, "url": "https://...", "title": "...", "snippet": "..." }
],
"aiOverview": { "text": "...", "sources": [ ... ] },
"peopleAlsoAsk": [ ... ],
"featuredSnippet": null,
"shopping": [ ... ],
"localPack": [ ... ]
},
"meta": { "creditsUsed": 1, "creditsRemaining": 18999, "apiVersion": "1.0" }
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| q | string | required | The search query. |
| engine | string | optional | Search engine: google (default), bing, yahoo, or ddg. |
| country | string | optional | 2-letter ISO country code (default "us"). |
| num | integer | optional | Organic results to return, 1–100 (default 20). |
| mode | string | optional | "deep" (default, full results + AI Overview) or "quick" (faster, no AI Overview). |
| pages | integer | optional | Result pages to fetch, 1–10 (default 1). |
| freshness | string | optional | Time filter: d, 7d, w, m, or y. |
| language | string | optional | 2-letter language code to restrict content language. |
Built for builders
Full SERP, not just links
Organic, AI Overview, People Also Ask, featured snippet, shopping, and local pack — every block the results page renders, normalized into one JSON shape.
Four engines + News, Images, Video
Query Google, Bing, Yahoo, or DuckDuckGo on the main endpoint, and hit /serp/news, /serp/images, and /serp/videos for dedicated vertical search — all the same clean shape, all 1 credit.
AI Overview & deep controls
Get the AI Overview text and its cited sources, or switch to quick mode for speed. Filter by freshness, language, country, and paginate up to 10 pages.
Pricing & limits
Price
$1 per 1,000 queries
1 credit per query
Billed from one credit wallet. Failed upstream calls are refunded automatically.
Rate limits
- Free10 / min
- SEO+60 / min
- Agency120 / min
Surfaced as X-RateLimit-* headers on every response.
Errors
Every non-2xx shares one envelope with a machine-readable code, a retryable flag, and a requestId for tracing.
Send an Idempotency-Key header to retry POSTs safely without double-charging.
Skip the proxy farms, CAPTCHA solvers, and HTML parsing. One POST returns clean, structured SERP data across every engine and vertical — at a flat $1 per 1,000 queries.
Last updated:
SERP API FAQ
Common questions about the SERP API — pricing, auth, and what it returns.
What does the SERP API return?
A single JSON object with the full results page: organic listings (position, url, title, snippet), the AI Overview and its cited sources, People Also Ask, the featured snippet, shopping results, and the local pack. Empty blocks come back as empty arrays or null so your parser never breaks.
Which search engines and verticals are supported?
The main /api/v1/serp endpoint supports Google, Bing, Yahoo, and DuckDuckGo via the engine field. Three dedicated vertical endpoints share the same auth and pricing: POST /api/v1/serp/news (news articles), /api/v1/serp/images (image results), and /api/v1/serp/videos (video results).
How much does the SERP API cost?
One credit per query — $1 per 1,000 queries at the standard rate — for web, news, images, and video alike. You are only charged for successful queries; if the upstream search fails, the credit is automatically refunded.
How do I authenticate?
Send your API key in the X-API-Key header on every request. Create and manage keys from your InstaRank dashboard under API Keys. The SERP API requires the serp:read scope.
Can I localize and filter results?
Yes. Pass a 2-letter country code (e.g. "us", "gb", "in") to localize, a language code to restrict content language, a freshness window (d, 7d, w, m, y) to time-bound results, and pages (1–10) to paginate.
Are there rate limits?
Yes — 10 requests per minute on Free, 60 on SEO+, and 120 on Agency. Every response includes X-RateLimit-Limit and X-RateLimit-Remaining headers so you can pace your requests.