
Google Search Scraper
scrape.ly/store/querystone/google-search-scraperSEO toolsAI
1 monthly user

Check which keywords trigger a Google AI Overview and extract the overview text with every cited source (URL, title, snippet). Country and language targeting, no login.
Find out which of your keywords trigger a Google AI Overview, and get the overview's answer text with every source it cites. You get one row per keyword, with country and language targeting and no login. The per-result fee applies only to keywords where Google actually showed an AI Overview.
hasAiOverview true or false. Rows for keywords without an overview carry no event fee, so you can track how often AI Overviews appear.- , nested items are indented, table rows use |), without Google's buttons, feedback widgets or footer text.us) and Language (default en).| Field | What it does |
|---|---|
queries | Keywords to look up, one per line (a JSON array of strings also works). Duplicates are removed. |
countryCode | Two-letter country code such as us, gb, de, fr, in. Default us. |
languageCode | Google interface language such as en, de, fr, pt-BR. Default en. |
includeQueriesWithoutOverview | Save a free row for keywords without an AI Overview (default on). |
maxConcurrency | Keywords checked at the same time (default 8). |
{
"queries": "best crm for small business\nhow does photosynthesis work\nis coffee good for you",
"countryCode": "us",
"languageCode": "en"
}
One row per keyword.
| Field | Description |
|---|---|
query | The keyword you entered |
hasAiOverview | true when Google showed an AI Overview |
type | static when the overview came with the results page, live when Google streamed it in after the page loaded |
text | The AI Overview answer, one paragraph or list item per line |
sources | Cited sources: position, url, title, description, source (site name), domain. Source cards come first, then sites linked only from inside the answer |
sourcesCount | Number of cited sources |
countryCode, languageCode | Market the keyword was checked in |
searchUrl | The Google results page |
scrapedAt | When the row was scraped (UTC) |
error | Only on rows that could not be checked (never charged) |
[
{
"query": "what is a roth ira",
"hasAiOverview": true,
"type": "static",
"text": "A Roth IRA is an individual retirement account (IRA) that lets your money grow tax-free and allows you to make tax-free and penalty-free withdrawals in retirement.\nKey Features and Rules\n- Tax-Free Growth & Withdrawals: Once you reach age 59½ and the account has been open for at least 5 years, you can withdraw all your investment earnings completely tax-free.\n- Income Limits: To contribute directly, your Modified Adjusted Gross Income (MAGI) must fall below IRS limits. For 2026, the full contribution phase-outs start at:\n - Single filers: $153,000 – $168,000\n - Married filing jointly: $242,000 – $252,000",
"sources": [
{
"position": 1,
"url": "https://www.fidelity.com/learning-center/smart-money/what-is-a-roth-ira",
"title": "What is a Roth IRA and how does it work? | Fidelity",
"description": "Key takeaways * Roth IRAs let you save and invest money you've already paid taxes on. In retirement, you have the opportunity to m...",
"source": "Fidelity Investments",
"domain": "fidelity.com"
},
{
"position": 2,
"url": "https://www.schwab.com/ira/roth-ira",
"title": "Roth IRA: What is a Roth IRA? | Charles Schwab",
"description": "Core: After-tax contributions grow tax-free; qualified withdrawals after age 59½ and five years are tax-free and penalty-free. Ben...",
"source": "Charles Schwab",
"domain": "schwab.com"
}
],
"sourcesCount": 2,
"countryCode": "US",
"languageCode": "en",
"searchUrl": "https://www.google.com/search?q=what+is+a+roth+ira&hl=en&gl=us",
"scrapedAt": "2026-10-15T21:09:52Z"
},
{
"query": "weather",
"hasAiOverview": false,
"type": null,
"text": null,
"sources": [],
"sourcesCount": 0,
"countryCode": "US",
"languageCode": "en",
"searchUrl": "https://www.google.com/search?q=weather&hl=en&gl=us",
"scrapedAt": "2026-10-15T21:48:20Z"
}
]
The example text is shortened. Real rows carry the whole overview.
You pay $1.00 per 1,000 AI Overviews, charged only for keywords where Google showed one. Keywords without an AI Overview and keywords that could not be checked are never charged an event fee.
Platform usage (the hosted browser that opens Google, plus compute) is billed on top. In our tests it came to about $2.10 per 1,000 keywords checked.
Worked example: 1,000 informational keywords, of which about 980 had an AI Overview in our tests, cost about $0.98 in events plus about $2.10 in usage, so about $3.08 in total. 200 keywords took about 3.5 minutes.
Set a maximum total charge on the run if you want a hard cap. The actor stops cleanly before it would go over it.
Is it legal to scrape Google AI Overviews? The actor only reads public Google results pages, the same page anyone sees without logging in. Check your local laws and Google's terms for your use case.
Do I need a Google account, a proxy or an API key? No. Google is opened in a hosted browser on a residential exit in the country you choose. The proxy setting is only used to follow redirect links in source cards.
Why does a keyword have no AI Overview?
Google decides per search whether to show one. Many navigational, local and very short keywords never get one, and the same keyword can get one on one day and not the next. Those rows have hasAiOverview: false and cost nothing.
Why can the text differ from what I see in my browser? AI Overviews are generated per search and vary with location, language, time and personalisation. The actor searches without a login and without history, from the country you chose.
How many keywords can I run? Up to 5,000 per run. A run that is restarted continues where it stopped instead of starting over.
Can I schedule it or use the API? Yes. Schedule runs in the console, or start runs and read the dataset through the API.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
queriesstringRequiredSearch queries
Keywords to look up on Google, one per line. Duplicates are removed. Each query returns one row.
countryCodestringOptionalCountry
Two-letter country code (us, gb, de, fr, in, ...). Google is opened from a residential exit in this country, because AI Overviews differ by market. Default: us.
languageCodestringOptionalLanguage
Google interface language (hl), for example en, de, fr, es, pt-BR. Default: en.
includeQueriesWithoutOverviewbooleanOptionaldefault trueInclude queries without an AI Overview
Also save a row without event fee (hasAiOverview = false) for queries where Google showed no AI Overview, so you can track coverage. Turn off to keep only overviews.
maxConcurrencyintegerOptionaldefault 8Max concurrency
How many queries are checked at the same time.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Proxy used to follow Google redirect links in source cards. Google itself is opened in the hosted browser on a residential exit in the chosen country.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| query | string | The search query sent to Google. |
| hasAiOverview | boolean | Whether Google showed an AI Overview for the query. |
| type | string | null | static when the overview came with the results page, live when it was streamed in after load. |
| text | string | null | AI Overview answer text, one paragraph or list item per line. |
| sources | array | Sources cited by the AI Overview. |
| sourcesCount | number | Number of cited sources. |
| countryCode | string | null | Country Google was searched from. |
| languageCode | string | null | Google interface language. |
| searchUrl | string | Google results page URL. |
| scrapedAt | string | When the row was scraped (UTC). |
| error | string | null | Why the query could not be checked. Rows with an error are not charged. |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| AI Overview | One keyword with a Google AI Overview (answer text and cited sources). Keywords without an overview are not charged. | $0.001 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/google-ai-overviews-scraper').call({
"queries": "What are the top 5 CRM tools\nhow does photosynthesis work\nbest running shoes for flat feet\nwhat is a roth ira\nhow long to boil an egg\nis coffee good for you\nwhat is quantum computing\nbest SEO tools\nhow to lower cholesterol naturally\nfacebook login",
"countryCode": "us",
"languageCode": "en",
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/google-ai-overviews-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/google-ai-overviews-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Google AI Overview text and sources for each query.
AI Overviews from Google Germany, including queries without one.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.