Google Maps POI & Review Scraping

Complete guide to scraping Google Maps POI data and reviews — 70+ tools across 20 categories. Compiled June 2026.

Official Google APIs

Places API (New), Business Profile API, pricing, field masks

Official Google APIs

Places API (New) — Overview & Pricing

Places API (New)

The current-generation API replacing the legacy Places API. Uses a mandatory field mask in every request — omitting it returns an error. Billing is determined by the highest-tier field requested.

Three-Tier SKU Billing

TierWhat's IncludedCost
EssentialsPlace ID, name, address, location, types, business statusLowest
ProPhone, website, opening hours, price level, photosMedium
EnterpriseReviews, ratings, userRatingCount, editorial summary, atmosphere dataHighest (~$17-35/1K requests)

Subscription Plans

PlanCostCallsSavings
Pay-as-you-goVariableUnlimitedBaseline
Starter$100/mo50KModerate
Pro$1,200/mo250KUp to $5,000 vs PAYG
EnterpriseCustomCustomNegotiated

Key API Operations

Rate Limits

Enforced per API method per project (unlike legacy API which aggregated all methods). Default ~600 requests/minute; increases require contacting Google support.

Free Tier Status (2026)

Warning: The previously documented "$200 monthly credit" and "10,000 free calls" claims were both refuted during adversarial verification. Verify directly at mapsplatform.google.com/pricing.

Data Fields (50+)

Name, formatted address, address components, phone, international phone, website, opening hours (regular + secondary), business status, price level, rating, user rating count, reviews (text/author/rating/time/language — max 5 per place), photos, types, coordinates, viewport, place ID, URL, UTC offset, plus 20+ boolean amenities (delivery, dineIn, takeout, outdoorSeating, liveMusic, allowsDogs, etc.).

New-Only Fields (Not in Legacy API)

regularSecondaryOpeningHours, paymentOptions, parkingOptions, subDestinations, fuelOptions, evChargeOptions, shortFormattedAddress, primaryType, primaryTypeDisplayName

Sources

Official Google APIs

Google Business Profile API

Google Business Profile API

Access all reviews (not limited to 5) — but only for locations you own or manage. Requires OAuth2 authentication.

Key Endpoints

EndpointPurpose
accounts.locations.reviews.listAll reviews for one location
accounts.locations.batchGetReviewsBatch review extraction across locations

Returns: reviewId, starRating, comment text, creation/update timestamps. Free for business owners.

Google Takeout Alternative

Business owners can download all reviews from their GBP as JSON via Google Takeout (free, official).

Source: Business Profile API — Review Data

Reverse-Engineered Internal Endpoints

Protobuf APIs, tbm=map, APP_INITIALIZATION_STATE, pagination

Reverse-Engineered Internal Endpoints

Protobuf Endpoints & Internal APIs

Google Maps Internal Protobuf API

Google Maps communicates with its backend using Protocol Buffer (protobuf) encoding over HTTP. Several internal endpoints have been documented.

tbm=map Search Endpoint

Adding tbm=map to a Google search returns protobuf-over-JSON instead of HTML. Single HTTP request, no browser rendering needed.

https://www.google.com/search?tbm=map&hl=en&q=restaurants+in+berlin&tch=1&ech=1

Returns: nested arrays parseable with JSON indexing — business names, ratings, review counts, categories, addresses, coordinates, thumbnails.

/maps/preview/place — Place Details

Returns protobuf-over-JSON place details via a pb parameter with feature ID embedded. More stable than HTML scraping — follows internal schema, not frontend layout.

/maps/vt/pb — Tile Endpoint

Map tile requests containing ~730 fields across ~125 protobuf messages. Uses !-separated text-based protobuf with type characters (s, i, d, f, j, u, v, x, y, g, h, n, o, e, z, B, b, m).

window.APP_INITIALIZATION_STATE

Google Maps embeds data in window.APP_INITIALIZATION_STATE in the HTML response. No headless browser needed:

