Geonode logo

Unlimited Google Maps scraper for AI agents.

Place cards, business listings, reviews, photos, hours, popular times and local pack results. Unlimited requests for one flat bill from $50/mo, no credits, and a blocked request is free.

Start 48-hour free trial

No card. Unlimited pages. 5 threads. Failed requests $0

Unlimited web scraper
01

Images

02

Title

  • Title
  • Condition
03

Price & bidding

  • Price
  • Bids
  • Time left
  • Watchers
04

Seller

  • Seller rating
  • Sold listings
05

Specifics & shipping

  • Item specifics
  • Shipping
  • Item location

JavaScript rendered, parsed to JSON or Markdown, and a fetch that fails after three retries is never billed

Call it on Google Maps

curl -X POST "https://scraper.geonode.io/v1/extract" \
  -H "X-Api-Key: $GEONODE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://www.google.com/maps/place/Katz's+Delicatessen/@40.7223,-73.9874,17z",
  "formats": [
    "json",
    "markdown"
  ],
  "render_js": true,
  "proxy": {
    "country": "US"
  }
}'

You came for an Google Maps scraper. The key opens everything.

100% first-pass success

you’re here

Place header: Business name, Primary category, Star rating, Review count, Price level, Claimed / owner badge

Details panel: Street address, Plus code, Phone, Website, Opening hours by weekday, Service options (dine-in, delivery, pickup)

Popular times: Hourly busyness per weekday, Live busyness indicator, Typical visit duration, Wait time estimate, Peak hour

Photos: Owner photos, Customer photos, Menu photos, Street View thumbnail, Photo count, Latest photo date

Reviews: Reviewer name, Star rating, Review text, Visit date, Owner response, Local Guide level

Local pack / results list: Rank position, Name, Rating and count, Distance, Sponsored label, Open now status

One subscription, from $50 a month flat. Everything after the first line adds $0

The hard part is getting in. That's our part.

  • $50/moflat, priced by concurrency, not per request

  • 0credits, meters or per-page charges

  • $0for any Google Maps request that still fails after 3 retries

  • 48 hfree trial on your own Google Maps URLs

  • Cloudflare98%

  • Akamai97%

  • Imperva Incapsula97%

  • DataDome96%

  • PerimeterX / HUMAN95%

  • reCAPTCHA v395%

  • Kasada94%

  • hCaptcha93%

First-pass success by anti-bot vendor, measured by us over 30 days, so of course it flatters us. The 48-hour trial exists so you can count against your own URLs. Full benchmark

What unlimited changes for Google Maps data

  • Sold-comps pricing

    Completed listings are the real price of anything. Pull them at scale and price with evidence.

  • Arbitrage sourcing

    Sweep categories for mispriced inventory continuously instead of when the credit budget allows

  • Demand research

    Bids, watchers and sell-through, across a whole category, on one flat bill

  • Collection tracking

    Every listing of the thing you care about, the moment it appears

Cheap is supposed to be the trade-off

  • Michael T.

    Switched from Bright Data. Same quality, fraction of the cost. Their wholesale model actually makes sense.

  • Kristina Halvorson

    Finally a proxy provider that actually feels built for developers

  • Edgar Weissnat

    We run multiple large-scale data collection pipelines across several regions, and proxy reliability has always been one of the biggest bottlenecks. After switching to Geonode we noticed two immediate improvements: connection stability and predictable pricing. Previously we had to constantly optimize traffic to avoid massive proxy bills. With Geonode’s wholesale pricing model we can focus on building products instead of worrying about proxy usage. Integration with our Python stack and Playwright automation was straightforward and took less than a day.

  • Gladys Paucek

    Best proxy infrastructure I've used. The MCP integration with our AI agents was seamless.

  • Gladys Paucek

    Finally something that doesn’t feel like enterprise sales software.

Pick your thread count. That's the only decision.

Nothing is metered. Plans price threads (how many requests run at once), and pages stay unlimited on every one. An Google Maps page that needs an anti-bot bypass costs exactly what a plain page costs

Roughly what each plan clears in a month, by endpoint

Starter

2 threads

$50 /mo

~470K
~280K
~1.1M
~610K
~120K
~400K

Growth

5 threads

$100 /mo

Popular
~1.2M
~700K
~2.8M
~1.5M
~300K
~1M

Scale

25 threads

$400 /mo

~5.9M
~3.5M
~13.8M
~7.6M
~1.5M
~5M

Pro

100 threads

$1,250 /mo

~23.5M
~14M
~55M
~30M
~5.9M
~20M

Max

250 threads

$2,500 /mo

~59M
~35M
~137M
~76M
~15M
~50M

The 48-hour trial runs at five threads, no card. Custom terms past 250 threads.

Yeah, but...

We do not yet publish a benchmark number for www.google.com/maps, so there is no success rate on this page until our Google Maps scraper has enough 30-day data to show one. We do publish a number for Google web search, and Maps shares that infrastructure, but we would rather not imply a figure we have not measured for this surface. What is unconditional is billing: a request that fails after three retries is never billed, on any plan, so a /sorry/ redirect that the Google Maps scraper could not clear or a consent page that cannot be dismissed costs you nothing.

Place cards for any business or point of interest, including the full details panel, hours, attributes, popular times and photo gallery; the reviews tab with sorting by newest, highest or lowest; search results for a query at given coordinates, returned as a ranked list with the sponsored flag; and the local pack that appears on a regular Google search for a local query. Pass a /maps/place/ URL, a maps?cid= link, a goo.gl/maps short link or a query plus lat/lng and the Google Maps scraper resolves it to the same place record. Street View imagery, Timeline data and anything inside a signed-in account are not something the Google Maps scraper reads.

Google Maps ranks results by proximity to the viewport center and by the requesting IP's inferred location, and personalizes further when a session carries history. A Google Maps scraper run from a datacenter in Virginia sees Virginia's local pack for 'pizza near me' no matter which coordinates sit in the URL. Our Google Maps scraper routes each request through a residential IP in the country or city you specify and pins the viewport to the coordinates you pass, so the ranked list matches what someone standing on that corner would see.

The Places API returns at most five reviews per place, has no popular times, no local pack positions and no sponsored flag, and its terms prohibit storing most of what it returns for more than thirty days. A Google Maps scraper reads the same public listing a browser does, including the full review history, busyness curves and the exact rank a listing holds, and the data is yours to keep. Teams typically use the Places API for geocoding and a Google Maps scraper for everything the API withholds. Public business information on Maps is published by the businesses themselves for discovery, and we do not collect reviewer account data beyond the display name and Local Guide badge shown on the public card.

No request credits and no per-page meter. Plans are priced by concurrency, which is the number of requests in flight at once, from $50 a month. Run as many requests through that concurrency as you can, around the clock, for the same bill. A request that fails after three retries is not counted against anything.

Yes. Pass a country code and the request routes through a residential IP there, so marketplaces return local prices and currency, search engines return local results, and geo-restricted pages open. City and ASN targeting are available on the residential pool where a site is sensitive to it.

Typed JSON with the field table on this page, clean Markdown for feeding an LLM context window, or raw rendered HTML if you run your own parser. For pages without a dedicated parser you can pass a JSON schema and get AI-extracted fields back in that shape.

48 hours. Your worst Google Maps URLs.

Five threads, no card, and the clock starts at your first API call. If it doesn’t earn the switch, don’t switch.