Google Maps Place Details Scraper avatar

Google Maps Place Details Scraper

Pricing

$2.00 / 1,000 places

Go to Apify Store
Google Maps Place Details Scraper

Google Maps Place Details Scraper

Extract detailed place information from Google Maps: name, address, coordinates, rating, review count, categories, phone, website, description, and timezone. Find places by URL, Place ID, or built-in search. Export as CSV, JSON, or Excel.

Pricing

$2.00 / 1,000 places

Rating

0.0

(0)

Developer

Beat Analytics

Beat Analytics

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Google Maps Place Details Scraper -- Extract Business Data, Coordinates & Contact Info

Scrape detailed place information from Google Maps at scale -- an alternative to the Google Places API with no API key, no billing setup, and no per-request quotas. Extract name, address, GPS coordinates, rating, review count, phone, website, opening hours, price level, timezone, categories, and place attributes for any Google Maps listing. Find places by URL, Place ID, or built-in search, and export your data as JSON, CSV, Excel, XML, or HTML. Use the data for lead generation, competitive analysis, location intelligence, or CRM enrichment.

Why use this Google Maps place details scraper?

  • 📍 GPS coordinates for every place -- every result includes latitude and longitude, ready for geo-mapping, distance calculations, or spatial analysis. No need to geocode addresses separately.
  • 🕐 Timezone data in IANA format -- each place includes its IANA timezone (e.g. America/New_York, Europe/Berlin), so you can localize opening hours, schedule calls across time zones, or enrich CRM records with timezone context.
  • 🔍 Built-in place search -- find places by search query and location (e.g. "dentist" in "Austin, TX") without needing URLs first. All combinations of queries and locations are searched automatically, with search rank metadata included in the output.
  • 🔗 Bulk multi-format input -- scrape details for dozens or hundreds of places in a single run. Provide Google Maps URLs, share links (maps.app.goo.gl/...), Place IDs, or Feature IDs -- mix and match input types freely.
  • No API key, no billing setup -- the Google Places API requires a GCP project, API key, and billing account. This scraper needs none of that. Just add your inputs and click Start.
  • 💰 Predictable flat-rate pricing -- the Google Places API charges $17-35 per 1,000 requests depending on which fields you need (Basic, Contact, or Atmosphere). This scraper returns all fields at one flat rate with no hidden per-field surcharges.
  • 🏷️ Rich place attributes -- extract structured "About" data including accessibility features, amenities, dining options, and service attributes (e.g. "Wheelchair accessible entrance," "Free Wi-Fi," "Outdoor seating").
  • 🕑 Opening hours with machine-readable periods -- get both human-readable day/hours and structured open/close time periods for programmatic analysis.
  • 🌐 Language and country localization -- set the language code (e.g. de, es, ja) and country code to get localized place names, descriptions, and categories.
  • 🛡️ Automatic deduplication -- businesses found through multiple search queries or inputs are included only once in the output, so you never pay for or process duplicate records.
  • 💾 Export as JSON, CSV, Excel, XML, or HTML -- download your Google Maps place data in whichever format your workflow requires. All five formats are available out of the box on the Apify platform.

What data can you extract from Google Maps places?

Google Maps Place Details Scraper extracts a comprehensive set of fields for every place. Here is the complete list of fields in each output item:

Place identity and location:

  • name -- name of the Google Maps place (e.g. "Joe's Pizza Broadway")
  • address -- full address of the place (e.g. "1435 Broadway, New York, NY 10018")
  • featureId -- Google Maps internal feature ID (e.g. 0x89c259ab3c1ef289:0x3b67a41175949f55)
  • placeId -- Google Place ID (e.g. ChIJifIePKtZwokRVZ-UdRGkZzs)
  • lat -- geographic latitude (e.g. 40.754679)
  • lon -- geographic longitude (e.g. -73.987029)
  • timezone -- IANA timezone of the place (e.g. America/New_York)

Ratings and reviews:

  • rating -- overall average rating (e.g. 4.4)
  • reviewCount -- total number of reviews (e.g. 22117)