JSON.parse(window.APP_INITIALIZATION_STATE[3][2].split("'\n")[1])

Source: r/webscraping

Protobuf Pagination Details

Data Available

Potentially everything visible in the Maps UI: full review text with timestamps, all photos, Q&A, popular times histograms, wait times, related places, owner responses — far exceeding the official API's 5-review limit.

Fragility Warning

Google's cryptographic constants rotate continuously. SearchGuard makes "reverse-engineered bypasses obsolete within minutes." One Reddit user reported successfully building a pure HTTP/protobuf scraper that reduced costs from $50K/mo to $1K/mo — but maintenance is constant.

Reverse-Engineered Internal Endpoints

Protobuf Tools & Decoders

Protobuf Tools

ToolLanguagePurposeLink
pbtkPythonExtract and fuzz protobuf structures from ChromeGitHub
google-maps-pb-decoderRubyDecode pb URL params to JSONGitHub
deprotoPythonDecode, manipulate, re-encode protobuf strings (round-trip conversion)GitHub

XHR/Network Interception

Intercept browser XHR requests during Google Maps navigation; responses contain protobuf-encoded data with "XHR1" signature. Use CDP Network.requestWillBeSent event + history.replaceState() hooks. Supported by Puppeteer request interception and Playwright route handlers.

Sources

Browser Automation & DIY Techniques

Playwright, Puppeteer, Selenium, community tricks from Reddit

Browser Automation & DIY Techniques

Headless Browser Automation (Playwright, Puppeteer, Selenium)

Browser Automation Frameworks

The foundation technique used by most scrapers. A browser renders Maps, executes JS, and extracts from the DOM.

Playwright (Most Popular)

Microsoft's library. Used by gosom/google-maps-scraper, HasData, many commercial tools. Supports Chromium, Firefox, WebKit.

Puppeteer (Node.js)

Google's Node.js browser automation. puppeteer-extra-plugin-stealth provides 17 evasion modules.

Selenium (Legacy)

Original framework. undetected-chromedriver patches for detection evasion.

Extraction Strategies

StrategyToken CostWhen to Use
CSS selectors (querySelectorAll)~52/itemKnown structure — default choice
aria-label attributes~52/itemMore resilient — accessibility attrs are stabler than CSS classes
body.innerText~5K/pageDiscovery — learn structure once, then switch
Network/XHR interceptionMinimalCapture protobuf responses directly — best approach
Accessibility tree (filtered)~28K/pageFind buttons, forms, interactive elements
Screenshot~132KCAPTCHA solving, visual debugging only
Browser Automation & DIY Techniques

DIY Scraping Techniques (Reddit & Community)

Community-Sourced Techniques

Practical techniques from Reddit, HN, and forums — the stuff not in vendor blog posts.

Grid-Scanning / Map Splitting (Essential)

Overcome the 120-result limit per search by dividing areas into smaller grid cells. Auto-adjust zoom to ~16 per cell. Can use QGIS + Python to generate coordinate grids. Tune tightness to urban density.

https://www.google.com/maps/search/{query}/@{lat},{long},16z

Used by every serious scraper (gosom, Apify actors, Octoparse). Hexagonal grid sampling is the academic version.

"Search in This Area" Automation

Moving the map and clicking "search in this area" reveals different/more results than initial search. Automate by systematically panning across coordinates.

HTTP-Only / No Browser Approach (50x Cheaper)

Replicate Google Maps' internal protobuf HTTP calls directly — no headless browser. One HN user reduced costs from $50K/mo to $1K/mo. "Built entirely with cURL, avoiding headless browsers since they're really slow." Google rarely updates their map API structure.

Dual-Architecture Engine

Use high-performance HTTP extraction for bulk data, only spin up headless browsers for dynamic elements. Extracts Booking URL, FID, CID from metadata. Faster than pure Playwright/Puppeteer.

Place ID Pre-Extraction

Get Place IDs first (cheap/fast), then pipe them for direct detail extraction without browser search overhead — data comes back "almost instantly."

