How do you get Google Maps places data via API?
To get Google Maps places data via API, call ReefAPI's place/search action with a query and optional coordinates; it returns local business records with ids, names, ratings, categories, addresses and location fields.
This guide demonstrates the real Google Maps API engine with a captured response from . The example is only published because the engine passed the SEO snapshot gate.
Local lead generation, store discovery, review monitoring and location intelligence.
Call the live endpoint
- 1
Write a specific local query
Combine category and location intent, such as specialty coffee Times Square, and pass coordinates when useful.
- 2
Call google-maps/v1/place/search
POST query, lat, lng and maxResults through ReefAPI.
- 3
Store place identity fields
Keep place_id, fid, name, address, category, coordinates and website for dedupe and enrichment.
- 4
Review completeness
Use meta.completeness_pct and record_count to decide whether to retry or accept the batch.
Copy the request
These snippets use the captured request params for google-maps/v1/place/search.
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}'import requests
r = requests.post(
"https://api.reefapi.com/google-maps/v1/place/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "specialty coffee Times Square",
"lat": 40.7589,
"lng": -73.9881,
"maxResults": 10
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/google-maps/v1/place/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "specialty coffee Times Square",
"lat": 40.7589,
"lng": -73.9881,
"maxResults": 10
}),
});
const { ok, data, meta, error } = await res.json();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}.Captured output from ReefAPI
Captured on UTC. The response below is the committed snapshot, including the API envelope and metadata.
{
"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
}
}{
"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
}
}Why this is hard manually
Local search results are shaped by query, map position, language, device and personalization. Manual scraping also has to normalize names, categories, addresses, ratings, websites and coordinates from a page meant for humans.
For lead or location workflows, inconsistent place identity is the main failure mode. Without stable ids and structured fields, dedupe and enrichment become manual cleanup.
Why ReefAPI solves it
This guide uses a real specialty coffee Times Square search snapshot. The response includes place ids, names, ratings, categories, addresses, locality, latitude, longitude and website fields where available.
ReefAPI is useful when the product needs repeatable place discovery without maintaining a browser stack for every local query.
Questions developers ask
Does the response include reviews?
This guide demonstrates place search. Check the Google Maps docs page for review-related actions and current fields.
Can I search near coordinates?
Yes. The captured request includes latitude and longitude alongside the query.
Are names redacted in the sample?
Some fields may be redacted by the snapshot pipeline for privacy and safety, but the response shape remains real.
What is the best primary key?
Use place_id or another stable id from the response, and keep URL or address as secondary matching fields.