Google Maps Scraper API
places, contacts and reviews
Send a Maps search or place link and get every business back as data: name, category, address, phone, website, opening hours, rating and the star breakdown. A place link adds up to 60 reviews.
www.google.com/maps/search/coffee+shops/@30.2672,-97.7431,13z{"type": "search","query": "coffee shops","resultCount": 20,"places": [{"position": 1,"title": "Café Crème - Downtown","category": "Coffee shop","address": "710 W Cesar Chavez St, Austin, TX 78701","phone": "(512) 730-0377","website": "https://cafecremeaustin.com/locations/downtown","rating": 4.7,"reviewsCount": 342,"openState": "Open · Closes 9 PM"},"… 19 more"]}
places per search page, each with every list field
reviews per place, with the reviewer's rating and text
per page, for a search or a place with its reviews
for a page that can't be delivered
Every link you get from Maps
Copy the link from your browser. Spidra works out what kind of page it is.
Searches
One page of results: 20 places in Google's order, each with address, phone, website, hours and rating.
google.com/maps/search/coffee+shops/@30.26,-97.74,13zPlaces
The full record of one business, with the owner, photos count, rating distribution and review topics.
google.com/maps/place/Katz's+Delicatessen/...Reviews
Every place link includes up to 60 reviews, most relevant first, with owner replies.
google.com/maps/place/data=!4m2!3m1!1s0x89c2...CID and place ID links
Links by customer ID or place ID resolve to the same full place record.
maps.google.com/?cid=3545819340560108778Share links
Short maps.app.goo.gl links from the share button are followed and read.
maps.app.goo.gl/...Hours you can compute with
Opening hours as 24-hour times in the place's own time zone, plus whether it is open right now.
"periods": [{ "open": "07:00", "close": "21:00" }]One call, every field
Point the scrape call at a Google Maps link. With JSON output and no prompt, the data comes back as it is, for 1 credit and no AI cost.
Ask for markdown instead and you get the readable page as text. The structured data still comes back, in its own structuredData field next to the markdown.
What comes back
Real responses from Spidra, trimmed for length. Nothing here is mocked up.
https://www.google.com/maps/search/coffee+shops/@30.2672,-97.7431,13zA Maps search link with a viewport. One page is 20 places, each with every field Maps shows in the list.
{"type": "search","query": "coffee shops","location": {"lat": 30.2672,"lng": -97.7431,"zoom": 13},"resultCount": 20,"places": [{"position": 1,"title": "Café Crème - Downtown","placeId": "ChIJ0QbsjcW1RIYRJxQSKO9kl8A","category": "Coffee shop","address": "710 W Cesar Chavez St, Austin, TX 78701","addressComponents": {"neighborhood": "Seaholm District","street": "710 W Cesar Chavez St","city": "Austin","postalCode": "78701","state": "Texas","countryCode": "US"},"location": {"lat": 30.2661527,"lng": -97.7513939},"phone": "(512) 730-0377","website": "https://cafecremeaustin.com/locations/downtown","rating": 4.7,"reviewsCount": 342,"businessStatus": "OPERATIONAL","openNow": true,"openState": "Open · Closes 9 PM","hours": {"timeZone": "America/Chicago","days": [{"day": "Sunday","date": "2026-10-18","display": "7 AM–9 PM","closed": false,"open24Hours": false,"periods": [{"open": "07:00","close": "21:00"}]}]}},"… 19 more"]}
Hours a program can read
Most Maps scrapers hand you hours as a sentence like "7 AM to 9 PM" and leave you to parse it. Spidra returns each day as 24-hour open and close times, in the place's own time zone, with closed days and 24-hour days marked.
It also works out whether the place is open now, in its local time, so you don't have to know where it is to filter by it.
"timeZone": "America/Chicago","openNow": true,"hours": {"days": [{"day": "Sunday","display": "7 AM–9 PM","closed": false,"open24Hours": false,"periods": [{ "open": "07:00", "close": "21:00" }]}]}
Missing on Google is not the same as failed
When a field is empty, you need to know why. Every place comes with a fieldStatus map that says, for each field, whether Google has it, doesn't have it, or doesn't show it to visitors who aren't signed in.
So a place without a website reads as absent, not as a scraping error, and you can trust an empty column.
"fieldStatus": {"website": "present","hotel": "absent","ownerDescription": "absent","popularTimes": "unavailableAnonymous","priceLevel": "unavailableAnonymous","menuLink": "unavailableAnonymous"}
Local results, from the right place
Google ranks and words results by where the searcher is. Spidra reads Maps from a residential connection in the country you choose with proxyCountry, so a search in Berlin comes back the way a person in Germany sees it.
Coordinates in the link set the area searched. Zoom in to get the 20 places in a smaller area, and use several links to cover a city.
Ask for the columns you want
Describe the answer as a prompt, a JSON schema or both, and it comes back in that shape. The AI reads a compact copy of the data Spidra already read, not the whole page.
{"dentists": [{"name": "Wall Street Dental Spa - Financial District","phone": "(212) 514-5514","website": "https://wallstdentalspanyc.com/","rating": 4.8,"reviews": 1477},{"name": "209 NYC Dental","phone": "(212) 355-2290","website": "https://www.209nycdental.com/","rating": 4.9,"reviews": 1931},{"name": "Soho Smile - Cosmetic Dentist NYC","phone": "(212) 334-7330","website": "https://www.sohosmile.com/","rating": 4.9,"reviews": 211},"… 17 more"]}
This request cost 7 credits on October 18, 2026: 1 for the page plus the AI tokens. For the data as it is, use JSON output with no prompt for 1 credit.
What teams build with it
Maps data feeds sales, research and local marketing.
Lead lists
Build lists of local businesses by category and area with phone, website and rating, ready for your CRM.
See the use caseMarket mapping
Count competitors, see their ratings and review volume, and find areas a category doesn't cover yet.
See the use caseLocal SEO tracking
Check where businesses rank for a search in each area, and track ratings and review counts over time.
How Spidra compares
Google Maps has many scrapers, and some are cheaper per review at volume. Here is how they differ.
| Apify (Compass) | SerpApi | Outscraper | Spidra | |
|---|---|---|---|---|
| 1,000 places | $4.00 down to $1.50, more for details and contacts | $25 down to $1.96 per 1,000 searches of 20 | $3, then $1 per 1,000 | 50 credits (20 per page): $0.19 down to $0.10 |
| Reviews | $0.60 down to $0.30 per 1,000 | Separate reviews engine, per search | Per review, by volume | Up to 60 per place, included in the 1 credit |
| Hours | Text per day | Text per day | Text per day | 24-hour periods, time zone, open now |
| Empty fields | Empty | Missing key | Empty | Marked present, absent or not shown to visitors |
| Output | Fixed fields | Fixed fields | Fixed fields | Fixed fields, or your own schema or prompt |
| Beyond Maps | Thousands of other actors | Search engines | Google data products | Any website, crawl, search, PDFs, MCP |
Choose Apify or Outscraper if
You need thousands of places from one query with built-in paging and contact enrichment, or full review exports beyond the first 60.
Choose Spidra if
You want clean, typed records you can use as they come, local results from the right country, and Maps plus any other website through one API.
Competitor prices are as published on their own pages on October 15, 2026 and may have changed. Spidra prices use 1 credit per page on each plan. Sources: Apify, SerpApi, Outscraper.
What to know before you build
We would rather you hear the limits from us than find them in production.
- One page per request: a search link returns the first 20 places. For more, split the area into smaller views (zoom in) and send one link per view.
- A place link returns up to 60 reviews, most relevant first. Full review exports beyond that aren't available yet.
- Google doesn't show some details to visitors who aren't signed in: popular times, menus, reservation links, price level, most attributes and the full photo gallery. They come back marked unavailableAnonymous, never guessed.
- Reviews include the reviewer's public name and profile link, as Google shows them. Handle personal data according to the privacy laws that apply to you.
What it costs
1 credit per page. Pages that can't be delivered are free. Work out your monthly volume below.
Example: 200 search pages a day is 4,000 places, about 6,000 credits a month. Plain JSON output uses no AI tokens.
| Plan | Price | Google Maps pages a month |
|---|---|---|
| Free | $0 | up to 300 (one time) |
| Starter | $19/mo | up to 5,000 |
| BuilderPopular | $79/mo | up to 25,000 |
| Pro | $249/mo | up to 125,000 |
Related scrapers
Same API key, same credits. See every scraper.
Google Maps Reviews Scraper
A place's reviews with rating, text, date and owner reply.
Zillow Scraper
Listings, Zestimates, price history, buildings and agents.
LinkedIn Scraper
Jobs, companies, public profiles and posts.
Amazon Scraper
Products, prices, best sellers and seller offers on 23 marketplaces.
Questions, answered
Google Maps
The Places API is official and reliable, but it is billed per field group, returns at most 5 reviews per place, and has its own terms on storing data. Spidra reads the public Maps pages, so you get up to 60 reviews, the star breakdown and the review topics in one call for 1 credit.
Send a Google Maps link and see what comes back.
Get 300 free credits, no card, and run your first Maps search from the dashboard or the API.
Spidra is not affiliated with, endorsed by, or sponsored by Google. Google Maps is a trademark of Google LLC. Check Google's terms of service and the laws that apply to you before you collect data, and use the data responsibly.