Google Maps Business Listing avatar

Google Maps Business Listing

Pricing

Pay per event

Go to Apify Store
Google Maps Business Listing

Google Maps Business Listing

Extract any Google Maps listing worldwide — phone, email, hours, popular times, rating summary, photo URLs, and 40 structured fields per business. $3.80 per 1,000.

Pricing

Pay per event

Rating

5.0

(2)

Developer

TrueFetch

TrueFetch

Maintained by Community

Actor stats

7

Bookmarked

276

Total users

2

Monthly active users

11 days ago

Last modified

Share

Google Maps Business Listing turns a keyword and a resolved geographic area into structured local-business records. It reports what the collected listing and linked pages expose; contact strings, reviews, photos, schedules, and reputation fields can be absent and are not independently certified.

The Actor is designed for small verification runs as well as bounded research batches. It uses one 36-key record shape across categories and supports 46 Google Maps interface languages, so nullable values stay explicit instead of being replaced with invented facts.

  • Search by business name, category, or phrase plus a city, region, or country
  • Receive one Dataset row for each unique place that is successfully processed
  • Request up to a chosen number of review records and photo URLs per business, or use zero to skip either collection
  • Pay only for the Store, Review, Photo, Actor Start, and Actor Usage events that the platform records

Try a one-result run. Inspect the Dataset before scaling: a successful run can contain fewer businesses than requested, and optional arrays can remain empty.

What does Google Maps Business Listing do?

The Actor geocodes your location, applies the selected language and country hints, searches Google Maps for the supplied keyword, deduplicates candidate places, and hydrates each usable result. Processing stops at the configured business ceiling. The ceiling controls maximum output; it is not a guarantee that the source will expose that many distinct profiles.

Every completed row contains the same top-level keys for provenance, business identity, address, coordinates, listing contacts, hours, place attributes, reputation signals, and optional media or reviews. Values are deliberately nullable. A coffee shop might have a rating, photo, phone, website, accessibility attributes, and one hours row while still returning no review records or total review count.

Website enrichment is conservative. If a listing exposes a website, the Actor can inspect collected HTML for email-like strings and social-profile links. These are candidates. The Actor does not establish current ownership, deliverability, consent, or suitability for outreach. The listing phone and website are likewise source-displayed values rather than TrueFetch endorsements.

A July 23, 2026 live regression searched for one coffee shop in Chicago while requesting one review and one photo. Caffe Umbria returned as one 36-field item with one photo, a 4.6 rating, and a source phone and website. The requested review was unavailable: reviews was empty and review_count was null. That observed result defines the documentation’s “up to” language.

How do I run Google Maps Business Listing?

Begin in the Apify Console with a narrow, recognizable query. Enter the required keyword, location, language, and result ceiling. Leave reviews and photos at zero if you only need listing-level fields. If media or review samples matter, start with one of each so you can verify availability and event cost.

{
"keyword": "coffee shop",
"location": "Chicago, IL",
"language": "English",
"max_results": 1,
"reviews": 1,
"photos": 1
}

After the run reaches a terminal state, open its default Dataset. Confirm the item count, processor, processed_at, and any fields required by your application. Do not infer that empty reviews means a place has no reviews; it means this run did not collect review records.

Increase max_results gradually. A schema ceiling of 1,000,000 is an accepted input bound, not a recommended batch size or service-level promise. Search density, duplicate candidates, source changes, resource limits, and event charges determine practical scale.

What data does Google Maps Business Listing return?

The 36 top-level keys are grouped below:

AreaFields
Traceabilityprocessor, processed_at, url
Identityplace_id, name, thumbnail, category
Addressaddress, area, located_in, plus_code
Geographycoordinates, city, county, state, country
Search contextplace_rank, place_importance
Contactphone, website, menu_url, emails, social_media
Operationsopening_hours, popular_times, amenities, about, related_links
Reputationprice_range, rating, rating_counts, review_count, review_tags
Optional samplesreviews, photos, prices

place_rank is a one-based position in the candidate sequence collected for this run, not a guaranteed or durable Google ranking. coordinates are source-parsed latitude and longitude. The country value may be a source code such as US rather than a full country name.

Representative output, with long image URLs and nested social arrays abbreviated:

{
"processor": "https://apify.com/truefetch/google-maps-business-listing?fpr=aiagentapi",
"processed_at": "2026-07-23T17:57:59+00:00",
"url": "https://www.google.com/maps?cid=2015983089223394624&hl=en&gl=us",
"place_id": "0x880e2cb109470fb1:0x1bfa35f0425ae540",
"name": "Caffe Umbria",
"thumbnail": "https://lh3.googleusercontent.com/example",
"category": "Coffee shop",
"address": "346 N Clark St Unit 4709, Chicago, IL 60654",
"area": "Near North Side",
"located_in": null,
"plus_code": "V9Q9+GG Chicago, Illinois",
"coordinates": {"lat": 41.8887579, "lng": -87.6312297},
"city": "Chicago",
"county": null,
"state": "Illinois",
"country": "US",
"place_rank": 1,
"place_importance": null,
"phone": "(312) 955-0288",
"website": "http://www.caffeumbria.com/",
"menu_url": null,
"emails": [],
"social_media": {"linkedIns": [], "twitters": [], "instagrams": [], "facebooks": []},
"opening_hours": [{"name": "Thursday", "hours": ["7 AM–5 PM"]}],
"popular_times": {},
"amenities": "Wheelchair accessible entrance; Wheelchair accessible seating; Wheelchair accessible parking lot",
"about": [{"description": "Chic coffeehouse featuring Italian-style drinks brewed from house-brand beans, plus baked goods.", "value": ["Italian-style coffee shop with pastries"]}],
"related_links": [],
"price_range": null,
"rating": 4.6,
"rating_counts": {},
"review_count": null,
"review_tags": [],
"reviews": [],
"photos": ["https://lh3.googleusercontent.com/example"],
"prices": []
}

What inputs can I configure?

InputRequiredRules
keywordYesNon-empty business name, category, or Maps search phrase
locationYesNon-empty geographic phrase that can be resolved
languageYesOne of 46 enum labels from Afrikaans through Vietnamese
max_resultsYesInteger from 1 to 1,000,000; maximum unique output rows
reviewsNoInteger from 0 to 1,000,000; per-business maximum, default 0
photosNoInteger from 0 to 1,000,000; per-business maximum, default 0

Optional values affect requests and billing only when supplied or when their schema prefill is used in Console. Setting either optional ceiling to zero skips that collection path. Positive values still depend on source availability.

What platforms and markets does Google Maps Business Listing cover?

The target platform is Google Maps. Location input can describe a city, region, or country, and the Actor resolves it before searching. Coverage is therefore query- and source-dependent rather than a fixed market inventory. A resolvable location does not guarantee a dense result set for every phrase.

The language enum contains 46 interface choices. Locale hints affect the Maps request, but business names, addresses, descriptions, reviews, and linked websites can remain in local languages. Normalize text only when your application needs it, and keep the original source value for traceability.

Location resolution is part of the run, not a static coverage lookup. Broad inputs such as a country can generate a different search grid from a city or suburb, and a similarly named place can resolve somewhere unexpected. Read the run status message and inspect the returned city, state, country, address, and coordinates before accepting a batch. For multilingual comparisons, keep the keyword meaning consistent and record the selected interface language with your own job metadata.

Why use Google Maps Business Listing?

The main benefit is a predictable data contract around an unpredictable public surface. Analysts can load records from different categories into the same table, retain nulls, and separate collected facts from later validation. place_id, url, and timestamps make overlap and change tracking easier.

The result, review, and photo ceilings also make experiments controllable. Start with a listing-only sample, measure density and field coverage, and then decide whether deeper optional events are worth the added runtime and price.

Separate charge events make the cost drivers visible. A directory workflow that needs only names, addresses, phones, and websites can leave both optional ceilings at zero. A reputation study can request a small review sample, while a visual catalog can request photos without paying for unused review records. This separation is more useful than assuming every business needs the same depth, especially because deeper data may remain unavailable for some profiles.

Who is Google Maps Business Listing for?

Local-market researchers can compare categories, addresses, coordinates, ratings, and visible operating attributes. Directory teams can gather bounded source snapshots and deduplicate overlapping searches. Sales operations can discover listing and website contact candidates, provided they validate them and apply consent-aware outreach policies.

Location planners can map coordinates, but should not treat place_rank as a stable ranking metric. Reputation analysts can use ratings and review-related fields when present while preserving nulls and collection times. AI applications can cite source URLs, but should answer cautiously when optional values are missing.

