Google Maps Extractor ✅ $1.5/1k places
Pricing
from $1.50 / 1,000 scraped places
Google Maps Extractor ✅ $1.5/1k places
From $1.50 / 1,000 saved places. Fast Google Maps Extractor for Google Places data, local business listings, addresses, phones, websites, ratings, review counts, opening hours, coordinates, Place IDs, CIDs, and public website contacts from keywords, URLs, Place IDs, or map areas.
Pricing
from $1.50 / 1,000 scraped places
Rating
0.0
(0)
Developer
Hundevmode Labs
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Google Maps Extractor: Scrape Google Places, Business Details and Contacts
Google Maps Extractor collects structured Google Maps place data from search terms, locations, Google Maps URLs, Google Place IDs, and selected map areas. Use it to scrape Google Places data, local business listings, addresses, websites, phone numbers, ratings, review counts, opening hours, popular times, coordinates, Place IDs, CIDs, and public website contacts.
It is built for fast Google Maps data extraction, local business lead lists, local SEO research, competitor mapping, store locator datasets, and CRM enrichment from existing Google Maps URLs or Place IDs.

AI agent skill
Use the dedicated Google Maps Extractor Apify agent skill when you want AI agents to build Google Maps extraction inputs, run this actor through Apify, control spend with maxTotalChargeUsd, and return structured place, business detail, and contact rows for CRM, Sheets, n8n, BI, or enrichment workflows.
Install with skills.sh-compatible agents:
npx skills add hundevmode/apify-google-maps-extractor-agent-skill \--skill google-maps-extractor-apify
ClawHub skill slug: google-maps-extractor-apify.
At a glance
| Need | Use this actor for |
|---|---|
| Google Maps place extraction | Names, categories, ratings, addresses, phones, websites, coordinates, Place IDs, CIDs |
| Local leads | Business websites, phone numbers, public emails, and social profile links |
| Local SEO | Competitor lists by category, city, rating, review count, website availability, and opening status |
| Store locator data | Addresses, coordinates, Google Maps URLs, plus codes, and opening hours |
| CRM enrichment | Enrich existing Google Maps URLs or Place IDs with place details and contacts |
| Google Places API alternatives | Export Google Maps business data to JSON, CSV, Excel, or API workflows |
Pricing
The actor uses the same place, filter, details, and contacts pricing as our main Google Maps Scraper.
| Event | Free | Paid plans |
|---|---|---|
| Scraped place | $3.00 / 1,000 saved places | $1.50 / 1,000 saved places |
| Add-on: filter applied | $0.80 / 1,000 saved places | $0.35 / 1,000 saved places |
| Add-on: additional place details scraped | $1.50 / 1,000 enriched places | $0.75 / 1,000 enriched places |
| Add-on: company contacts enrichment | $1.50 / 1,000 enriched places | $0.45 / 1,000 enriched places |
| Actor start | $0.00005 per start event | $0.00001 per start event |
Set a maximum run cost before starting a run. The actor respects the Apify spending limit and exits gracefully when no paid results can be saved.
Quick start
Search by keyword and location:
{"searchStringsArray": ["bike repair shop"],"locationQuery": "Portland, Oregon, USA","maxCrawledPlacesPerSearch": 100,"language": "en"}
Filter by categories, rating, and website availability:
{"searchStringsArray": ["restaurant"],"locationQuery": "Austin, Texas, USA","maxCrawledPlacesPerSearch": 50,"categoryFilterWords": ["Italian restaurant", "pizza"],"placeMinimumStars": "four","website": "withWebsite","language": "en"}
Scrape from a Google Maps URL:
{"startUrls": [{"url": "https://www.google.com/maps/search/restaurants+near+New+York,+NY"}],"maxCrawledPlacesPerSearch": 100,"language": "en"}
Enrich exact Place IDs with details and website contacts:
{"placeIds": ["ChIJN1t_tDeuEmsRUsoyG83frY4"],"maxCrawledPlacesPerSearch": 1,"scrapePlaceDetailPage": true,"scrapeContacts": true}
Input options
Core search
| Field | What it does |
|---|---|
searchStringsArray | One or more Google Maps search terms, such as restaurant, dentist, hotel, or bike repair shop. |
locationQuery | Free-text location, such as Portland, Oregon, USA or Berlin, Germany. |
maxCrawledPlacesPerSearch | Target number of places per search term or Google Maps URL. |
language | Google Maps language code used for localized result text. |
Google Maps URLs and Place IDs
| Field | What it accepts |
|---|---|
startUrls | Google Maps search URLs, direct place URLs, cid URLs, and Google Maps app/share URLs. |
placeIds | Google Place IDs, values prefixed with place_id:, and URLs containing query_place_id. |
Result filters
| Field | What it does |
|---|---|
categoryFilterWords | Free-text category keywords matched against categoryName and categories. |
placeCategories | Predefined Google Business Profile categories from the built-in category list. |
searchMatching | Keep all places, only names that include the search term, or exact name matches. |
placeMinimumStars | Minimum Google rating. |
website | Keep all places, only places with websites, or only places without websites. |
skipClosedPlaces | Remove places Google marks as temporarily or permanently closed. |
Add-on: Place details
Enable scrapePlaceDetailPage to collect richer details when Google exposes them:
- opening hours
- additional opening hour groups
- popular times
- menu and services links
- table reservation URLs
- order-online URLs
- related web links
- inside places
- plus code
- review count and rating distribution
- hotel and fuel fields when available
Related fields:
scrapePlaceDetailPagescrapeTableReservationProviderscrapeOrderOnlineincludeWebResultsscrapeDirectories
Add-on: Company contacts enrichment
Enable scrapeContacts to visit public business websites after places are collected and extract available:
- emails
- additional phone numbers
- Facebook URLs
- Instagram URLs
- LinkedIn URLs
- X/Twitter URLs
- YouTube URLs
- TikTok URLs
Use website: "withWebsite" when running large contact-enrichment jobs to avoid spending time on places without websites.
Search area
Use these fields when you need structured geographic control:
countryCodecitystatecountypostalCodecustomGeolocationstrictLocationBounds
Free-text locationQuery has priority when provided.
All visible places
Use allPlacesNoSearchAction when you want visible-map coverage for a concrete local area instead of a category search:
{"locationQuery": "SoHo, New York, USA","allPlacesNoSearchAction": "all_visible","allPlacesZoom": 16,"maxCrawledPlacesPerSearch": 500}
This mode requires a concrete area. Country-only and very broad locations should be split into smaller runs.
Output
Each dataset item is one Google Maps place.
| Group | Example fields |
|---|---|
| Basic place data | title, subTitle, description, categoryName, categories, price, rank, isAdvertisement |
| Address and location | address, street, neighborhood, city, state, postalCode, countryCode, location, plusCode, locatedIn, floor |
| Contact data | website, phone, phoneUnformatted, emails, additionalPhones |
| Social links | facebooks, instagrams, linkedIns, twitters, youtubes, tiktoks |
| Status and ownership | permanentlyClosed, temporarilyClosed, claimThisBusiness |
| Ratings | totalScore, reviewsCount, reviewsDistribution, reviewsTags |
| Place details | openingHours, additionalOpeningHours, popularTimesLiveText, popularTimesLivePercent, popularTimesHistogram, menu, servicesLink, reserveTableUrl, googleFoodUrl, peopleAlsoSearch, placesTags |
| Hotels and fuel | hotelStars, hotelDescription, checkInDate, checkOutDate, hotelAds, gasPrices |
| Google identifiers | placeId, cid, fid, kgmid, url, searchPageUrl, searchPageLoadedUrl, searchString, language |
| Add-on data | additionalInfo, including nested data such as companyContacts, webResults, and insidePlaces when enabled |
Example output item:
{"title": "Example Bike Repair","categoryName": "Bicycle repair shop","address": "123 Main St, Portland, OR 97205","city": "Portland","countryCode": "US","website": "https://example.com","phone": "+1 503-555-0100","totalScore": 4.8,"reviewsCount": 142,"placeId": "ChIJ...","cid": "1234567890","url": "https://www.google.com/maps/place/...","location": {"lat": 45.5152,"lng": -122.6784}}
You can export the dataset from Apify as JSON, CSV, Excel, XML, HTML table, or access it through the Apify Dataset API.
API usage
curl -X POST "https://api.apify.com/v2/acts/x_guru~google-maps-extractor/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchStringsArray": ["plumber"],"locationQuery": "Phoenix, Arizona, USA","maxCrawledPlacesPerSearch": 100,"language": "en","scrapeContacts": true}'
Best practices
- Use one clear business category per search term.
- Use a concrete city, neighborhood, postal code, or custom area.
- Start with a small limit, check quality, then scale.
- Enable only the add-ons you need.
- Use
maxTotalChargeUsdin Apify run options for budget control. - Use the website filter before website contact enrichment on large jobs.
- Use
categoryFilterWordsfor fast category matching andplaceCategorieswhen you want a predefined Google Business Profile category. - Use direct
startUrlsorplaceIdswhen you already know the exact businesses you want to enrich.
FAQ
Is this different from the main Google Maps Scraper?
Yes. This actor is focused on fast place extraction, business details, and website contacts with a simpler input.
Can it extract emails?
Yes, when scrapeContacts is enabled and the business has a public website with reachable contact information.
Can it scrape exact businesses?
Yes. Use direct Google Maps place URLs in startUrls or Google Place IDs in placeIds.
Related keywords
Google Maps extractor, Google Maps data extractor, Google Maps scraper, Google Places scraper, Google Places data, Google Maps business data, local business extractor, Google Maps leads, business contacts extractor, Google Maps emails, local SEO data, competitor research, store locator data, Apify Google Maps actor, scrape Google Maps places.