Google Search Results Scraper (SERP) Pro avatar

Google Search Results Scraper (SERP) Pro

Pricing

from $47.27 / 1,000 serp pages

Go to Apify Store
Google Search Results Scraper (SERP) Pro

Google Search Results Scraper (SERP) Pro

Scrape Google Search results at scale: organic results, ads, People Also Ask, related queries, featured snippets, knowledge panel, top stories and AI overview. Export JSON, CSV or Excel.

Pricing

from $47.27 / 1,000 serp pages

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Google Search Results Scraper (SERP) Pro

Google Search Results Scraper (SERP) Pro

Here is one real result, with the fields the actor returns for a single results page (arrays trimmed for readability, values are real):

{
"searchQuery": {
"term": "buy iphone 15 pro",
"url": "https://www.google.com/search?q=buy+iphone+15+pro&num=10&hl=en&gl=us",
"page": 1,
"type": "web",
"device": "DESKTOP",
"countryCode": "us",
"languageCode": "en",
"locationUule": null,
"resultsPerPage": 10
},
"resultsTotal": null,
"organicResults": [
{
"title": "iphone 15 pro",
"url": "https://www.bestbuy.com/site/searchpage.jsp?id=pcat17071&st=iphone%2015%20pro",
"displayedUrl": "https://www.bestbuy.com › site › searchpage",
"description": "Shop for iphone 15 pro at Best Buy. Find low everyday prices and buy online for delivery or in-store pick-up.",
"position": 1,
"date": null,
"emphasizedKeywords": ["iphone 15 pro at Best Buy"],
"siteLinks": [],
"type": "organic"
},
{
"title": "Apple iPhone 15 Pro, 256GB, Black Titanium - Unlocked ...",
"url": "https://www.amazon.com/Apple-iPhone-15-Pro-Titanium/dp/B0CMZ5LT14",
"displayedUrl": "https://www.amazon.com › Apple-iPhone-15-Pro-Titanium",
"description": "Buy Apple iPhone 15 Pro, 256GB, Black Titanium - Unlocked (Renewed): FREE DELIVERY possible on eligible purchases.",
"position": 2,
"date": null,
"emphasizedKeywords": ["Buy Apple iPhone 15 Pro, 256GB, Black Titanium"],
"siteLinks": [],
"type": "organic"
}
],
"paidResults": [],
"paidProducts": [],
"peopleAlsoAsk": [
{ "question": "Is the iPhone 15 Pro still being sold?", "answer": null, "title": null, "url": null },
{ "question": "Is the iPhone 15 Pro still worth buying?", "answer": null, "title": null, "url": null }
],
"relatedQueries": [
{ "title": "Buy iphone 15 pro unlocked", "url": "https://www.google.com/search?q=Buy+iphone+15+pro+unlocked" },
{ "title": "iPhone 15 Pro Unlocked", "url": "https://www.google.com/search?q=iPhone+15+Pro+Unlocked" }
],
"featuredSnippet": null,
"knowledgePanel": {
"title": "Apple iPhone 15 Pro",
"type": null,
"description": "The first iPhone to feature an aerospace-grade titanium design, featuring the A17 Pro chip and a pro camera system with multiple focal lengths.",
"url": null,
"attributes": {}
},
"topStories": [
{ "title": "Used iPhone 14 Pro or 15 pro?", "url": "https://www.reddit.com/r/iPhone15Pro/comments/1vso7ak/", "source": null, "date": "10+ comments · 1 day ago" }
],
"localResults": [
{ "title": "Best Buy", "rating": null, "reviews": null, "address": "Salem, OR · (503) 371-0826" }
],
"aiOverview": null,
"pagination": { "currentPage": 1, "nextPageUrl": "https://www.google.com/search?q=buy+iphone+15+pro&start=10" },
"serpFeatures": ["organic_results", "people_also_ask", "related_queries", "knowledge_panel", "top_stories", "local_results"],
"htmlSnapshotUrl": null,
"aiSerpIntelligence": null,
"paaExpandedCount": null,
"source": "google.com",
"observedAt": "2026-08-21T14:26:02.034Z",
"error": null
}

The most complete Google Search results scraper available. It returns every SERP block Google exposes for a query (organic results, text ads, shopping ads, People Also Ask, related searches, featured snippet, knowledge panel, top stories, local pack and AI overview when present), plus derived fields like emphasizedKeywords, siteLinks and a normalized serpFeatures list, and gives you a full set of filters (country, language, location, device, time range, search type and advanced operators) to target exactly the SERP you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