Classification and pricing:

  • categories -- place categories (e.g. ["Pizza restaurant", "Italian restaurant"])
  • priceLevel -- price level indicator (e.g. $$)

Contact information:

  • phone -- phone number (e.g. +1 646-559-4878)
  • website -- website URL

Description and hours:

  • description -- short editorial description from Google Maps (e.g. "No-frills, counter-serve pizzeria serving classic NYC slices.")
  • openingHours -- weekly opening hours with day names, human-readable hour strings, and machine-readable open/close time periods

Place attributes:

  • about -- structured attribute flags grouped by category (e.g. Accessibility, Amenities, Dining options). Each attribute includes a name and whether it is enabled or disabled for the place.

Search context (when found via search):

  • _search.query -- the search query that returned this place
  • _search.location -- the location that was searched
  • _search.rank -- position in search results for that query and location (1-indexed)

How to scrape Google Maps place details

Getting started with Google Maps place scraping takes less than two minutes. Follow these five steps to extract your first batch of place data:

Step 1: Create a free Apify account

Sign up at apify.com if you do not have an account yet. Every new account includes $5 in free credits -- enough to scrape thousands of Google Maps places at no cost.

Step 2: Open the Google Maps Place Details Scraper

Navigate to the Google Maps Place Details Scraper actor page on the Apify Store and click "Try for free" to open the actor in your Apify Console.

Step 3: Add your places or search queries

You have three ways to specify which places to scrape:

  • Place URLs -- paste Google Maps URLs like https://www.google.com/maps/place/Joe's+Pizza+Broadway/... or share links like https://maps.app.goo.gl/...
  • Place IDs -- enter Google Place IDs (e.g. ChIJifIePKtZwokRVZ-UdRGkZzs) or Feature IDs (e.g. 0x89c259ab3c1ef289:0x3b67a41175949f55)
  • Search -- enter search queries (e.g. "pizza", "hotels") and locations (e.g. "New York, NY"). The scraper searches all combinations of queries and locations and finds matching places automatically.

You can combine all three methods in a single run.

Step 4: Configure optional settings

Optionally, adjust these settings:

  • Set the language for localized place names and descriptions (e.g. de for German, es for Spanish)
  • Set the country to control which Google region is used for results
  • Set max places per search to control how many places are returned per search combination

Step 5: Click Start and download your data

Click the "Start" button to begin scraping. Once the run completes, download your Google Maps place data in any format: JSON, CSV, Excel, XML, or HTML. You can also access the data programmatically via the Apify API, or set up automatic exports to Google Sheets, Dropbox, Amazon S3, and other destinations.

Input parameters

ParameterTypeRequiredDefaultDescription
placeUrlsArray of URLsNo*--Google Maps place URLs or share links to scrape details for. Supports full URLs (google.com/maps/place/...) and share links (maps.app.goo.gl/...).
placeIdsArray of stringsNo*--Google Place IDs (ChIJ...) or Feature IDs (0x...:0x...). Can be used instead of or in addition to Place URLs.
searchQueriesArray of stringsNo*--Search terms to find places (e.g. "pizza", "hotels", "dentist"). Used together with searchLocations -- all combinations are searched.
searchLocationsArray of stringsNo--Locations to search in (e.g. "New York, NY", "London, UK"). Used together with searchQueries -- all combinations are searched.
maxPlacesPerSearchIntegerNo20Maximum number of places to find per search query + location combination. Each page returns up to 20 results.
languageStringNoenLanguage code for place details (e.g. en, de, es). Affects place name, description, and categories.
countryStringNousCountry code (e.g. us, de, gb). Affects which Google region is used for results.

*At least one of placeUrls, placeIds, or searchQueries (with searchLocations) must be provided.

Search example: Setting searchQueries to ["pizza", "sushi"] and searchLocations to ["New York, NY", "Chicago, IL"] runs four searches. With maxPlacesPerSearch at 20, this finds up to 80 places and returns full details for each one.

Output example