How can I use Google Maps Business Listing through the API or MCP?

The Actor ID is truefetch/google-maps-business-listing. Keep your Apify token in a secret store.

$curl -X POST "https://api.apify.com/v2/acts/truefetch~google-maps-business-listing/runs?token=$APIFY_TOKEN&waitForFinish=180" -H "Content-Type: application/json" -d '{"keyword":"coffee shop","location":"Chicago, IL","language":"English","max_results":1,"reviews":1,"photos":1}'

For MCP, fetch Actor details first so the current schema and required fields are known. Then call it with bounded options:

{
"actor": "truefetch/google-maps-business-listing",
"input": {
"keyword": "coffee shop",
"location": "Chicago, IL",
"language": "English",
"max_results": 1,
"reviews": 1,
"photos": 1
},
"callOptions": {"build": "latest", "memory": 256, "timeout": 180},
"waitSecs": 45
}

If the call returns only run and storage metadata, fetch the Dataset items separately. Treat process success and data completeness as distinct checks.

How much does Google Maps Business Listing cost?

Pricing is pay per event and varies by plan tier.

EventFREEBRONZESILVERGOLD / PLATINUM / DIAMOND
Store$0.00380$0.00370$0.00360$0.00350
Review$0.00020$0.00019$0.00018$0.00017
Photo$0.00020$0.00019$0.00018$0.00017

Actor Start is $0.00005 per charged start event and Actor Usage is $0.00001 per usage event. At BRONZE prices, one returned store, one returned review, and one returned photo contribute $0.00408 before Start and runtime usage. A requested review that is not returned does not create a Review event for that missing item.

Estimate the upper bound with returned stores × Store price, returned reviews × Review price, and returned photos × Photo price, then add platform Start and usage charges.

How does Google Maps Business Listing compare with alternatives?

Manual Maps research offers visual context but is slow to repeat and difficult to normalize. This Actor favors structured, timestamped rows and bounded runs. Official Google APIs may be the appropriate choice when your application requires their supported contract, licensing model, identifiers, quotas, and integration guarantees. This Actor is not presented as a replacement for an official API.

Generic browser automation can be customized deeply but requires you to maintain parsing, retries, deduplication, schemas, and storage. Google Maps Business Listing packages those concerns into one Actor while still exposing source variability through nulls.

What are the limits and troubleshooting steps?

If a run returns no items, verify that the location is resolvable, simplify the keyword, keep English for a control test, and reduce the result ceiling. If the run succeeds with missing optional fields, inspect the source profile and remember that reviews, star distributions, popular times, hours, emails, and social links can be independently unavailable.

For cost surprises, check Store, Review, Photo, Start, and Usage events separately. For duplicate research areas, deduplicate primarily with place_id and secondarily with url. Source layouts and anti-automation responses can change without notice, so retain run IDs and timestamps for support.

Treat schedules, prices, amenities, popular times, ratings, and linked-site contacts as time-sensitive observations. A business can edit its profile, Google can update displayed information, and user-contributed material can be removed or revised. Re-run records that drive important decisions and compare processed_at values rather than overwriting history silently. For production pipelines, define rules for null handling, retries, freshness, maximum charge, retention, and manual verification before increasing batch size.

Frequently asked questions

Are the email addresses verified?

No. They are website-derived candidates. Validate ownership, deliverability, permission, and intended use independently.

Why did I request a review but receive none?

The input sets a maximum, not a guaranteed count. The deployment control run showed this exact case.

Does a rating imply that review count and star distribution are present?

No. Those values can come from different source structures and may be populated independently.

No. It is the schema ceiling. Prove the query with one item, then scale after measuring result density, runtime, storage, and event cost.

Can I schedule runs?

Yes, using Apify scheduling and integrations. Use bounded inputs and monitor both terminal status and Dataset counts.

Each related Actor has a separate schema, source boundary, and price model. Join records only after validating identifiers.

Support and last updated

Use current Google Maps Additional Terms and other applicable Google terms when planning collection or reuse. Public visibility does not remove third-party content rights, privacy duties, anti-spam rules, or the need for data minimization and secure retention.

For support, send the run ID, Dataset ID, UTC time, non-secret input, expected item count, actual item count, and the specific missing or unexpected field to TrueFetch support. Never send API tokens or proxy credentials.

Last updated: July 23, 2026.