Give the actor one or more search terms (or full Google search URLs) and it fetches the live Google results pages, parses every block on each page, and writes one clean record per results page to the dataset. It handles the country, language, device and location targeting for you, rotates its own connection so you never configure a proxy, and retries automatically on soft blocks so you get real parsed results rather than empty pages.

Each record mirrors the shape of the leading Apify SERP actors: a searchQuery object describing exactly what was searched, then organicResults, paidResults, paidProducts, peopleAlsoAsk, relatedQueries, featuredSnippet, knowledgePanel, topStories, localResults, aiOverview, pagination and a normalized serpFeatures list. Blocks that are not present on a given SERP come back as empty arrays or null, never invented.

Two optional add-ons go beyond a raw scrape: an AI SERP intelligence pass that returns search intent, a synthesized answer, top entities, content gaps and suggested titles, and a People Also Ask expansion that runs extra searches to fill in full answers for the PAA questions.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the first results page for each query.

{
"queries": ["best running shoes", "seguro de coche"],
"resultsPerPage": 10,
"maxPagesPerQuery": 1,
"countryCode": "us",
"languageCode": "en"
}

queries accepts plain terms, advanced operators (site:, intitle:, OR, quotes, filetype:) or full https://www.google.com/search?q=... URLs. Every other field is optional.

Input reference

FieldTypeRequiredDefaultDescription
queriesarray of stringsyes["best running shoes"]One or more search terms or full Google search URLs. Each item is searched separately. Advanced operators are passed through. A single string is also accepted.
resultsPerPageintegerno10Results per page (Google num, 10 to 100). One dataset item is produced per page.
maxPagesPerQueryintegerno1Pagination depth per query (1 to 20). Each page is one billable result item.
countryCodestringnousTwo-letter country to search from (Google gl), for example us, gb, es, de, br. Also matches the connection country.
languageCodestringnoenTwo-letter interface language (Google hl), for example en, es, de, fr, pt.
searchLanguagestringno(none)Restrict results to a language (Google lr=lang_XX), for example en, es.
locationstringno(none)Plain-text local search location, for example New York,New York,United States. Encoded to a UULE parameter automatically.
locationUulestringno(none)Pre-encoded Google UULE string. Overrides location.
searchTypeenumnowebWhich Google vertical to scrape: web, news, shopping or images.
mobileResultsbooleannofalseFetch the mobile version of the SERP (mobile user agent and layout).
sitestringno(none)Restrict every query to one domain (adds site:<domain>), for example wikipedia.org.
relatedToSitestringno(none)Find pages related to a domain (adds related:<domain>). Useful for link prospecting.
fileTypestringno(none)Restrict to a file format (adds filetype:<ext>), for example pdf.
wordsInTitlestringno(none)Require these words in the page title (adds allintitle:<words>).
countryRestrictstringno(none)Restrict results by country of origin (Google cr=countryXX), for example us. Different from countryCode.
beforeDatestringno(none)Only results on or before this date (YYYY-MM-DD), via Google custom date range.
afterDatestringno(none)Only results on or after this date (YYYY-MM-DD), via Google custom date range.
tbsstringno(none)Raw Google tbs value passed through as-is (advanced). Overrides timeRange, beforeDate and afterDate.
saveHtmlbooleannofalseStore the raw HTML of each page to the run key-value store and return its URL in htmlSnapshotUrl.
timeRangeenumnoany timeRestrict by recency: any time, past hour, past day, past week, past month, past year.
forceExactMatchbooleannofalseWrap each query in quotes for exact-phrase matching.
safeSearchbooleannofalseEnable Google SafeSearch filtering.
includeUnfilteredResultsbooleannofalseInclude lower-quality results Google normally omits (filter=0).
aiSerpIntelligencebooleannofalsePaid add-on, paying accounts only. AI search intent, synthesized answer, entities, content gaps and suggested titles per page.
expandPaabooleannofalsePaid add-on, paying accounts only. Runs extra searches to fill in full answers for the top People Also Ask questions.

Output reference

One dataset item per results page. Types are string, integer, boolean, object, array, or null when a value or block is absent.