CID-Based Direct Access

CID (Customer ID) is a 64-bit decimal that never changes, even through rebrand/relocation. More permanent than Place ID (which expires after 12 months).

https://www.google.com/maps/place/?cid=<CID_NUMBER>

Find CID: URL ?cid= parameter, or inspect Knowledge Panel for "ludocid".

Reference: Scrap.io CID Guide, CID Converter

LLM-Powered Query Expansion

Use LLMs to generate search term synonyms to overcome per-query result limits. "dentist" becomes "dental clinic", "oral surgeon", "dental practice", "orthodontist" etc. Multiplies coverage without geographic splitting.

Other Community Tricks

Sources

Commercial Platforms & Search API Proxies

Outscraper, Apify, Bright Data, SerpAPI, Serper.dev, etc.

Commercial Platforms & Search API Proxies

Commercial Scraping Platforms

Commercial Scraping Platforms

Outscraper (Best Value)

Pricing$1-3/1K records (basic); ~$14/1K full enrichment
Free Tier500 records (first 500 reviews free)
Fields74 fields incl. name, address, phone, hours, rating, reviews, photos, emails
ReviewsFull text, not limited to 5
Real-worldReddit user: $50 for 20K listings, ~6,500 usable after dedup

Apify (Marketplace)

Pricing$1.50-4/1K places (varies by actor)
Free$5 monthly platform credit
Fields25+ core + enrichment actors for emails/social
TipsSet maxCrawledPlaces to 9999999 for all results. Niche searches have 75-80% junk rate
Actorscompass/crawler-google-places, beatanalytics/google-maps-reviews-scraper

Bright Data (Enterprise)

Dataset200.7M+ pre-scraped records at $0.0025/record ($250/100K)
Scraper APIFrom $500/mo + proxy costs
Proxy Network72M+ residential IPs — industry's largest

Other Commercial Services

ServicePricingKey Feature
Scrap.ioFrom EUR 35/mo (10K leads)Simplest UX, radius/polygon search, count preview, 200M+ places
ScrapFly~$3.37/1K requestsGeneral-purpose, credit-based, 99% success rate
LocalAPIFree tier: 50 searchesOnly API exposing Popular Times histograms
HasDataAPI plansCloud-powered, built-in email finder
Leads-Extractor.comVariousDedicated Maps scraper
MapSHunt.comVariousPrioritizes businesses with websites, crawls for emails/social
LocalProspectsVariousAuto-crawls for owner name, emails, mobile phones
GeoScraperUnlimited/moReviews scraper + email/social extraction
MineleadVariousEmail finder for Maps businesses
Estrattore DatiVariousEmail and phone extraction

Cost Comparison (per 1,000 POI records)

PlatformBasic POIWith ReviewsWith Enrichment
Outscraper$1-3$5-8~$14
Apify$1.50-4$3-6$5-10
Bright Data (dataset)$2.50IncludedIncluded
Scrap.io~$3.50ExtraExtra
ScrapFly$3.37+SameSame
PhantomBuster$50-80N/AN/A
Google Places API$17-35Enterprise tierEnterprise tier
Commercial Platforms & Search API Proxies

Search API Proxies (SerpAPI, Serper, etc.)

Search API Proxies

Services that handle scraping/anti-bot, returning clean JSON from Google Maps queries.

ServicePricingSpeedNotes
SerpAPI$50/5K queriesStandardMarket leader. Active DMCA lawsuit from Google (Dec 2025)
Serper.dev~$1/1K queries; $0.30/1K at volume~2.87s2,500 free queries. SERP-based Maps results
Scrapingdog$0.33/1K3.05s100% success rate (benchmarked), fastest
Scrape.do$1.16/1K1.73sAI Overview detection
ScraperAPI$50/4K searchesStandardMaps in all plans
ScrapeBadgerCompetitiveStandardReview support
DataForSEOPay-per-taskStandardMaps SERP + reviews endpoints
Oxylabs SERPFrom $49/moStandardEnterprise SERP API
ValueSERPVarious~40s (slow)Some user complaints
ZenserpFrom $30/moStandardMulti-engine support

