Google SERP Scraper: Organic Results, PAA & Related
Pricing
$1.50 / 1,000 results page scrapeds
Google SERP Scraper: Organic Results, PAA & Related
Turn search queries into clean rows: rank, title, URL, domain and snippet, plus People also ask and related searches. Built by Physea Labs (Liminal). Launch Sale: 90% OFF for the first week. From $0.0015 per results page.
Type search queries and get the results page as clean rows: rank, title, URL, domain and snippet for every organic result, plus the People also ask questions and related searches Google shows.
🚀 Launch Sale: 90% OFF for the first week! Prices below are the regular rates; launch-week runs are billed at a tenth of them.
What can it do?
| What you get | Features |
|---|---|
| 🔎 Organic results with rank, title, URL, domain, snippet | ⚡ Plain HTTP, no browser: a 2-query run finishes in seconds |
| ❓ People also ask and related searches as their own rows | 🛡️ Apify Google SERP proxy on the platform, Bing / DuckDuckGo fallback if Google blocks |
🏷️ source_engine on every row so you know where it came from | 📤 JSON, CSV, Excel, API, Zapier, Make, n8n |
Who this is for
- SEO teams tracking who ranks for their keywords
- Content teams mining People also ask questions for briefs
- Lead generation: find the companies ranking for a niche query
- LLM agents that need fresh search results as structured rows
What you get back
| Field | Type | What you get | Example |
|---|---|---|---|
recordType | string | organic, people_also_ask, related_search or status | organic |
query | string | The query you typed | web scraping api |
position | integer | Rank within its record type | 1 |
title | string | Result title, question or related search | ScrapingBee - The Best Web Scraping API |
url | string | Result URL (organic rows) | https://www.scrapingbee.com/ |
domain | string | Host without www | scrapingbee.com |
snippet | string | Description under the result | ScrapingBee is the best web scraping API... |
source_engine | string | google, bing or duckduckgo | google |
status | string | ok or error | ok |
Every run also writes RUN_SUMMARY.json to the key-value store (counts, spend-limit flag, pricing).
What you need to provide
| Field | Type | What it does | Example |
|---|---|---|---|
queries | array | One search per line, typed exactly as you would in Google. | ["web scraping api", "best python http client"] |
maxResultsPerQuery | integer | Organic results to keep per query. Each 10 results is one results page. | 10 |
countryCode | string | Two-letter country code for localized results (us, gb, de, in...). | "us" |
languageCode | string | Interface language code (en, de, fr...). | "en" |
includeSerpFeatures | boolean | Add one row per People also ask question and related search found on the first page. | true |
fallbackToDuckDuckGo | boolean | If Google answers with a captcha or JavaScript wall, fetch the same query from Bing (then DuckDuckGo) so the run still returns organic rows. Each row's source_engine says which engine it came from. Turn off for Google-only data. | true |
Quick start
- Click Try for free.
- Press Start: the sample input finishes in under a minute with no API keys or setup.
- Replace the sample with your own values and run again.
- Open the dataset, or export it as JSON, CSV or Excel.
Pricing
🚀 Launch Sale: 90% OFF for the first week!
serp-page-scraped: $0.0015 per results page (up to 10 organic results + SERP features), so 1,000 results cost $0.15.- Blocked or empty pages are not charged.
- Set a max cost per run in the run options and the run stops cleanly when it hits it.
- Normal Apify platform usage applies.
Limits and honest notes
- Google blocks most datacenter IPs. On Apify each page goes through the Google SERP proxy; when Google still challenges a request and the fallback is on, the query is answered from Bing (then DuckDuckGo) and
source_enginesays so. Turn the fallback off if you need Google-only data. - Ads, shopping, maps and AI Overview boxes are not extracted. For AI Overview citations use our Google Brand Mention & Citation Tracker.
- Up to 100 results per query (10 pages).
- No other Apify actor is called: everything is collected in-house over plain HTTP.
Run it from code
Same input as the Console sample:
{"queries": ["web scraping api","best python http client"],"maxResultsPerQuery": 10}
curl -X POST "https://api.apify.com/v2/acts/physealabs~google-serp-extractor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" -d @input.json
from apify_client import ApifyClientitems = ApifyClient("YOUR_APIFY_TOKEN").actor("physealabs/google-serp-extractor").call(run_input={"queries": ["web scraping api", "best python http client"], "maxResultsPerQuery": 10})
It also works from Zapier, Make, n8n and Apify schedules.
About Physea Labs · Liminal
Built and maintained by Physea Labs: the same extraction layer that feeds Liminal, our grounded research and decision engine. If it is good enough to feed Liminal's citations, it is good enough for your pipeline.