Each item in the dataset represents a single place. Results are stored in an Apify dataset and can be exported as JSON, CSV, Excel, XML, or HTML directly from the Apify Console, or accessed programmatically via the Apify API.

{
"name": "Joe's Pizza Broadway",
"address": "1435 Broadway, New York, NY 10018",
"featureId": "0x89c259ab3c1ef289:0x3b67a41175949f55",
"placeId": "ChIJifIePKtZwokRVZ-UdRGkZzs",
"lat": 40.754679,
"lon": -73.987029,
"rating": 4.4,
"reviewCount": 22117,
"categories": ["Pizza restaurant", "Italian restaurant"],
"phone": "+1 646-559-4878",
"website": "https://www.joespizzanyc.com",
"description": "No-frills, counter-serve pizzeria serving classic NYC slices.",
"timezone": "America/New_York",
"priceLevel": "$$",
"openingHours": [
{
"day": "Wednesday",
"hours": ["9 AM–2 AM"],
"periods": [{"open": "09:00", "close": "02:00"}]
},
{
"day": "Thursday",
"hours": ["9 AM–2 AM"],
"periods": [{"open": "09:00", "close": "02:00"}]
}
],
"about": [
{
"name": "Accessibility",
"options": [
{"name": "Wheelchair accessible entrance", "enabled": true},
{"name": "Wheelchair accessible seating", "enabled": true}
]
},
{
"name": "Dining options",
"options": [
{"name": "Lunch", "enabled": true},
{"name": "Dinner", "enabled": true},
{"name": "Dessert", "enabled": true}
]
}
],
"_search": {
"query": "pizza",
"location": "New York, NY",
"rank": 1
}
}

The _search field is only present when the place was found via search. When a place is looked up directly by URL or Place ID, this field is null.

How much does it cost to scrape Google Maps place details?

Google Maps Place Details Scraper uses simple, transparent per-result pricing -- you only pay for the places you get.

$2.00 per 1,000 places -- each place returned counts as one result. If you scrape 200 places, you pay for 200 results. No hidden compute fees, no per-field surcharges, no per-run charges.

Compared to the Google Places API: The official Google Places API charges $17 per 1,000 requests for Basic fields (name, address, rating), $20 for Contact fields (phone, website), and $25-35 for Atmosphere fields (reviews, opening hours). Getting all fields requires multiple API calls per place, quickly adding up. This scraper returns every field in a single flat-rate result.

Free trial: Every new Apify account comes with $5 in free platform credits -- no credit card required. That is enough to scrape 2,500 Google Maps places at no cost, so you can fully evaluate the scraper and data quality before committing.

Enterprise plans: If you need to scrape Google Maps place data at very high volume -- tens of thousands of places on a regular basis -- reach out to sales@beatanalytics.org for custom Enterprise pricing with dedicated support and volume discounts.

Use cases for Google Maps place data

Google Maps place data powers a wide range of business, research, and operational workflows. Here are the most common use cases:

Lead generation and sales prospecting

Search for businesses by category and location to build targeted prospect lists. Extract phone numbers, website URLs, and addresses for outreach. Use ratings, review counts, and categories to qualify leads and prioritize high-value prospects. The built-in search with rank metadata lets you focus on the most prominent businesses in each market.

Competitive analysis and benchmarking

Scrape details for your competitors and compare ratings, review counts, price levels, categories, and attributes side by side. Track how competitor ratings and review volumes change over time by scheduling regular scraping runs. Identify which amenities or services (outdoor seating, delivery, Wi-Fi) competitors offer and you do not.

Location intelligence and site selection

Use GPS coordinates, timezone data, and place density to evaluate potential locations for new stores, offices, or franchises. Map all businesses in a category across a city or region. Analyze the competitive landscape by neighborhood. Combine with the Google Maps Reviews Scraper to add sentiment data to your location analysis.

CRM and data enrichment

Enrich existing customer or prospect records with up-to-date Google Maps data. Add phone numbers, website URLs, opening hours, timezone, coordinates, and categories to your CRM. Use Place IDs or URLs from your database as input and get structured, normalized data back.