SerpAPI Details

Accepts standard Google Maps query syntax (q=restaurants+in+Berlin), returns structured JSON with: title, address, phone, rating, reviews, hours, service_options, GPS coordinates, place_id, data_cid, price, type, photos, thumbnails.

Separate endpoint for individual place reviews.

Open-Source Scrapers & Python Libraries

GitHub repos, populartimes, gomaps, review scrapers

Open-Source Scrapers & Python Libraries

Open-Source GitHub Scrapers

Open-Source Scrapers

RepositoryLanguageStarsFieldsKey Feature
gosom/google-maps-scraperGo4,20033+120 places/min, CLI/Web/REST, K8s-ready, email extraction, SOCKS5/HTTP/HTTPS proxy rotation
omkarcloud/google-maps-scraperPython2,700+50+Social profiles (LinkedIn/Twitter/FB/IG), ad spend detection, $28 Pro
HasData/google-maps-scraperPython-73 backends: Selenium, Playwright stealth, HasData API
google-reviews-scraper-proPython-ReviewsMulti-language reviews + images, MongoDB, bypassed Feb 2026 "limited view"
conor-is-my-nameDocker-VariousDesigned for n8n + Postgres. Multi-container, 1 req/min/IP = ~144K/day
webAutomationLoverUserscript-VariousTampermonkey, auto-scrolls, exports .xlsx. No server needed
alltheplacesPython/Scrapy-POI20M+ POIs from 4,100+ spiders. CC-0 license, weekly updates
tripadvisor-scraperPython-ReviewsAlternative review source via TripAdvisor GraphQL

Feb 2026 "Limited View" Lockdown

Google introduced a "limited view" restriction on review pages. google-reviews-scraper-pro bypassed it via search-based navigation (no login needed). Review pagination uses offset increments of 10, supports 4 sort modes (relevant/newest/highest/lowest).

Open-Source Scrapers & Python Libraries

Python Libraries & Popular Times Tools

Python Libraries

LibraryStatusAPI Key?FieldsNotes
googlemaps (official)ActiveYes50+ (API)Official wrapper. Same pricing/limits as API
gomapsDormant (Sep 2023)No9Name, URL, address, coords, website, phone, rating, hours, Popular Times. Likely broken

populartimes (m-wrzr) — 900 Stars

pip install --upgrade git+https://github.com/m-wrzr/populartimes

Returns: weekly hourly popularity (0-100 scale), wait times, time spent, current popularity. Requires API key with billing. MIT license. Unstable as Maps updates.

LivePopularTimes (GrocerCheck)

Extension adding live busyness data to populartimes. Functions: get_populartimes_by_address (no API call), get_populartimes_by_PlaceID (API + scrape), get_places_by_search.

BestTime.app (Commercial)

EndpointsForecasts (hourly 0-100%), Live Busyness, Venue Filter (by traffic/day/hour/ratings/type), Venue Search
Coverage150+ countries
UniqueDwell time analysis, surge detection, filter by foot traffic intensity
Free TierTest account with limited credits

Website: besttime.app

LocalAPI

REST API returning 20+ fields per business in 2-3 seconds including Popular Times histograms (peak hours by day of week). Claims to be the only API exposing Popular Times via endpoint. Free tier: 50 searches. local-api.com

Workarounds for the 5-Review API Limit

MethodReviews AvailableCost
Official Places API5 maxEnterprise tier
Google Business Profile API (own locations)AllFree
Google Takeout (own GBP)AllFree
OutscraperAllFirst 500 free
Apify reviews actorsAll$0.25-0.40/1K
google-reviews-scraper-proAllFree (+ proxies)
Tampermonkey userscriptAll (manual)Free
DIY Playwright/Puppeteer scrollAllFree (+ proxies)
SerpAPI reviews endpointAll$50+/mo

No-Code, Extensions & Automation Workflows

