Reputation & Reviews

Google Maps API

The Google Maps API returns place, business and review data as clean JSON.

8 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary place/search endpoint returns places with name, rating, review count, category, address, locality and coordinates, and you can pull a place/detail, look up a place by id, find nearby places, geocode an address, and read place/reviews and place/photos. It is the managed alternative to the official Places API and to scraping Maps — for local-data products, lead generation and review monitoring, with no per-request Google billing to manage. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, place/search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/google-maps/v1/place/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "specialty coffee Times Square",
    "lat": 40.7589,
    "lng": -73.9881,
    "maxResults": 10
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "google-maps",
    "endpoint": "place/search",
    "mode": "live",
    "latency_ms": 920.5,
    "record_count": 10,
    "bytes": 123340,
    "cache_hit": false,
    "completeness_pct": 99,
    "query": "specialty coffee Times Square"
  },
  "data": {
    "places": [
      {
        "fid": "0x89c2585580e483ab:0xe[redacted-phone]b3d7a8",
        "place_id": "0x89c2585580e483ab:0xe[redacted-phone]b3d7a8",
        "cid": "[redacted-phone]",
        "entity_id": "/g/11c1xjnyxs",
        "name": "[redacted-name]",
        "rating": 4,
        "review_count": 555,
        "category_primary": "Coffee shop",
        "categories": [
          "Coffee shop",
          "Cafe",
          "Coffee store"
        ],
        "address": "117 W 46th St, New York, NY 10036",
        "locality": "New York, NY 10036",
        "latitude": 40.7579144,
        "longitude": -73.9831988,
        "website": "http://forfivecoffee.com/",
        "domain": "forfivecoffee.com",
        "phone": "[redacted-phone]",
        "phone_display": "[redacted-phone]",
        "hours_today": [
          "8 AM-4 PM"
        ],
        "photos": [
          "https://lh4.googleusercontent.com/-tbMGIa_Z3BI/AAAAAAAAAAI/AAAAAAAAAAA/w5zuKoQaC78/s44-p-k-no-ns-nd/photo.jpg"
        ],
        "photo_count": 1,
        "thumbnail": "https://lh4.googleusercontent.com/-tbMGIa_Z3BI/AAAAAAAAAAI/AAAAAAAAAAA/w5zuKoQaC78/s44-p-k-no-ns-nd/photo.jpg",
        "maps_url": "https://www.google.com/maps?cid=[redacted-phone]"
      },
      {
        "fid": "0x89c259b6c59db77d:0x57cf5d10e4d1b9a5",
        "place_id": "0x89c259b6c59db77d:0x57cf5d10e4d1b9a5",
        "cid": "[redacted-phone]",
        "entity_id": "/g/11y31_2b88",
        "name": "[redacted-name]",
        "rating": 4.9,
        "review_count": 3427,
        "category_primary": "Coffee shop",
        "categories": [
          "Coffee shop"
        ],
        "address": "245 W 46th St, New York, NY 10036",
        "locality": "New York, NY 10036",
        "latitude": 40.759709099999995,
        "longitude": -73.9873617,
        "website": "https://www.787coffee.com/",
        "domain": "787coffee.com",
        "phone": "[redacted-phone]",
        "phone_display": "[redacted-phone]",
        "hours_today": [
          "7 AM-9 PM"
        ],
        "photos": [
          "https://lh6.googleusercontent.com/-TZOLVWqy2ks/AAAAAAAAAAI/AAAAAAAAAAA/3qu4C5Si7yU/s44-p-k-no-ns-nd/photo.jpg"
        ],
        "photo_count": 1,
        "thumbnail": "https://lh6.googleusercontent.com/-TZOLVWqy2ks/AAAAAAAAAAI/AAAAAAAAAAA/3qu4C5Si7yU/s44-p-k-no-ns-nd/photo.jpg",
        "maps_url": "https://www.google.com/maps?cid=[redacted-phone]"
      },
      {
        "fid": "0x89c25903f53cf951:0xc2c7e3abcb39348f",
        "place_id": "0x89c25903f53cf951:0xc2c7e3abcb39348f",
        "cid": "[redacted-phone]",
        "entity_id": "/g/11m7mgfqyx",
        "name": "[redacted-name]",
        "rating": 4.5,
        "review_count": 314,
        "category_primary": "Coffee shop",
        "categories": [
          "Coffee shop"
        ],
        "address": "106 W 45th St, New York, NY 10036",
        "locality": "New York, NY 10036",
        "latitude": 40.7569259,
        "longitude": -73.983446,
        "website": "http://www.gumptioncoffee.com/",
        "domain": "gumptioncoffee.com",
        "phone": "[redacted-phone]",
        "phone_display": "[redacted-phone]",
        "hours_today": [
          "8 AM-4 PM"
        ],
        "photos": [
          "https://lh5.googleusercontent.com/-q79K_96SXK0/AAAAAAAAAAI/AAAAAAAAAAA/xI0Mft89yzY/s44-p-k-no-ns-nd/photo.jpg"
        ],
        "photo_count": 1,
        "thumbnail": "https://lh5.googleusercontent.com/-q79K_96SXK0/AAAAAAAAAAI/AAAAAAAAAAA/xI0Mft89yzY/s44-p-k-no-ns-nd/photo.jpg",
        "maps_url": "https://www.google.com/maps?cid=[redacted-phone]"
      }
    ],
    "count": 10
  }
}
Actions