Store locator and directory building

Build comprehensive business directories or store locators from Google Maps data. Search for all businesses in specific categories and locations to populate your directory. The structured output (coordinates, hours, phone, categories) maps directly to common directory schemas.

Market research and trend analysis

Map the competitive landscape for an industry across multiple cities. Analyze business density, category distribution, price levels, and average ratings by market. Use the search rank metadata to understand which businesses dominate local search results. Schedule regular runs to track market changes over time.

Academic and urban research

Study patterns in business distribution, ratings, and categories across cities and regions. Use GPS coordinates and timezone data for spatial analysis. Research urban development, gentrification, or economic activity using business density and category mix as proxies.

Geo-mapping and visualization

Every result includes latitude and longitude, ready for direct import into mapping tools like Google Earth, Mapbox, Leaflet, QGIS, or Tableau. Build heat maps of business density, plot competitor locations, or create customer-facing store maps.

Integrations and API access

Google Maps Place Details Scraper integrates with the Apify platform ecosystem, giving you programmatic access to your scraped data and the ability to connect it to thousands of external tools.

Python

Use the Apify Python SDK to run the scraper and retrieve results programmatically:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run_input = {
"searchQueries": ["dentist"],
"searchLocations": ["Austin, TX"],
"maxPlacesPerSearch": 40,
"language": "en",
}
run = client.actor("beatanalytics/google-maps-place-details-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['name']} - {item['rating']}* - {item['address']}")

JavaScript / Node.js

Use the Apify JavaScript SDK to integrate Google Maps place scraping into your Node.js applications:

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("beatanalytics/google-maps-place-details-scraper").call({
placeUrls: [
{ url: "https://maps.app.goo.gl/KZLn9FA3aokoiVaP8" },
],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
console.log(`${item.name} - ${item.rating}* - ${item.phone} - ${item.timezone}`);
});

No-code integrations

Connect Google Maps Place Details Scraper to thousands of apps without writing code:

  • Make (formerly Integromat) -- trigger workflows when new Google Maps data is scraped, or schedule regular runs as part of larger automations
  • Zapier -- connect Google Maps place data to Google Sheets, Slack, email, CRM tools, and 5,000+ other apps
  • Webhooks -- receive HTTP notifications when a scraping run completes, then process the data in your own backend
  • Google Sheets -- export results directly to a Google Sheets spreadsheet for collaborative analysis
  • Amazon S3 / Dropbox -- automatically save scraped data to cloud storage after each run

Scheduled runs

Set up Google Maps Place Details Scraper to run on a schedule (hourly, daily, weekly, or custom cron) to keep your data fresh. This is particularly useful for monitoring competitor listings, tracking new business openings, keeping CRM data current, and refreshing store locator databases.

API endpoints

Every scraper run on Apify exposes RESTful API endpoints for accessing results, checking run status, and managing datasets. See the Apify API documentation for the complete reference.

Frequently asked questions

How to get Google Maps place details without the API?

Google Maps Place Details Scraper is the easiest way to extract place information from Google Maps without the Google Places API. Open the actor on Apify, add your place URLs, Place IDs, or search queries, and click Start. The scraper handles all data extraction automatically and returns structured results in JSON, CSV, or any other supported format. No API key, no GCP project, no billing setup. See How to scrape Google Maps place details for a step-by-step guide.

Web scraping of publicly available data is generally legal in the United States, as affirmed by the 2022 US Ninth Circuit ruling in hiQ Labs v. LinkedIn, which established that scraping publicly accessible data does not violate the Computer Fraud and Abuse Act. Google Maps place information is publicly visible without requiring a login or account.

That said, you should always review Google's Terms of Service and consult with legal counsel if you have concerns about your specific use case. The legality of web scraping can vary by jurisdiction and intended use. Apify provides the scraping infrastructure, but users are responsible for ensuring their use of scraped data complies with applicable laws and terms of service.

How is this different from the Google Places API?