Octoparse, browser extensions, userscripts, n8n, Make.com

No-Code, Extensions & Automation Workflows

No-Code Platforms

No-Code / Low-Code Platforms

PlatformPricingMaps FeatureNotes
OctoparseFree + $69/moAuto search splitting to overcome 120-result limit20K results/hour. Best no-code option
ParseHubFree (5 projects) / $189/mo / $599/moJS rendering handles Maps SPA wellSteep price jump from free
WebAutomation.io$99-999/mo or $1/1K PAYGPre-built Google Maps extractor14-day unlimited trial
PhantomBuster$69-439/moMaps phantoms available$50-80/1K leads — 15-50x more expensive. NOT recommended for Maps
No-Code, Extensions & Automation Workflows

Browser Extensions & Userscripts

Browser Extensions & Userscripts

ToolTypePriceNotes
DataMinerChrome ext.Free (500 pages/mo) to $200/moCustom recipes, pagination, scheduled runs. No email extraction
Instant Data ScraperChrome ext.FreeOne-click, ~120 results cap. Unmaintained
Web Scraper (webscraper.io)Chrome ext.Free + cloud $50/moNo pre-built Maps template
GMaps ExtractorChrome ext.Free/Freemiumgmapsextractor.com. No coding needed
G Maps ExtractorChrome ext.Freemium"Probably the cheapest" per Reddit
AI Web ScraperChrome ext.VariousMulti-purpose: Reddit, Maps, LinkedIn, Amazon
Tampermonkey Reviews ExporterUserscriptFreeGreasyfork. Adds "Scrape Reviews" button, auto-expands, exports JSON
webAutomationLoverUserscriptFreeTampermonkey. Accumulates results as you browse, exports .xlsx
Firefox GPX ExporterFirefox addonFreeExport saved Maps lists as GPX with lat/lon

120-Result UI Limit: All browser extensions are capped by Google Maps' sidebar pagination (~120 results per search). Must split searches into smaller areas for more.

No-Code, Extensions & Automation Workflows

Automation Workflows (n8n, Make, Zapier)

Automation Workflows

n8n (Most Flexible)

Make.com

Scrap.io integration (200M businesses). Visual workflow builder, 3,000+ connectors. Automated lead gen tutorials available.

Zapier

Outscraper integration available. Simpler but less flexible than Make.com.

Clay

Data enrichment platform. Pull basic Maps data then enrich with Clearbit/Dropcontact. Filter by review count/recency for active businesses.

Google Sheets & Apps Script

AI-Powered Scrapers & Alternative POI Sources

ScrapeGraphAI, Crawl4AI, Overture Maps, AllThePlaces, OSM

AI-Powered Scrapers & Alternative POI Sources

AI/LLM-Powered Scrapers

AI/LLM-Powered Scrapers

ScrapeGraphAI (MIT / Free)

Describe what you want in plain English, it extracts structured JSON without CSS/XPath selectors. Auto-adapts to layout changes. Supports GPT, Gemini, Groq, Azure, Hugging Face, local Ollama models.

GitHub

Crawl4AI (58K Stars, Apache 2.0)

Open-source LLM-friendly web crawler. Outputs clean Markdown for RAG/agents. Heuristic noise filtering, CSS/XPath/LLM extraction. Local-first (no API costs).

GitHub

Firecrawl

Developer API that outputs clean Markdown from any URL, optimized for LLM ingestion. Used in enrichment pipelines alongside Maps scrapers.

firecrawl.dev

LLM Query Expansion

Not a scraper per se, but a technique: use LLMs to generate category synonyms and related search terms to multiply coverage per geographic area. "dentist" becomes "dental clinic", "oral surgeon", "dental practice", etc. Combined with any scraper for 3-5x more results.

AI-Powered Scrapers & Alternative POI Sources

Alternative POI Data Sources (No Scraping)

Alternative POI Data Sources

Free or commercial POI databases that don't require scraping Google Maps.

Overture Maps Foundation (64.8M POIs Free)

