Real Google SERPs
Give your agents, RAG pipelines and evaluations what Google actually shows: results, AI Overviews, citations and sources, by country, language, city and device.
- 1000 free requests
- No credit card
What Google shows,
A language model doesn't know what Google shows today. Semscraper collects it in a real browser and returns it as JSON.
Google's real ranking
Every result with its rank in its block, its rank on the page, its Google page and its pixel position, up to 10 pages.
AI Overviews and their sources
The AI Overview text, the brands it cites, its citations and its source panel, including when it loads after the page.
AI Overviews →The right location
186 Google versions, 117 languages, desktop or mobile, and geolocation down to a city or a GPS position.
Four uses
Agencies already use data from Monitorank, our rank tracker, in their internal AI tools. Semscraper gives the same raw access to SERPs, through an API.
Tracking visibility in AI
Which sources Google cites in its AI Overviews, on which keywords, in which countries: the core data of GEO, measured on the real page.
Research agents and monitoring
Agents that compile a report or watch a market or a brand, relying on Google's real results rather than on their memory.
RAG kept up to date
Refresh a knowledge base from the pages Google puts forward today, keyword by keyword, on a regular schedule.
Datasets and evaluation
Real, complete SERPs at scale, to build a corpus or compare a model's answers with what Google shows.
A real example,
We asked an AI assistant connected to Semscraper a question. It ran six searches on Google France, then the ai_overview_sources tool computed the domains cited in the AI Overviews.
“Which sites does Google cite in its AI Overviews for these six home furnishing questions?”
{
"searches_done": 6,
"with_ai_overview": 5,
"domains_total": 31,
"domains": [
{"domain": "ikea.com", "keywords_count": 2, "mentions": 3, "keywords": ["comment nettoyer un canapé en tissu", "quelle taille de canapé pour un salon"]},
{"domain": "youtube.com", "keywords_count": 1, "mentions": 8, "keywords": ["comment choisir un matelas"]},
{"domain": "maisonsdumonde.com", "keywords_count": 1, "mentions": 5, "keywords": ["comment nettoyer un canapé en tissu"]},
{"domain": "monsieur-meuble.com", "keywords_count": 1, "mentions": 4, "keywords": ["comment nettoyer un canapé en tissu"]},
{"domain": "maisondelaliterie.fr", "keywords_count": 1, "mentions": 3, "keywords": ["comment choisir un matelas"]}
]
}
How it works,
Semscraper handles discovery: which pages Google puts forward for a question. You then fetch the content of the pages you want, and your LLM answers with its sources.
1. Send your keywords
Up to 1,000 keywords per call, with country, language, city and device. Every parameter is on the Google Search API page.
2. Get the structured SERP
URLs, titles, snippets, AI Overview and citations, as JSON, or straight to your callback URL.
3. Fetch the pages, then the LLM
Your crawler reads the selected URLs, and your model answers from that content, with sources.
import time
import requests
API = "https://api.semscraper.com/v1/serp"
HEADERS = {"Authorization": "Bearer API_KEY"}
question = "best crm for small business"
# 1. the Google SERP of the question
job = requests.post(API, headers=HEADERS, json=[{"search_engine": "google_search",
"keyword": question, "device": "desktop", "location": "en", "language": "en", "depth": 1}]).json()
serp_id = job["data"][0]["id"]
serp = {"status": "pending"}
while serp["status"] != "done":
time.sleep(10)
serp = requests.get(API, headers=HEADERS, params={"ids": serp_id, "output": "json"}).json()["data"][0]
# 2. the sources Google puts forward
urls = [item["url"] for block in serp["results"] if block["type"] == "organic" for item in block["items"][:3]]
# 3. their content, read by your own tool, then your LLM
pages = [fetch_page(url) for url in urls]
answer = llm.ask(question, context=pages, sources=urls)
Built for
Every page is opened in a real browser, with a real graphical interface, and goes through a queue that keeps costs among the lowest on the market. A full SERP therefore takes a median of about thirty seconds.
| Ideal for | Good to know |
|---|---|
| Research and monitoring agents working in the background | For a chatbot that must answer instantly, a tool built for real time is a better fit. |
| Tracking AI Overviews and their sources, keyword by keyword | The API returns URLs, titles and snippets: you fetch the content of the pages you keep yourself. |
| Datasets and evaluations at scale | Compare at equal depth: a Semscraper SERP is up to 10 results pages with all their blocks and pixel positions, not ten links. |
Right inside
The Semscraper MCP server connects the API to your assistant in one minute. It runs the searches, waits for the results and does the computing on the server, as in the example above.
Pay
No subscription: you top up your balance, and each SERP fetched is deducted.
1% to 10% off depending on the amount topped up. Your balance never expires.
Go further
AI Overviews in France: one SERP in two, and one in two arrives late
We collected more than 2 million French Google SERPs, one million keywords on desktop and the same ones on mobile, to measure the real footprint of AI Overviews.
Read the guide →How to scrape Google in 2026
Collecting Google results at scale has never been this demanding: 100 results per page are gone, AI Overviews load late, and SERPs change from city to city. Here are the options and the pitfalls.
Read the guide →Pixel position: why ranking #1 is no longer enough
Being first among organic results says little about what the searcher actually sees. Pixel position measures where your result really shows up.
Read the guide →Frequently asked questions
Can I use Semscraper in a real-time chatbot?
Do you fetch the content of the pages?
Are asynchronous AI Overviews included?
How much volume can I send?
Is this Google's official API?
Try it on your own queries
1,000 free requests, no credit card required.
