EN
SERP API for AI

Real Google SERPs for your agents and LLMs

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, as structured data

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.

Data read from Google's real page at the time of the request: not rankings or sources a model might make up.

Four uses that need Google

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, in one question

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?”

ai_overview_sources
{
  "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"]}
  ]
}
The tool's answer, cut to the top five domains. Collected on October 9, 2026 on Google France, desktop: 5 questions out of 6 have an AI Overview, 31 domains are cited. Cost of the six searches: €0.0018.

How it works, in three steps

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.

python
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)
Python example: the SERP of a question, its top three sources, then your LLM.

Built for detailed, asynchronous collection

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 forGood to know
Research and monitoring agents working in the backgroundFor a chatbot that must answer instantly, a tool built for real time is a better fit.
Tracking AI Overviews and their sources, keyword by keywordThe API returns URLs, titles and snippets: you fetch the content of the pages you keep yourself.
Datasets and evaluations at scaleCompare at equal depth: a Semscraper SERP is up to 10 results pages with all their blocks and pixel positions, not ten links.

Right inside Claude, ChatGPT and Cursor

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 per request

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

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

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

FAQ

Frequently asked questions

Can I use Semscraper in a real-time chatbot?
It isn't what the API is built for. Every page is rendered in a real browser, with a real graphical interface, and goes through a queue that keeps costs among the lowest on the market: a SERP takes a median of about thirty seconds, a minute for 10 pages. Semscraper fits agents working in the background, monitoring, RAG refreshed on a schedule and datasets. For an instant answer, a tool built for real time is a better fit.
Do you fetch the content of the pages?
No. The API returns what Google shows: URLs, titles, snippets, AI Overview and citations. You then fetch the content of the pages you want with your own tool, which lets you pick your sources based on Google's ranking.
Are asynchronous AI Overviews included?
Yes, at no extra cost. Every SERP is rendered in a real browser that waits for AI Overviews loading after the page, nearly one in two according to our study of one million keywords.
How much volume can I send?
Up to 1,000 keywords per call. Every account has its own queue: the robots serve accounts in turn, and a large batch flows through gradually. A callback URL saves you from polling the API.
Is this Google's official API?
No. Semscraper collects Google's public results pages and is not affiliated with Google.

Try it on your own queries

1,000 free requests, no credit card required.