Backed by Meta, Microsoft, Amazon, TomTom, Foursquare. The strongest free alternative to Google Maps data.

Size64.8M places — Meta (~59.2M), Foursquare (~6.7M), Microsoft (~7.4M), AllThePlaces (~1.7M)
FieldsNames, categories (64+), phones, emails, websites, socials, addresses, brand, operating_status, confidence score, coordinates
FormatGeoParquet on S3 and Azure Blob. Python CLI, DuckDB SQL, browser Explorer
LicenseCDLA-Permissive-2.0 / ODbL (commercial use OK)
LimitsMonthly updates (not real-time). No reviews/photos. Thinner outside Western countries

Warning: Reddit reports Places layer stopped updating as of Sept 2024 release. Verify current state.

Overture Places Guide | Downloads

Overture-Based API (Community-Built, 200x Cheaper)

A developer built a Places API using Overture data + Rust/Axum + PostGIS. Free 5K/mo, $10/100K, $30/500K, $80/2M — vs Google's ~$1,700 for 100K.

Other Alternative Sources

SourcePOIsFree TierKey StrengthReviews?
OpenStreetMap (Overpass API)VariesUnlimited, no keyFree, query any tag combo. Overpass TurboNo
Foursquare Places100M+CommercialRichest venue data, behavioral insights, check-insTips only
HERE TechnologiesGlobal, 400+ cats250K tx/moTripAdvisor ratings, EV/fuel data, chain IDVia TripAdvisor
TomTom~100M, 180+ countries50K daily txNavigation-optimized, relevance scoringNo
MapboxGlobal100K req/moPolished SDKsNo
GeoapifyOSM-based, 400+ cats3K credits/dayTransparent pricing, can cache/storeNo
Yelp Fusion APIMillions5K calls/day3 reviews max via API. Open Dataset: 8.6M reviews (academic)3 (API), 8.6M (dataset)
AllThePlaces20M+Unlimited (CC-0)4,100+ Scrapy spiders, weekly updatesNo
MapQuestVariousLimitedSearch API v5: radius/rect/polygon/corridorNo
NominatimOSM geocodingFreeForward/reverse geocodingNo
Photon (Komoot)OSM geocodingFreeTypo-tolerant, multilingualNo

OSM Reality Check (from Reddit): OpenStreetMap is poor for business/POI data. Business coverage is ~75% at best, biased toward bigger/popular locations.

Data Providers & Marketplaces

ProviderDatasetPricingGoogle Maps?
Bright Data200.7M+ records$0.0025/recordYes
Datarade60M+ US (varies)By providerYes
Veridion134M+ businesses~$99/user/moPartial
SafeGraph52M+ POIsCommercialPartial (foot traffic)
DataplorVariousCommercialPartial (LatAm strong)
Xtract.io6M+ locationsCommercialPartial
CoresignalN/AN/ANo (employee data only)
Data.worldN/AN/ANo (data governance)

Export & Data Liberation Tools

Anti-Bot Countermeasures & Legal Landscape

BotGuard/SearchGuard, proxy strategies, Google v. SerpAPI, GDPR

Anti-Bot Countermeasures & Legal Landscape

Google's Anti-Bot Countermeasures (2025-2026)

Anti-Bot Countermeasures

Google Maps difficulty score: 90/100 — one of the toughest platforms to scrape.

BotGuard / SearchGuard Architecture

Built on BotGuard (internally "Web Application Attestation"), deployed across YouTube, reCAPTCHA v3, and Maps. SearchGuard (January 2025) is the Search-specific evolution — "tens of thousands of person hours and millions of dollars."

Detection: Behavioral Analysis (4 Signal Categories)