FieldTypeDescription
searchQueryobjectWhat was searched: term, url, page, type, device, countryCode, languageCode, locationUule, resultsPerPage.
resultsTotalintegerApproximate total results Google reports, or null when Google omits the count.
organicResultsarrayOrganic results, each with title, url, displayedUrl, description, position, date, emphasizedKeywords, siteLinks, type.
paidResultsarrayText ads, each with title, url, displayedUrl, description, adPosition, type.
paidProductsarrayShopping / product ads, each with title, url, price, seller.
peopleAlsoAskarrayPeople Also Ask entries, each with question, answer, title, url. answer/url fill in when the Expand PAA add-on is on.
relatedQueriesarrayRelated searches, each with title and url.
featuredSnippetobjectFeatured snippet / answer box: content, title, url. null when absent.
knowledgePanelobjectKnowledge panel: title, type, description, url, attributes. null when absent.
topStoriesarrayTop stories / news cards, each with title, url, source, date.
localResultsarrayLocal pack results, each with title, rating, reviews, address.
aiOverviewobjectAI Overview block: content, sources. null when not present in the HTTP response.
paginationobjectcurrentPage and nextPageUrl.
serpFeaturesarrayNormalized list of features present, for example organic_results, people_also_ask, featured_snippet, knowledge_panel.
htmlSnapshotUrlstringReserved for an optional stored HTML snapshot URL.
aiSerpIntelligenceobjectAdd-on output: searchIntent, aiAnswer, topEntities, contentGaps, suggestedTitles. null unless the add-on ran and succeeded.
paaExpandedCountintegerNumber of People Also Ask questions expanded with full answers by the add-on.
sourcestringAlways google.com.
observedAtstringISO 8601 timestamp when the page was collected.
errorstringnull on success. A soft-blocked or failed page writes a single item with a populated error and is not charged.

Example output record

The hero JSON at the top of this page is a real record from a live run for buy iphone 15 pro (arrays trimmed for readability). Records for question and brand queries populate featuredSnippet, peopleAlsoAsk and knowledgePanel; commercial queries populate paidResults, paidProducts and localResults when Google shows them.

Run via API and CLI

Start a run and read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~google-search-scraper-pro/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"queries":["best running shoes"],"countryCode":"us","languageCode":"en","maxPagesPerQuery":2}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~google-search-scraper-pro/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"queries":["seguro de coche"],"countryCode":"es","languageCode":"es"}'

Apify CLI:

apify call scrapers_lat/google-search-scraper-pro \
--input '{"queries":["python tutorial"],"resultsPerPage":20}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"

<DATASET_ID> is returned as defaultDatasetId in the run object.

Use cases

  • SEO rank tracking: track your and competitors' positions for target keywords across countries, languages and devices.
  • SERP feature monitoring: watch when featured snippets, knowledge panels, People Also Ask, top stories and local packs appear or change.
  • Keyword research: mine People Also Ask, related searches and emphasized keywords to build content and PPC keyword lists.
  • Competitor analysis: see which domains own the organic and paid results for a query, and how their titles and descriptions read.
  • AEO and AI overview tracking: monitor which queries trigger an AI overview and what entities the SERP surfaces, and use the AI intelligence add-on to map content gaps.
  • PPC ad monitoring: capture text ads and shopping ads competitors run on commercial queries.
  • Local SEO: target a city with the location field and read the local pack for a query.
  • Brand monitoring: search brand terms and track the knowledge panel, top stories and sentiment of the results.

How we compare

Compared against the four most popular Google Search / SERP actors on the Apify Store at the time of writing:

  • A = apify/google-search-scraper (the official actor, ~169K users, 4.6 stars)
  • B = scraperlink/google-search-results-serp-scraper (~9K users, 4.9 stars, cheapest per page)
  • C = epctex/google-search-scraper (~2.7K users, 3.5 stars, monthly rental)
  • D = apidojo/google-search-scraper (~1K users, 3.9 stars, per-query pricing)
