SERP API — Google Search, AI Overviews & Bulk Scraper
Pricing
from $8.00 / 1,000 search results
SERP API — Google Search, AI Overviews & Bulk Scraper
Scrape Google SERPs at scale — organic results, AI Overviews, Knowledge Graph, Answer Box, videos & People Also Ask. Bulk up to 100 queries per call for rank tracking and keyword research. Clean JSON, pay per query.
SERP API — Google Search, AI Overviews & Bulk Scraper 🔍
🎉 Scrape Google SERPs at scale — organic results, AI Overviews, Knowledge Graph & People Also Ask, plus bulk 100 queries in a single call
Built for SEO teams, rank trackers, GEO/AEO analysts, market researchers and AI/RAG engineers who need clean, structured Google search data on a schedule — no API key, no proxies, no browser farm
📋 Overview
One actor, every part of the Google results page. Most SERP scrapers on the Store return a flat list of organic links. Modern search is more than ten blue links — it's AI Overviews, Knowledge Graphs, answer boxes, "People Also Ask", top stories, videos and ads. This actor wraps a fast, reliable Real-Time Web Search backend and gives you all of it as clean JSON. Type a query, click Run, get structured rows back. No Google API key, no SerpAPI subscription, no proxy rotation.
It bundles 6 search modes behind a single dropdown: Google Search (organic + AI Overviews flag), Full SERP (the whole page — Knowledge Graph, answer box, videos, PAA blocks, related searches), Fast Light Search (lowest latency), Bulk Search (up to 100 queries in one run, charged per query), AI Mode (Google's generative answer), and People Also Ask (questions + full answers + source attribution). Pick one mode per run, get one tidy dataset out.
Why SEO and data teams choose us:
- ✅ The whole SERP, not just links: organic results, AI Overviews, Knowledge Graph, answer box, top stories, inline videos, ads, places and related searches — structured, in one run
- 📚 Bulk 100 queries per call: submit a whole keyword list in a single run, charged one credit per query — built for rank tracking and keyword-research sweeps
- 🤖 GEO-ready: capture AI Overviews and the reference links Google cites, so you can monitor Generative Engine Optimization (GEO/AEO) as AI answers reshape search
- ❓ People Also Ask with answers: pull PAA questions, full answers and source URLs — map content gaps and build FAQ schema fast
- 💰 Pay per query: transparent per-query pricing; failed lookups land as
status:"error"rows at $0 — you're never billed for a hiccup - ✨ No API key, zero setup: no Google Cloud project, no SerpAPI key, no proxy config — paste an input and run
✨ Features
- 🔍 Google Search: organic results with title, URL, snippet, domain, position and rank, plus a
hasAiOverviewsflag and total result count - 🧩 Full SERP mode: the entire results page — Knowledge Graph, answer box, AI Overviews, top stories, inline videos, ads, places, discussions and related searches as structured blocks
- ⚡ Fast Light Search: organic-only results optimized for the lowest possible latency — ideal for RAG and real-time apps
- 📚 Bulk Search: up to 100 queries in one request, each charged a single credit — track ranks for an entire keyword list per run
- 🤖 Google AI Mode: Google's generative AI Mode answer plus the reference links it cites (when available from Google)
- ❓ People Also Ask: the PAA questions with full answers and source attribution (URL, domain, title)
- 🌍 Localization: country (
gl), language (hl), specific location, device profile and Googletbstime filters - 🔁 Built-in retries: transient upstream hiccups (429/502/503/504) are retried automatically with backoff
- 📊 HTML run report: every run writes a summary report (success/error counts, queries charged, duration) to the key-value store
- 🧹 Clean camelCase JSON: curated field names, absolute HTTPS URLs, no messy nested raw dumps
🎯 Operations
Pick one operation per run from the operation dropdown:
| Operation | What it returns | Required input |
|---|---|---|
🔍 Google Search (search) | Organic results + AI Overviews flag + total count | query |
🧩 Full SERP (searchFull) | Whole page: organic + Knowledge Graph + answer box + videos + PAA + ads + related | query |
⚡ Fast Light Search (searchLight) | Fast organic-only results | query |
📚 Bulk Search (bulkSearch) | Organic results for up to 100 queries, charged per query | queries (array) |
🤖 AI Mode (aiMode) | Google's generative answer + reference links | prompt |
❓ People Also Ask (peopleAlsoAsk) | PAA questions + answers + source attribution | query |
💡 Tip: Use Bulk Search to track ranks for a whole keyword list in one run, then drill into a single query with Full SERP to capture its rich features.
Which mode should I pick?
- Just need the ranking links? → Fast Light Search (cheapest, fastest) or Google Search (adds the AI Overviews flag + total count).
- Need the rich SERP features (Knowledge Graph, answer box, videos, ads, related searches)? → Full SERP.
- Tracking many keywords at once? → Bulk Search — one run, up to 100 queries, charged per query.
- Researching questions / content gaps? → People Also Ask.
- Monitoring Google's generative answers? → AI Mode (and
fetchAiOverviewson the search modes).
🚀 Quick Start
- Open the actor and select an Operation from the dropdown.
- Fill the required input for that mode:
- For Google Search / Full SERP / Fast Light / People Also Ask → a
query - For Bulk Search → a list of
queries(use Bulk edit to paste one per line) - For AI Mode → a
prompt
- For Google Search / Full SERP / Fast Light / People Also Ask → a
- (Optional) Set
country,language,num(result count),location, and togglefetchAiOverviews. - Click Start and collect clean rows from the dataset.
Example — track ranks for a keyword list (Bulk Search)
{"operation": "bulkSearch","queries": ["best web scraping tools","google serp api","ai overview scraper","rank tracking software"],"num": 10,"country": "us"}
Example — capture AI Overviews + Knowledge Graph (Full SERP)
{"operation": "searchFull","query": "what is generative engine optimization","fetchAiOverviews": true,"num": 10,"country": "us"}
Example — content research (People Also Ask)
{"operation": "peopleAlsoAsk","query": "web scraping","fetchAnswers": true,"country": "us"}
📥 Input Reference
| Field | Type | Applies to | Description |
|---|---|---|---|
operation | enum | all | search · searchFull · searchLight · bulkSearch · aiMode · peopleAlsoAsk |
query | string | search, searchFull, searchLight, peopleAlsoAsk | The search query |
queries | array | bulkSearch | Up to 100 queries, one credit each |
prompt | string | aiMode | Natural-language prompt for AI Mode |
country | string | all | ISO country code (gl), default us |
language | string | all | ISO language code (hl), default en |
num | integer | search modes | Number of organic results per query |
start | integer | search, searchFull | Result offset for pagination |
location | string | search, searchFull, peopleAlsoAsk | Specific geographic location |
device | enum | search | desktop · mobile · tablet |
tbs | string | search, searchFull | Google tbs time/advanced filter (e.g. qdr:w) |
fetchAiOverviews | boolean | search, searchFull | Request Google's AI Overview block |
fetchAnswers | boolean | peopleAlsoAsk | Return full answer text (default on) |
sessionToken | string | aiMode | Continue an AI Mode conversation |
📤 Output
Every row is a flat JSON object with curated camelCase fields. Filter by _operation and _resultType to split modes.
Organic result row (search / searchFull / searchLight / bulkSearch):
{"_operation": "search","_resultType": "organic","resultTitle": "Apify: Full-stack web scraping and data extraction platform","url": "https://apify.com/","snippet": "Cloud platform for web scraping, browser automation, AI agents...","domain": "apify.com","position": 1,"rank": 1,"hasAiOverviews": true,"totalOrganicResults": 84000000,"country": "us","status": "success"}
SERP features row (searchFull — one per call): holds knowledgeGraph, answerBox, aiOverviews, topStories, inlineVideos, places, relatedSearches, ads.
People Also Ask row:
{"_operation": "peopleAlsoAsk","_resultType": "people_also_ask","question": "What does Apify do?","answer": "Apify is a cloud platform for web scraping, browser automation...","sourceUrl": "https://apify.com/","sourceDomain": "apify.com","position": 1,"status": "success"}
An HTML run report is written to the default key-value store as report.html.
Full field reference
Common metadata on every row:
| Field | Type | Description |
|---|---|---|
_operation | string | The operation that produced the row (search, searchFull, …) |
_resultType | string | organic · serp_features · people_also_ask · ai_mode · empty |
_sourceQuery / _sourcePrompt | string | The query or prompt that produced the row |
_fetchedAt | string | ISO timestamp when the row was fetched |
country | string | The gl country used |
status | string | success or error |
errorMessage | string | Present only on error rows |
Organic-result fields (_resultType: "organic"):
| Field | Type | Description |
|---|---|---|
resultTitle | string | The result title |
url | string | The destination URL (absolute HTTPS) |
snippet | string | The result snippet |
domain | string | The result's domain |
displayedLink | string | The breadcrumb-style displayed link |
source | string | The source label, when present |
position / rank | number | The position on the SERP |
date | string | Published date, when present |
snippetHighlightedWords | array | Words Google bolded in the snippet |
videoThumbnail | string | Thumbnail URL for video results |
totalOrganicResults | number | Total result count Google reports |
hasAiOverviews | boolean | Whether an AI Overview was present |
SERP-features fields (_resultType: "serp_features", Full SERP only):
| Field | Type | Description |
|---|---|---|
knowledgeGraph | object | kgTitle, kgType, kgmid, kgDescription, kgAttributes |
answerBox | object | answerType, answerText |
aiOverviews | object | Google's AI Overview text_parts + reference_links |
ads | array | Paid results |
topStories | array | Top stories carousel |
inlineVideos | array | Inline video results |
places | array | Local pack / places |
discussionsAndForums | array | Discussions & forums block |
relatedSearches | array | Related searches |
AI-Mode fields (_resultType: "ai_mode"):
| Field | Type | Description |
|---|---|---|
aiAnswer | string | The stitched plain-text generative answer |
replyParts | array | The structured answer parts |
referenceLinks | array | The sources Google cited |
sessionToken | string | Token to continue the conversation |
People-Also-Ask fields (_resultType: "people_also_ask"):
| Field | Type | Description |
|---|---|---|
question | string | The PAA question |
answer | string | The full answer (when fetchAnswers is on) |
sourceUrl / sourceDomain / sourceTitle | string | Source attribution |
position | number | The question's order |
💰 Pricing
This actor uses pay-per-event pricing — you pay for what you extract, with a small flat fee per run.
| Event | What it covers |
|---|---|
| Actor Start | Charged once per run when input validation passes |
| Search Result | Charged per query for Google Search, Fast Light, and each query in Bulk Search |
| Full SERP Result | Charged per result for the heavy Full SERP mode |
| People Also Ask Result | Charged per People-Also-Ask call |
- Bulk Search is charged per query, not per result — submit 100 queries, pay for 100 queries, get every result.
- Failed lookups are saved as
status:"error"rows and are never charged. - See the actor's Pricing tab for live per-tier rates.
🌍 Localization & Advanced Options
Every search mode supports Google's localization parameters:
country(gl) — localize results to a country:us,gb,de,ca,in,br,fr,jp, …language(hl) — set the UI language:en,es,de,pt, …location— search as if from a specific place:New York, NY,London, United Kingdom.device—desktop(default),mobileortablet(Google Search mode).tbs— Google's advanced/time filter:qdr:d(past day),qdr:w(past week),qdr:m(past month).num/start— control how many results and the offset for pagination.
These make it easy to run the same keyword across many markets — loop the actor over a list of countries to build a per-market rank table.
💡 Use Cases
- SERP rank tracking at scale — submit a keyword list via Bulk Search and capture organic positions, domains and snippets for each, country by country, on a schedule. Feed the rows into a dashboard to watch movement over time.
- GEO & AI Overview monitoring — capture Google's AI Overviews and the sources it cites to track Generative Engine Optimization (GEO/AEO) as AI answers reshape search. Know when Google starts (or stops) showing an AI Overview for your target queries, and which domains it surfaces.
- Keyword & People-Also-Ask research — pull PAA questions with answers and source attribution to map content gaps, build FAQ schema, and discover the real questions searchers ask around a topic.
- Brand & market SERP intelligence — use Full SERP to extract the entire result page — organic, ads, top stories, videos, places and Knowledge Graph — for brand monitoring, share-of-voice and competitive analysis without running a browser farm.
- Search data for LLMs & RAG pipelines — feed clean, structured Google results and AI Overviews into LLM apps, RAG pipelines and AI agents. Fast Light mode keeps latency low for real-time retrieval; Bulk Search batches large query sets.
🆚 Why this actor
| This actor | Typical single-purpose SERP scraper | |
|---|---|---|
| Organic results | ✅ | ✅ |
| AI Overviews | ✅ | ❌ usually |
| Knowledge Graph + answer box | ✅ | ❌ |
| People Also Ask + answers | ✅ | ❌ |
| Bulk 100 queries / call | ✅ | ❌ |
| Google AI Mode | ✅ (when available) | ❌ |
| No API key / proxy setup | ✅ | varies |
| Pay per query | ✅ | varies |
❓ FAQ
Do I need a Google API key or a SerpAPI subscription? No. The actor handles the backend, proxies and parsing. Paste an input and run.
How many queries can I run at once? Up to 100 queries in a single Bulk Search run, each charged one credit. For single queries, use the Google Search, Full SERP, or Fast Light modes.
Do I always get AI Overviews?
AI Overviews are generated by Google and only appear for certain (usually informational) queries — enable fetchAiOverviews and check the hasAiOverviews flag and aiOverviews field on the row. When Google shows an AI Overview for your query, it's captured.
What's the difference between Full SERP and Google Search? Google Search returns organic results plus an AI Overviews flag. Full SERP returns the entire results page — Knowledge Graph, answer box, top stories, inline videos, ads, places, discussions and related searches — as structured blocks.
Which mode is fastest? Fast Light Search returns organic-only results with the lowest latency, ideal for real-time and RAG use.
Am I charged for empty or failed queries?
Failed lookups are saved as status:"error" rows and are not charged. In Bulk Search, each submitted query consumes one credit (this maps to the upstream cost), even if a particular query returns no results.
Can I localize results?
Yes — set country (gl), language (hl), a specific location, device, and Google tbs time filters.
Can I run this on a schedule? Yes. Use Apify's Schedules to run any operation at a fixed interval — ideal for daily rank tracking or AI-Overview monitoring. Each run appends to a fresh dataset you can export or pipe to a webhook.
How do I export the data? From the run's Dataset tab, export to JSON, CSV, Excel, or pull it via the Apify API. Integrations include Google Sheets, Make, Zapier and direct webhooks.
What happens to error rows?
Rows with status: "error" carry a friendly errorMessage and are not charged. Filter them out with _resultType / status when processing.
🧭 Tips for Best Results
- Use Bulk Search for keyword lists. It's the cheapest way to track many queries — one credit each, all results returned.
- Enable
fetchAiOverviewsfor informational queries. AI Overviews appear most for "what is…", "how to…", "benefits of…" style queries; checkhasAiOverviewson the row. - Pick the lightest mode that has what you need. Fast Light < Google Search < Full SERP in both cost and latency.
- Localize deliberately. A query ranks differently per country and language — set
glandhlto match the market you care about. - Schedule it. Rank tracking and GEO monitoring are time-series problems — run daily and diff the datasets.
🔌 Integrations
The output dataset works with the full Apify ecosystem:
- Export to JSON, CSV, Excel, XML or RSS from the Dataset tab.
- API — pull results programmatically via the Apify API or client libraries (JS, Python).
- No-code — connect to Make, Zapier, n8n and Google Sheets.
- Webhooks — trigger downstream pipelines when a run finishes.
- Schedules — automate recurring rank tracking and GEO monitoring.
🔗 More by SIÁN Agency
- Trustpilot Reviews Scraper — Company reputation & consumer reviews
- Smart Idealista Scraper — Property listings & market data
- Instagram AI Transcript Extractor — Reels & video transcripts
- Browse all SIÁN actors →
⭐ Love this actor? Leave a 5-star review — it helps us build more features for you.
📨 Support
Questions, bugs or feature requests? Use the Issues tab in the Apify Console, or reach us at apify@sian-agency.online. We build these tools together with the community.
⚠️ Trademark Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google LLC. "Google", "Google Search", "AI Overviews", "Knowledge Graph" and related marks are trademarks of Google LLC. This actor accesses publicly available Google search results data through a third-party real-time search backend and does not use any official Google API. All product names, logos and brands are property of their respective owners and are used for identification purposes only.
📜 Legal & Compliance
This actor extracts publicly available search results data. You are responsible for using the output in compliance with applicable laws and the terms of the sources involved, including data-protection regulations such as GDPR and CCPA. Do not use the data to identify, profile or target individuals unlawfully. For guidance on ethical and legal web scraping, see Apify's guide to web scraping legality.
Published by SIÁN Agency (SIÁN OÜ, Tallinn, Estonia). Building reliable, transparent data tools on Apify.