SignalBot ThresholdHuman Range
Mouse movement (trajectory, velocity, acceleration, micro-tremors)Velocity variance <1050-500
Keyboard rhythm (inter-key intervals, duration, errors)Variance <5ms20-50ms
Scroll behavior (amplitude, direction, timing)Delta variance <5px20-100px
Timing jitter (Welford's algorithm)>200 events/sec10-50

Detection: Browser Fingerprinting (100+ Signals)

Navigator, screen, performance metrics, WebRTC leaks, TLS fingerprinting. Explicit checks for navigator.webdriver, ChromeDriver, Puppeteer, Selenium, PhantomJS.

reCAPTCHA v3 (Invisible)

No visible challenge — assigns 0.0-1.0 score based on session behavior. On Maps, appears inconsistently. Only bypass: never trigger it.

Cryptographic Protection

ARX cipher (similar to NSA's Speck). Magic constants rotate per script update. Scripts served with integrity hashes. Bypasses become obsolete within minutes.

Blocking Behavior

TriggerRisk
Datacenter IPsBlocked immediately — non-viable
Uniform request timingHigh — humans pause, bots don't
Direct navigation to data pagesMedium — humans wander first
Default/missing headersMedium

Stealth detection: Google returns poisoned/incomplete data to detected scrapers rather than blocking outright. Soft bans aren't clean HTTP codes — "some weird JSON response or just incomplete page loads." DOM class names change every few months.

Proxy Effectiveness

TypeEffectivenessCostNotes
DatacenterVery Low$Non-viable for Maps
ResidentialGood$$~30-50 searches/hour/IP before CAPTCHAs
Mobile (4G/5G)Best$$$Most reliable for large-scale
ISPOK (low volume)$$Burns fast. Once flagged, stays flagged for days
HybridCost-optimized$$Datacenter for non-Maps, mobile for Maps. Saves 40-60%

Practical rate limit: max 1 req/min/IP = ~144K results/day per IP.

Anti-Detection Toolkit

Anti-Bot Countermeasures & Legal Landscape

Legal & TOS Landscape

Google Maps TOS

"Customer will not export, extract, or otherwise scrape Google Maps Content for use outside the Services."

This is a contractual prohibition, not criminal statute. Breach of contract, not a crime.

Google v. SerpAPI (Dec 2025 — Ruling Pending)

Filed: December 19, 2025, N.D. California (Case No. 4:25-cv-10826)

Google's DMCA Claims

  1. Access circumvention (17 U.S.C. 1201(a)(1)(A)): SerpAPI circumvented SearchGuard "on billions of separate occasions." $200-$2,500 per violation.
  2. Trafficking in circumvention tools (17 U.S.C. 1201(a)(2)): Marketing services to bypass SearchGuard.

SerpAPI's requests increased "25,000%" over two years — hundreds of millions daily.

SerpAPI's Defense (Motion to Dismiss, Feb 2026)

Hearing: May 19, 2026 before Judge Yvonne Gonzalez Rogers — ruling not yet published.

Industry impact: If Google prevails, rank tracking, competitive intelligence, and SEO analytics could become legally untenable.

CaseYearImpact
Van Buren v. US2021CFAA limited to insiders. ToS violations are not computer crime
hiQ v. LinkedIn2022Public data scraping doesn't violate CFAA (Ninth Circuit, reaffirmed)
X Corp v. Bright Data2023Platforms can't claim copyright on user-generated content
Meta v. Bright Data2024Logged-out users haven't accepted ToS — no contract breach

Key shift: Google abandoned CFAA arguments (neutered for public data) for DMCA anti-circumvention claims — targeting SearchGuard bypass specifically.

US vs. EU

United States

European Union

Risk by Method

MethodLegal RiskTOS ViolationDMCA Exposure
Official Places APINoneNoNo
Data marketplace purchaseLowNo (you didn't scrape)No
Commercial platformsMediumYesIndirect
Open-source scrapersMediumYesLow
SERP API proxiesHighYesActive lawsuit
Reverse-engineered APIsHighestYesCircumvention

Enforcement Reality

Survey of 40-50 agencies scraping Maps at scale: zero cease-and-desist letters. Google relies on technical countermeasures for most scrapers, reserving legal action for large commercial operations (SerpAPI).

Sources