FeatureThis actorABCD
Organic results (title, url, description, position)YesYesYesYesYes
Displayed URL and sitelinksYesYesNoYesNo
Emphasized keywords (bolded terms)YesYesNoNoNo
Text ads (paidResults)YesYesNoYesNo
Shopping / product ads (paidProducts)YesYesNoNoNo
People Also AskYesYesNoYesNo
People Also Ask full-answer expansionYesNoNoNoNo
Related queriesYesYesNoYesNo
Featured snippet / answer boxYesYesNoNoNo
Knowledge panelYesYesNoNoNo
Top storiesYesYesNoNoNo
Local pack resultsYesPartialNoNoNo
AI overview (when in server HTML)PartialYes (browser)NoNoNo
AI SERP intelligence (intent, answer, entities, gaps, titles)YesPartialNoNoNo
Normalized serpFeatures listYesNoNoNoNo
Country and language targetingYesYesYesYesYes
Location targeting (UULE)YesYesYesYesNo
Auto-encode UULE from plain text locationYesNoNoNoNo
Mobile resultsYesYesNoNoYes
News / Shopping / Images verticalsYesYesNoNoNo
Results per page 10 to 100YesYesYesYesPartial
PaginationYesYesYesYesYes
Advanced operators (site, related, filetype, intitle)YesYesNoNoNo
Relative time filterYesYesNoNoNo
Absolute date range (before / after)YesYesNoNoNo
Raw tbs passthroughYesNoYesNoNo
Country restrict (cr)YesNoYesNoNo
Save HTML snapshotYesYesNoNoNo
Full Google search URL inputYesYesPartialYesYes
No proxy configuration requiredYesYesYesNoYes
No charge on failed or empty pagesYesNot statedNot statedNot statedNot stated

Why choose this scraper

  • Every SERP block in one record. Organic, ads, shopping ads, People Also Ask, related queries, featured snippet, knowledge panel, top stories, local pack and AI overview, plus a normalized serpFeatures list, in the shape the leading actors use.
  • Value-adds no competitor offers together: People Also Ask full-answer expansion, AI SERP intelligence (search intent, synthesized answer, entities, content gaps, suggested titles), emphasized keywords, auto-encoded UULE from a plain-text location, and the normalized feature list.
  • Reliability by design. A dedicated unblocking connection returns real parsed results rather than the JavaScript shells that block naive HTTP scrapers, with automatic retries. In our tests it returned real organic results on every query.
  • Fair billing. One price per results page, a discount ladder at higher plans, add-ons off by default and charged only on success, and no charge for soft-blocked or empty pages.

Honest notes: on raw price per page, B and D are cheaper (this actor is priced for full-feature completeness and reliability, not to be the cheapest). Actor A additionally queries several external AI engines (Gemini, ChatGPT, Perplexity, Copilot) and offers leads enrichment; those are separate products beyond core SERP parsing, and our AI SERP intelligence add-on covers the synthesized-answer use case. Google renders AI overviews client-side, so aiOverview is populated only when present in the server HTML.

Billing and limits

  • Pay per results page. You are charged one result event per Google results page returned, with a tiered price that decreases at higher Apify plans. See the pricing tab for the current price.
  • Actor start. A small one-time apify-actor-start event is charged once per run.
  • Optional add-ons, off by default, paying accounts only. ai_serp_intelligence (AI intent, synthesized answer, entities, content gaps, titles) and expand_people_also_ask (extra searches that fill in full PAA answers). Each is charged only when it genuinely returns data.
  • No charge on failure. A soft-blocked or unparseable page writes a single item with an error field and is not charged. Empty results cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached the actor stops emitting and charging further results.
  • Free Apify plans are capped at 10 result pages per run and cannot use the paid add-ons. Upgrade for more.
  • AI overview note. Google renders AI overviews client-side, so aiOverview is populated only when it is present in the server HTML for a query; it is null otherwise.

FAQ and troubleshooting

Do I need to configure a proxy? No. The actor handles the connection and anti-bot retries internally. There is no proxy input.

A page came back with an error field. Why? Google soft-blocked or returned an unparseable page for that request after retries. Those pages are not charged. Re-run the query; transient soft blocks usually clear.

Why is resultsTotal null? Google no longer shows the total result count on many layouts. When it is absent, the field is null rather than a guess.

Why is aiOverview null when I see one in my browser? AI overviews load with JavaScript in the browser. This is an HTTP scraper, so aiOverview is filled only when the overview text is present in the server response. For AI intent and a synthesized answer on every query, enable the aiSerpIntelligence add-on.

Can I search other countries and languages? Yes. Set countryCode and languageCode (for example es and es), and optionally location for a specific city. The connection is matched to the country.

How do I paginate? Set maxPagesPerQuery. The actor fetches pages 1..N for each query and returns one record per page. Each page is one billable result.

Is this an official Google tool? No. This actor is independent and has no affiliation with Google. It reads only publicly available search results.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for search, e-commerce, company registries, government data and finance. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Google. Accesses only publicly available search results. Use in accordance with Google's terms of service.