Google Maps Places Scraper: Phones, Hours, Owners avatar

Google Maps Places Scraper: Phones, Hours, Owners

Pricing

from $0.28 / 1,000 places

Go to Apify Store
Google Maps Places Scraper: Phones, Hours, Owners

Google Maps Places Scraper: Phones, Hours, Owners

Every place a Google Maps search lists, read to the end, with phone, website, hours and owner. $0.40 per 1,000 places. Attributes and coordinates. No add-on fees.

Pricing

from $0.28 / 1,000 places

Rating

0.0

(0)

Developer

Luzi

Luzi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get every place a Google Maps search lists, read to the end of the list (about 120 to 220 places a search), each with every detail Google shows in its results: phone, website, rating, review count, opening hours, service hours, accessibility and other attributes, booking and ordering links, the owner, the photo, and exact coordinates. One row per place, in the language you choose. No add-on fees and no Google account.

Tested daily. Latest check: 100 of 100 dentists asked for in Austin, Texas; 669 places from four searches in Austin and Hanoi, each read to the end of Google's list, in 42 seconds; 60 cafés in Hanoi with Vietnamese names, categories and hours.

What does this Actor do?

You give it search terms and a location, or links to Google Maps searches. For each search it saves one row per place Google Maps lists, until it reaches your limit or the list ends.

Each place comes with:

  • its name (and its name in the local language, when Google shows one), its categories and a description when Google has one
  • its full address, and the address split into street, neighborhood, city, postal code, state and country
  • latitude and longitude, plus the entrance's position when Google marks one
  • phone number in three forms (as shown, national, and digits only)
  • website, and on a few places other links Google shows (social pages)
  • rating, number of reviews and a link to the reviews
  • the cover photo and the number of photos
  • the opening hours for each day of the coming week, today's open/closed line, and service hours such as happy hours or delivery when the place lists them
  • attributes such as wheelchair access, and labels such as LGBTQ+ friendly or women-owned, when the place has them
  • "Reserve a table" and "Order online" links with their providers, when the place offers them
  • the owner's name, Google id and photo, and whether the listing is claimed
  • Google's ids for the place: place id, CID, data id and Knowledge Graph id, and a Google Maps link
  • the search it was found in, and its rank there

Why use it?

  • Build lead lists. Phone, website and owner for every business in a category and city.
  • Every field, one price. Everything Google shows for a place in its results comes in the same row, for the same price per place.
  • Any language, any country. Choose the language Google answers in; categories, hours and attributes come in it.
  • Use the data anywhere. Download as JSON, CSV or Excel, or send it to your own tools through Apify's API and integrations.

How to use it

  1. Type one or more Search terms and a Location, or paste Search links, or both.
  2. Optionally, set the Language and Max places per search.
  3. Click Start. When the run ends, open the Output tab to view the places or download them.

Run it with no input to see a sample: up to 100 dentists in Austin, Texas, charged as usual.

A Google Maps search, such as https://www.google.com/maps/search/dentist+in+austin. A search link that carries a map position, such as https://www.google.com/maps/search/restaurants/@48.8566,2.3522,14z, searches around that position. A single place's page, a list or a route is refused before anything is read, naming the link.

Input

FieldWhat it doesDefault
Search terms (searchTerms)What to search for, one search each—
Location (location)A city, district or region, added to every term as "term in place"—
Search links (startUrls)Google Maps search links—
Language (language)The language Google answers in, as a code (en, de, vi)en
Max places per search (maxPlacesPerSearch)Stop each term or link after this many places, 1 to 500100

Give at least one search term or one link. Example input:

{
"searchTerms": ["dentist", "orthodontist"],
"location": "Austin, Texas",
"language": "en",
"maxPlacesPerSearch": 200
}

Output

One row per place. An example, with made-up values:

{
"place_id": "ChIJ0000000000000000000000",
"name": "Example Family Dental",
"name_local": null,
"name_local_language": null,
"category": "Dentist",
"categories": ["Dentist", "Cosmetic dentist"],
"place_type": "dentist",
"description": "Family dental practice offering cleanings, fillings and crowns.",
"description_short": null,
"address": "100 Example St, Austin, TX 78701",
"address_lines": ["100 Example St", "Austin, TX 78701"],
"neighborhood": "Downtown",
"street": "100 Example St",
"city": "Austin",
"postal_code": "78701",
"state": "Texas",
"country_code": "US",
"locality": "Austin, TX",
"regions": ["Austin", "Texas", "United States"],
"latitude": 30.2672,
"longitude": -97.7431,
"entrance_latitude": 30.2671,
"entrance_longitude": -97.7432,
"timezone": "America/Chicago",
"phone": "(512) 555-0100",
"phone_national": "(512) 555-0100",
"phone_unformatted": "+15125550100",
"website": "https://example-dental.com/",
"website_domain": "example-dental.com",
"links": [{ "url": "https://example-dental.com/", "domain": "example-dental.com" }],
"rating": 4.8,
"reviews_count": 312,
"reviews_url": "https://search.google.com/local/reviews?placeid=ChIJ0000000000000000000000",
"image_url": "https://lh3.googleusercontent.com/…",
"photos_count": 45,
"opening_hours": [
{ "day": "Monday", "date": "2026-10-19", "hours": ["8 AM–5 PM"] },
{ "day": "Sunday", "date": "2026-10-25", "hours": ["Closed"] }
],
"open_status": "Open · Closes 5 PM",
"permanently_closed": false,
"temporarily_closed": false,
"service_hours": [],
"attributes": [
{
"group": "Accessibility",
"name": "Wheelchair accessible entrance",
"value": true,
"text": "Has wheelchair accessible entrance"
}
],
"highlights": ["Identifies as women-owned"],
"actions": [
{
"label": "Book online",
"url": "https://www.google.com/maps/reserve/…",
"providers": [
{
"name": "Example Booking",
"domain": "booking.example",
"url": "https://booking.example/…"
}
]
}
],
"owner_name": "Example Family Dental",
"owner_id": "100000000000000000000",
"owner_photo_url": "https://lh3.googleusercontent.com/…",
"is_claimed": true,
"cid": "1000000000000000000",
"data_id": "0x0000000000000000:0x0de0b6b3a7640000",
"kgmid": "/g/11example",
"google_maps_url": "https://www.google.com/maps?cid=1000000000000000000",
"search_query": "dentist in Austin, Texas",
"search_rank": 1,
"search_url": "https://www.google.com/maps/search/dentist%20in%20Austin%2C%20Texas?hl=en"
}
FieldWhat it holds
place_idGoogle's place id (ChIJ…)
nameThe place's name
name_local, name_local_languageIts name in the local language, and that language, when Google shows one
category, categoriesIts main category, and all of them
place_typeGoogle's type for the place in lower case (restaurant, dentist)
description, description_shortGoogle's description of the place, long and short, when it has one
address, address_linesThe full address, and the same split into the lines Google shows
neighborhood, street, cityParts of the address
postal_code, state, country_codeParts of the address. state holds the state, or the district and city where there are no states
locality, regionsThe area line Google shows ("Austin, TX"), and the wider areas the place lies in
latitude, longitudeWhere the place is
entrance_latitude, entrance_longitudeWhere its entrance is, when Google marks one
timezoneThe place's time zone
phone, phone_national, phone_unformattedIts phone number as shown, in national form, and as digits with the country code
website, website_domain, linksIts website; links holds other links Google shows, rarely filled
rating, reviews_count, reviews_urlIts star rating, the number of reviews, and where to read them
image_url, photos_countIts cover photo, and how many photos it has
opening_hoursEach day of the coming week, with its date and hours
open_statusThe open/closed line Google showed when the place was read ("Open · Closes 10 PM")
permanently_closed, temporarily_closedtrue when Google marks the place closed. Read in English runs only; empty in other languages
service_hoursOther hours the place lists (happy hours, delivery, kitchen), by day
attributesFacts Google lists, by group, each true or false ("Wheelchair accessible entrance")
highlightsLabels the business chose ("LGBTQ+ friendly", "Identifies as women-owned")
actions"Reserve a table", "Order online" and similar links, with the sites that take the order
owner_name, owner_id, owner_photo_urlThe listing's owner as Google shows them, their Google id and photo
is_claimedfalse when Google offers to let the business claim the listing
cid, data_id, kgmidGoogle's other ids for the place
google_maps_urlThe place on Google Maps
search_query, search_rank, search_urlThe search the place was found in, its position there, and the search on Google Maps

Not included: reviews' text, the full photo gallery, the price level, popular times, and the questions and answers.

The rows hold what businesses publish on Google Maps, and the owner fields can name a person. Where the data includes personal data, your use of it must follow the privacy laws that apply to you.

How much does it cost?

No surcharges and no paid options; an item that fails is not charged.

You pay for what you get:

  • $0.40 per 1,000 places ($0.0004 a place). Each place is charged once per run, even when two of your searches list it.
  • No start fee, and nothing per search.

So a search that lists 200 places costs $0.08. If you set a maximum cost for a run, the Actor stops when it reaches it and keeps every place saved so far.

How long does a run take?

About 100 places in 14 to 80 seconds; 669 places from four whole searches in 42 seconds. Searches are read at the same time.

Good to know

  • About 120 to 220 places a search. That is as deep as Google Maps lists one search, whatever the area holds. For more, split it: several districts or neighborhoods instead of one city, or several related terms.
  • Google decides what matches. The Actor returns what Google lists for the search, in Google's order.
  • One place, one row. A place found again in the same run, under the same or another search, is not saved again.
  • Without a location, Google picks the area itself, and results can come from anywhere in a country. Put the place in the term or the Location field.
  • A search that names one place (an exact business name) can return nothing: Google opens that place instead of a list.

More Actors from us

Use it from an AI agent or the API

One call starts a run and returns its items (Apify waits up to 300 seconds; for a longer run, start it with POST /v2/acts/…/runs and read its dataset):

POST https://api.apify.com/v2/acts/luzivanlt~google-maps-places-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>

With the sample input as its JSON body:

{
"searchTerms": ["dentist"],
"location": "Austin, Texas",
"language": "en",
"maxPlacesPerSearch": 100
}

Its inputs, in the order of the input form:

InputWhat it takesDefault
searchTerms (Search terms)What to search for on Google Maps, one search per term, e.g. "dentist" or "coffee shop".—
location (Location)Where to search, as you would type it on Google Maps: a city, a district or a region, e.g. "Austin, Texas" or "Hanoi, Vietnam".—
startUrls (Search links)Links to Google Maps searches (google.com/maps/search/…), e.g. https://www.google.com/maps/search/dentist+in+austin.—
language (Language)The language Google Maps answers in, as a language code, e.g. "en", "de", "vi" or "pt-BR"."en"
maxPlacesPerSearch (Max places per search)Stop each search term or link after this many places, from 1 to 500; default 100.100

Apify's MCP server, https://mcp.apify.com, lists it as luzivanlt/google-maps-places-scraper. To give an AI agent this Actor as a tool, add the server to the agent's MCP config:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=luzivanlt/google-maps-places-scraper"
}
}
}

The client signs in with OAuth, or add "headers": { "Authorization": "Bearer <APIFY_TOKEN>" }.

Charged per place delivered; the sample input above costs at most $0.04.