EN
Test it for free Login
Full Google SERPs, in JSON or HTML

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 of the SERP

Each block on the page comes back in the JSON under its own type, with its results in display order.

TypeWhat it is
organicOrganic results
paid_top, paid_bottomGoogle Ads, at the top and bottom of the page
local_packLocal pack, with rating, review count, price range and displayed details
people_also_askPeople Also Ask questions
featured_snippetFeatured snippet (position zero)
knowledge_graphKnowledge Graph, the right-hand panel
top_storiesTop stories
videos, imagesVideos and images
shoppingShopping ads
sitelinksSitelinks under a result
ai_overview_citation, ai_overview_citation_source, ai_overview_panelAI Overviews: brands cited in the text, citation sources and source panel
location_sites, recipes, find_results_onLocation sites, recipes, “Find results on” and other blocks

Google's real pagination

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 and pixel

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, even asynchronous

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 parameters

One POST request to /v1/serp, with several keywords per call. Results are then fetched by ID, or delivered to your callback URL.

ParameterDescription
search_enginegoogle_search
keywordThe keyword, operators included
devicedesktop or mobile
locationGoogle version, e.g. fr for google.fr or en for google.com
languageInterface language (e.g. en)
depthNumber of pages, from 1 to 10
geolocationOptional: city, region and country separated by commas
priorityOptional: processing priority, from 1 to 10
callback_urlOptional: 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 per request

No subscription: you top up your balance, and each SERP retrieved is deducted.

0.30 € per 1,000 keywords, page 1
+0.20 € per extra page, for 1,000 keywords

1 to 10% discount depending on the amount topped up. Your balance never expires.

FAQ

Frequently asked questions

Is this Google's official API?
No. Semscraper is not affiliated with Google: the API collects public search result pages, as a searcher sees them, and returns them structured.
Do desktop and mobile return the same results?
No, Google doesn't show the same SERP on both. The device parameter lets you choose, and the pixel position is measured on the matching rendering.
Can I get results for a specific city?
Yes, with the geolocation parameter: give the city, region and country separated by commas, for example “Nice, Alpes-Maritimes, France”.
How long does a keyword take to process?
Every account has its own queue: other customers' volume doesn't slow yours down. Duration mostly depends on the depth requested, from a few seconds for one page to about thirty seconds for 10 pages.
Are results served from a cache?
No, every request triggers a live collection.

Ready to scrape Google?

1,000 free requests, no credit card required.