Documentation
SERP API
Run live Google searches over a REST API. Get the top 100 organic results, AI Overviews, and SERP features for any keyword, with precise geo and device targeting.
What it does
The SERP API crawls Google in real time and returns structured search results. Give it a keyword and a location; it resolves the right country, language, and geo-targeting, runs the search from a residential IP, and returns parsed organic results plus AI Overview and SERP-feature blocks.
- Up to 100 organic results per keyword (10 pages), ranked by Google position.
- AI Overview text and cited source domains, captured on page one.
- SERP features: featured snippet, people-also-ask, related searches, local pack, knowledge panel, inline images/videos, top stories, shopping, and sitelinks.
- Geo targeting by locality, plus desktop / mobile / tablet device profiles.
- Output as SerpApi-compatible JSON, a native JSON schema, or the raw assembled HTML.
How it works
A search is a two-step, job-based flow. You submit a search and receive a job_id; the crawl runs asynchronously; you then poll for the result in the format you want.
1. POST /v1/search -> { "job_id": "...", "status": "queued" }
2. (crawl runs on the worker fleet: geo resolve -> crawl -> parse)
3. GET /v1/search/{job_id} -> poll until status is "done" or "partial"For low-latency callers, a search can also run synchronously (the request blocks until the crawl finishes or a timeout elapses). See Submit a search.
Base URL & a first request
All endpoints live under one base URL. Every request is authenticated with an X-API-Key header.
https://serp-api.hoangha.shopcurl -X POST https://serp-api.hoangha.shop/v1/search \
-H "X-API-Key: sk_..." \
-H "Content-Type: application/json" \
-d '{"keyword": "best running shoes", "location": "Hanoi, Vietnam"}'No account yet?
Compatibility
The output=serpapi format mirrors SerpApi’s field names (organic_results, answer_box, related_questions,ai_overview, …), so existing SerpApi integrations can point here with minimal code change. A native JSON schema and the raw HTML are also available. See Retrieve results.