Google Search API
Send a keyword, get back the Google results page exactly as a searcher sees it: every block, every result, with its rank, its page and its pixel position.
- 1000 free requests
- No credit card
Every block
Each block on the page comes back in the JSON under its own type, with its results in display order.
| Type | What it is |
|---|---|
organic | Organic results |
paid_top, paid_bottom | Google Ads, at the top and bottom of the page |
local_pack | Local pack, with rating, review count, price range and displayed details |
people_also_ask | People Also Ask questions |
featured_snippet | Featured snippet (position zero) |
knowledge_graph | Knowledge Graph, the right-hand panel |
top_stories | Top stories |
videos, images | Videos and images |
shopping | Shopping ads |
sitelinks | Sitelinks under a result |
ai_overview_citation, ai_overview_citation_source, ai_overview_panel | AI Overviews: brands cited in the text, citation sources and source panel |
location_sites, recipes, find_results_on | Location sites, recipes, “Find results on” and other blocks |
Google's real
Google no longer shows 100 results on a single page. We walk through the pagination page by page, like a searcher, up to 10 pages per keyword (about 100 results). Every result tells you which page it appears on.
Depth of your choice
The depth parameter goes from 1 (about 10 results) to 10 (about 100 results).
Only pages found are billed
10 pages requested, 4 found: only 4 are billed.
Search operators
site:, inurl:, intitle:, allintitle:, filetype: and logical combinations are supported.
Rank, overall rank
Three measures for every result. rank_type ranks it within its block, rank_serp among every element on the page in real vertical order, and pixel gives its distance from the top of the page. A 1st organic result sitting below a local pack and ads doesn't get the visibility its position suggests.
AI Overviews,
Every SERP is rendered in a real browser. AI Overviews that load after the page are captured, with the brands cited, the citation sources and the source panel.
Request
One POST request to /v1/serp, with several keywords per call. Results are then fetched by ID, or delivered to your callback URL.
| Parameter | Description |
|---|---|
search_engine | google_search |
keyword | The keyword, operators included |
device | desktop or mobile |
location | Google version, e.g. fr for google.fr or en for google.com |
language | Interface language (e.g. en) |
depth | Number of pages, from 1 to 10 |
geolocation | Optional: city, region and country separated by commas |
priority | Optional: processing priority, from 1 to 10 |
callback_url | Optional: URL that receives the results once the keyword is processed |
Build your request
curl -X POST 'https://api.semscraper.com/v1/serp' \
-H 'Authorization: Bearer API_KEY' \
-H 'Content-Type: application/json' \
-d '[{"search_engine":"google_search","keyword":"restaurant","device":"desktop","location":"fr","language":"fr","depth":1,"geolocation":"Nice, Alpes-Maritimes, France"}]'
Pay
No subscription: you top up your balance, and each SERP retrieved is deducted.
1 to 10% discount depending on the amount topped up. Your balance never expires.