What the Google Maps API does

ActionDescriptionConcrete use caseKey params
place/searchSearch places by text query with optional lat/lng geo-bias. Returns up to 200 places with name, address, rating, categories, phone, website, coordinates, photos.Support teams call place/search to search places by text query with optional lat/lng geo-bias.query, lat, lng, altitude, maxResults, ...
place/detailThe single richest matching place: name, address, phone, website, rating, total review count, categories, coordinates, opening hours and photos.Reputation platforms call place/detail to get the single richest matching place.query, lat, lng, lang, region, ...
place/by-idFetch a place directly by its Google id — fid (0x…:0x…), place_id or numeric cid — no text query needed. Use the id returned by place/search.Market researchers call place/by-id to fetch a place directly by its Google id.fid, place_id, cid, query, lat, ...
place/nearbyFind places of a given type near coordinates (e.g. coffee shops, pharmacies, ATMs around a lat/lng). Returns up to 200 nearby places.B2B review analysts call place/nearby to find places of a given type near coordinates (e.g.lat, lng, type, radius, maxResults, ...
geocodeTurn an address or place name into coordinates: returns latitude, longitude and the formatted address of the best match.Support teams call geocode to turn an address or place name into coordinates.address, lang, region
place/reviewsPublic Google reviews for a place — paginated to ALL reviews. Each review carries author name, rating, text, date, photos and the owner's response. Resolve a place by query, or pass its fid/cid/place_id from place/search.Reputation platforms call place/reviews to get public Google reviews for a place.query, fid, cid, place_id, sort, ...
place/photosPublic photos for a place — the featured/hero gallery plus user-uploaded photos attached to reviews. Each is a stable image CDN URL (append '=s800' etc. for a sized variant). Resolve by query or pass an id.Market researchers call place/photos to get public photos for a place.query, fid, cid, place_id, lat, ...
place/freshnessMonitor a place for changes: returns the current place plus a typed diff vs the snapshot you pass from a previous call (rating/review_count/phone/website/address changes).B2B review analysts call place/freshness to monitor a place for changes.query, lat, lng, previous, lang, ...
Code samples

Call place/search from your stack

curl -X POST https://api.reefapi.com/google-maps/v1/place/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"specialty coffee Times Square","lat":40.7589,"lng":-73.9881,"maxResults":10}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.google-maps.place/search with {"query":"specialty coffee Times Square","lat":40.7589,"lng":-73.9881,"maxResults":10}.
Use cases

Who uses this API and why

  • Lead-generation tools call place/search to build lists of businesses by category and location.
  • Reputation products use place/reviews to monitor a business's Google ratings and review text.
  • Local-data apps use place/detail and geocode to enrich a location with hours, contact and coordinates.
FAQ

Questions developers ask before integrating

What is the Google Maps API?

Google Maps API is a ReefAPI endpoint group for places, business details, ratings and reviews. It returns live JSON through POST requests under /google-maps/v1.

Is the Google Maps API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Google Maps calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Google Maps login or account?

No login to Google Maps is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Google Maps data?

The page example is captured from a live place/search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Google Maps API use?

Google Maps actions currently cost 1-3 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Google Maps from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call google-maps actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Google Maps API a Google Maps scraper?

It is the managed alternative to a DIY Google Maps scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same places, business details, ratings and reviews back as clean JSON.

Why does my Google Maps scraper keep getting blocked?

Most Google Maps scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / google-maps

Google Maps

Places, business details, ratings and reviews.

base /google-maps/v18 endpoints
post/google-maps/v1/place/search2 credits

Search places by text query with optional lat/lng geo-bias. Returns up to 200 places with name, address, rating, categories, phone, website, coordinates, photos.

ParameterAllowed / rangeDescription
queryrequiredWhat to look for — business name, type or free text, ideally with a place hint ('pizza Brooklyn', 'Katz's Delicatessen Manhattan').
latoptional-90–90Latitude to bias the search around. Strongly recommended — without it Google assumes the central US.
lngoptional-180–180Longitude to bias the search around (pair with lat).
maxResults = 20optional1–200How many places to return (1–200). The engine pages Google's 20-per-page results internally — no page/cursor needed.
lang = enoptionalResult language (Google hl code: en, de, tr, es…). Affects category names and localized fields.
region = usoptionalRegion bias (Google gl country code: us, de, tr…).
altitude = 15000optional100–10000000Advanced: viewport altitude in meters — smaller = tighter local results, larger = wider area.
include_contacts = falseoptionalEnrich each result that has a website with contact details scraped from that site: business email(s), extra phone numbers, and social profile links (LinkedIn, Instagram, Facebook, Twitter/X, YouTube, TikTok). Adds email, emails, contact_phones and socials to each place. Off by default; turning it on fetches every result's website (through the proxy) so the response is slower — best used for lead generation. Sites that fail/block are returned without contacts.
Try in playground →
post/google-maps/v1/place/detail3 credits

The single richest matching place: name, address, phone, website, rating, total review count, categories, coordinates, opening hours and photos.

ParameterAllowed / rangeDescription
queryrequiredThe business to look up — name plus a location hint gives the best match.
latoptional-90–90Latitude to bias the search around. Strongly recommended — without it Google assumes the central US.
lngoptional-180–180Longitude to bias the search around (pair with lat).
lang = enoptionalResult language (Google hl code: en, de, tr, es…). Affects category names and localized fields.
region = usoptionalRegion bias (Google gl country code: us, de, tr…).
include_contacts = falseoptionalEnrich each result that has a website with contact details scraped from that site: business email(s), extra phone numbers, and social profile links (LinkedIn, Instagram, Facebook, Twitter/X, YouTube, TikTok). Adds email, emails, contact_phones and socials to each place. Off by default; turning it on fetches every result's website (through the proxy) so the response is slower — best used for lead generation. Sites that fail/block are returned without contacts.
Try in playground →
post/google-maps/v1/place/by-id3 credits

Fetch a place directly by its Google id — fid (0x…:0x…), place_id or numeric cid — no text query needed. Use the id returned by place/search.

ParameterAllowed / rangeDescription
fidoptionalGoogle feature id (ftid '0x…:0x…'). Pass this OR cid OR place_id.
place_idoptionalAlias of fid (same 0x…:0x… value).
cidoptionalNumeric Google customer id (cid). Pass this OR fid.
queryoptionalOptional text fallback if no id is supplied.
latoptional-90–90Latitude to bias the search around. Strongly recommended — without it Google assumes the central US.
lngoptional-180–180Longitude to bias the search around (pair with lat).
lang = enoptionalResult language (Google hl code: en, de, tr, es…). Affects category names and localized fields.
region = usoptionalRegion bias (Google gl country code: us, de, tr…).
Try in playground →
post/google-maps/v1/place/nearby2 credits

Find places of a given type near coordinates (e.g. coffee shops, pharmacies, ATMs around a lat/lng). Returns up to 200 nearby places.

ParameterAllowed / rangeDescription
typerequiredThe kind of place to find nearby — a category or keyword ('coffee shop', 'pharmacy', 'ATM', 'sushi restaurant').
latrequired-90–90Latitude of the center point.
lngrequired-180–180Longitude of the center point.
radius = 2000optional50–50000Approximate search radius in meters (wider = more area, less local precision). Default ~2 km.
maxResults = 20optional1–200How many places to return (1–200).
lang = enoptionalResult language (Google hl code: en, de, tr, es…). Affects category names and localized fields.
region = usoptionalRegion bias (Google gl country code: us, de, tr…).
Try in playground →
post/google-maps/v1/geocode1 credit

Turn an address or place name into coordinates: returns latitude, longitude and the formatted address of the best match.

ParameterAllowed / rangeDescription
addressrequiredThe address or place name to geocode.
lang = enoptionalResult language (Google hl code: en, de, tr, es…). Affects category names and localized fields.
region = usoptionalRegion bias (Google gl country code: us, de, tr…).
Try in playground →
post/google-maps/v1/place/reviews1 credit

Public Google reviews for a place — paginated to ALL reviews. Each review carries author name, rating, text, date, photos and the owner's response. Resolve a place by query, or pass its fid/cid/place_id from place/search.

ParameterAllowed / rangeDescription
queryoptionalThe business whose reviews you want (name + location). Pass this OR an id (fid/cid/place_id).
fidoptionalGoogle feature id from place/search — skips re-resolving.
cidoptionalNumeric Google cid (alternative to fid).
place_idoptionalAlias of fid.
sort = most_relevantoptionalmost_relevant · newest · highest_rating · lowest_ratingReview ordering. 'newest' for the latest reviews, 'highest_rating'/'lowest_rating' to surface best/worst.
max_reviews = 20optional1–2000How many reviews to return. The engine paginates Google's 20-per-page reviews automatically up to this many.
cursoroptionalContinue from a previous response's pagination.cursor to fetch the next batch (omit for the first page).
latoptional-90–90Latitude to bias the search around. Strongly recommended — without it Google assumes the central US.
lngoptional-180–180Longitude to bias the search around (pair with lat).
lang = enoptionalResult language (Google hl code: en, de, tr, es…). Affects category names and localized fields.
region = usoptionalRegion bias (Google gl country code: us, de, tr…).
Try in playground →
post/google-maps/v1/place/photos2 credits

Public photos for a place — the featured/hero gallery plus user-uploaded photos attached to reviews. Each is a stable image CDN URL (append '=s800' etc. for a sized variant). Resolve by query or pass an id.

ParameterAllowed / rangeDescription
queryoptionalThe business whose photos you want (or pass an id).
fidoptionalGoogle feature id from place/search.
cidoptionalNumeric Google cid (alternative to fid).
place_idoptionalAlias of fid.
latoptional-90–90Latitude to bias the search around. Strongly recommended — without it Google assumes the central US.
lngoptional-180–180Longitude to bias the search around (pair with lat).
lang = enoptionalResult language (Google hl code: en, de, tr, es…). Affects category names and localized fields.
region = usoptionalRegion bias (Google gl country code: us, de, tr…).
Try in playground →
post/google-maps/v1/place/freshness2 credits

Monitor a place for changes: returns the current place plus a typed diff vs the snapshot you pass from a previous call (rating/review_count/phone/website/address changes).

ParameterAllowed / rangeDescription
queryrequiredThe business to monitor (same query each run).
latoptional-90–90Latitude to bias the search around. Strongly recommended — without it Google assumes the central US.
lngoptional-180–180Longitude to bias the search around (pair with lat).
previousoptionalThe `place` object from your previous freshness call. Omit on the first run (returns first_seen: true); pass it on later runs to get the change diff.
lang = enoptionalResult language (Google hl code: en, de, tr, es…). Affects category names and localized fields.
region = usoptionalRegion bias (Google gl country code: us, de, tr…).
Try in playground →