The Google Places API is Google's official developer API for place data. While it provides structured access to place information, it has several practical limitations that this scraper addresses:

  • Authentication and billing: The Places API requires a GCP project, API key, and billing account with a credit card on file. This scraper requires none of that.
  • Per-field pricing tiers: The Places API charges different rates for Basic ($17/1K), Contact ($20/1K), and Atmosphere ($25-35/1K) fields. Getting all fields requires multiple API calls per place. This scraper returns every field at one flat rate.
  • Rate limits and quotas: The Places API enforces per-second rate limits and daily quotas. This scraper has no such limits.
  • Search limitations: The Places API Nearby Search and Text Search have their own pricing and pagination complexity. This scraper includes built-in search with simple pagination at no extra cost.

How many places can I scrape?

There is no hard limit on the number of places you can scrape in a single run. You can add as many Google Maps URLs, Place IDs, or Feature IDs as you need, and the scraper processes them concurrently. When using search, set maxPlacesPerSearch to control how many places are found per search combination. Typical runs scraping hundreds of places complete in minutes.

Can I search for places and get their details in one run?

Yes. Enter search queries (e.g. "coffee shop", "gym") and locations (e.g. "San Francisco, CA", "London, UK") in the input. The scraper searches all combinations of queries and locations, finds matching places, and fetches full details for each one -- all in a single run. Each result includes _search metadata with the query, location, and rank position, so you know exactly how each place was found. Use maxPlacesPerSearch to control how many places are returned per search combination.

What is the difference between Place IDs and Feature IDs?

Google Maps uses two types of identifiers for places:

  • Place ID -- a stable identifier that starts with ChIJ (e.g. ChIJifIePKtZwokRVZ-UdRGkZzs). This is the identifier used in the Google Places API and is the most commonly referenced ID format.
  • Feature ID -- an internal Google Maps identifier in the format 0x...:0x... (e.g. 0x89c259ab3c1ef289:0x3b67a41175949f55). This can be found in Google Maps URLs.

The scraper accepts both formats. If you provide a Place ID, a Google Maps URL, or a share link, it is automatically resolved to the correct place.

What export formats are supported?

The scraper outputs data to an Apify dataset. From the Apify Console, you can export the results as JSON, CSV, Excel (XLSX), XML, or HTML with a single click. The data is also accessible via the Apify API for programmatic access in any format. All fields flatten cleanly to tabular formats like CSV and Excel.

How often is the data updated?

The scraper fetches live data from Google Maps every time it runs. There is no caching or stale data -- each run makes fresh requests and returns the most current place information available at that moment. To keep your data fresh, schedule the scraper to run on a recurring basis (hourly, daily, weekly) using Apify's built-in scheduling feature.

Can I get place details in different languages?

Yes. Set the language parameter to any language code (e.g. de for German, es for Spanish, ja for Japanese). This affects the place name, description, and categories returned by the scraper. You can also set the country parameter to control which Google region is used for results.

What is the difference between the Place Details Scraper and the Reviews Scraper?

These are two complementary Apify actors:

  • Google Maps Place Details Scraper (this actor) extracts place information: name, address, coordinates, rating, review count, phone, website, opening hours, categories, price level, timezone, and attributes. It also supports search, so you can discover places by query and location.
  • Google Maps Reviews Scraper extracts individual reviews for specific places: full review text, exact ISO 8601 timestamps, star ratings, reviewer info, photos, and business owner responses. It supports date-range filtering with efficient newest-first pagination.

Use both together for a complete picture: scrape place details with this actor to identify places of interest, then pass those place URLs to the Reviews Scraper to extract all their reviews for sentiment analysis or reputation monitoring.

How much does it cost to scrape Google Maps places?

Google Maps Place Details Scraper costs $2.00 per 1,000 places scraped. Every new Apify account includes $5 in free credits -- enough to scrape 2,500 places at no cost. Contact sales@beatanalytics.org for Enterprise pricing on large-scale operations. See How much does it cost to scrape Google Maps place details? for more details.