Search Google Maps for businesses and places
Find businesses and places on Google Maps by a text query, optionally around a point. Each result is the full listing: place_id, name, categories, formatted_address, location, rating and user_ratings_total, phone, website, opening_hours and business_status — named as in Google's Places API. Use this to build a list of businesses in an area; use google-maps/place when you already have a place_id.
https://api.scrapefield.com/v1/google-maps/placeshttps://api.scrapefield.com/v1/google-maps/places?query=coffee+shops+in+BrooklynIn your code
curl -H "Authorization: Bearer $SCRAPEFIELD_KEY" \
"https://api.scrapefield.com/v1/google-maps/places?query=coffee+shops+in+Brooklyn"Parameters
| Parameter | What it does |
|---|---|
query | What to search for, e.g. "coffee shops in Brooklyn" or "dentist". |
lat | Latitude of the point to search around. -90–90 |
lng | Longitude of the point to search around. -180–180 |
radius_m | Search radius in metres around lat/lng. 100–50000, default 5000 |
country | Two-letter country code to bias results, e.g. `us`. |
language | Two-letter language code for localised text, e.g. `en`, `de`. default en |
limit | How many results to return, 1–20. 1–20, default 20 |
cursor | The `meta.next_cursor` from the previous page. Omit for the first page. |
fresh | Skip the cache and fetch now. Charged normally. Not available on trial credits — buy any pack to unlock it. default false |
Response
Returns an array of google_maps_place. This is a real response, not an abbreviated one — including the fields that come back null, because a field is null when the platform does not show it and you should know which ones those are before you build on them.
{
"data": [
{
"place_id": "ChIJCp_tEt98TctuNdchPP_n7B2",
"name": "Ember Books",
"category": "Bookstore",
"categories": [
"Bookstore"
],
"formatted_address": "Torstrasse 127, 10119 Berlin, Germany",
"address": {
"street": "Torstrasse 127",
"city": "Berlin",
"region": "Berlin",
"postal_code": "10119",
"country_code": "DE"
},
"location": {
"lat": 52.522744,
"lng": 13.406678
},
"plus_code": "LU4K+JQ",
"rating": 4.7,
"user_ratings_total": 18,
"rating_distribution": {
"1": 0,
"2": 0,
"3": 1,
"4": 3,
"5": 14
},
"price_level": null,
"formatted_phone_number": "030 440482",
"international_phone_number": "+49 30 440482",
"website": "https://emberbooks.example",
"url": "https://www.google.com/maps/place/?q=place_id:ChIJCp_tEt98TctuNdchPP_n7B2",
"business_status": "OPERATIONAL",
"opening_hours": {
"weekday_text": [
"Monday: 7:30 AM – 6:00 PM",
"Tuesday: 7:30 AM – 6:00 PM",
"Wednesday: 7:30 AM – 6:00 PM",
"Thursday: 7:30 AM – 6:00 PM",
"Friday: 7:30 AM – 6:00 PM",
"Saturday: 9:00 AM – 6:00 PM",
"Sunday: Closed"
],
"periods": [
{
"open": {
"day": 1,
"time": "0730"
},
"close": {
"day": 1,
"time": "1800"
}
},
{
"open": {
"day": 2,
"time": "0730"
},
"close": {
"day": 2,
"time": "1800"
}
},
{
"open": {
"day": 3,
"time": "0730"
},
"close": {
"day": 3,
"time": "1800"
}
},
{
"open": {
"day": 4,
"time": "0730"
},
"close": {
"day": 4,
"time": "1800"
}
},
{
"open": {
"day": 5,
"time": "0730"
},
"close": {
"day": 5,
"time": "1800"
}
},
{
"open": {
"day": 6,
"time": "0900"
},
"close": {
"day": 6,
"time": "1800"
}
}
]
},
"popular_times": null,
"about": {
"service_options": [
"Dine-in",
"Takeout",
"Delivery"
],
"accessibility": [
"Wheelchair accessible entrance"
],
"payments": [
"Credit cards",
"Debit cards",
"NFC mobile payments",
"Cash"
]
},
"claimed": true,
"photo": {
"url": "https://cdn.example/maps/CqDpMfaV_L8HsE3p.jpg",
"width": 4032,
"height": 3024,
"author_name": null,
"author_url": null
}
},
{
"place_id": "ChIJ75LIPcJobSy8zzTVP0zI_jA",
"name": "Blue Door Kitchen",
"category": "Cafe",
"categories": [
"Cafe",
"Bicycle shop"
],
"formatted_address": "269 Bedford Ave, Brooklyn, NY 11249, United States",
"address": {
"street": "269 Bedford Ave",
"city": "Brooklyn",
"region": "New York",
"postal_code": "11249",
"country_code": "US"
},
"location": {
"lat": 40.670341,
"lng": -73.929229
},
"plus_code": "CEQS+05",
"rating": 4.5,
"user_ratings_total": 1594,
"rating_distribution": {
"1": 40,
"2": 54,
"3": 156,
"4": 242,
"5": 1102
},
"price_level": 3,
"formatted_phone_number": "(718) 555-0164",
"international_phone_number": "+1 718-555-0164",
"website": "https://bluedoorkitchen.example",
"url": "https://www.google.com/maps/place/?q=place_id:ChIJ75LIPcJobSy8zzTVP0zI_jA",
"business_status": "CLOSED_TEMPORARILY",
"opening_hours": {
"weekday_text": [
"Monday: 7:00 AM – 7:00 PM",
"Tuesday: 7:00 AM – 7:00 PM",
"Wednesday: 7:00 AM – 7:00 PM",
"Thursday: 7:00 AM – 7:00 PM",
"Friday: 7:00 AM – 7:00 PM",
"Saturday: 9:00 AM – 7:00 PM",
"Sunday: 9:00 AM – 7:00 PM"
],
"periods": [
{
"open": {
"day": 0,
"time": "0900"
},
"close": {
"day": 0,
"time": "1900"
}
},
{
"open": {
"day": 1,
"time": "0700"
},
"close": {
"day": 1,
"time": "1900"
}
},
{
"open": {
"day": 2,
"time": "0700"
},
"close": {
"day": 2,
"time": "1900"
}
},
{
"open": {
"day": 3,
"time": "0700"
},
"close": {
"day": 3,
"time": "1900"
}
},
{
"open": {
"day": 4,
"time": "0700"
},
"close": {
"day": 4,
"time": "1900"
}
},
{
"open": {
"day": 5,
"time": "0700"
},
"close": {
"day": 5,
"time": "1900"
}
},
{
"open": {
"day": 6,
"time": "0900"
},
"close": {
"day": 6,
"time": "1900"
}
}
]
},
"popular_times": [
{
"day": 0,
"busyness": [
0,
0,
0,
0,
0,
0,
0,
20,
60,
90,
99,
87,
77,
77,
61,
38,
12,
7,
5,
0,
0,
0,
0,
0
]
},
{
"day": 1,
"busyness": [
0,
0,
0,
0,
0,
0,
0,
17,
47,
72,
81,
73,
68,
65,
51,
27,
12,
9,
5,
0,
0,
0,
0,
0
]
},
{
"day": 2,
"busyness": [
0,
0,
0,
0,
0,
0,
0,
16,
48,
76,
78,
69,
67,
64,
52,
28,
9,
7,
4,
0,
0,
0,
0,
0
]
},
{
"day": 3,
"busyness": [
0,
0,
0,
0,
0,
0,
0,
17,
45,
72,
78,
72,
68,
66,
47,
32,
13,
9,
8,
0,
0,
0,
0,
0
]
},
{
"day": 4,
"busyness": [
0,
0,
0,
0,
0,
0,
0,
18,
45,
75,
81,
70,
62,
61,
53,
30,
11,
3,
1,
0,
0,
0,
0,
0
]
},
{
"day": 5,
"busyness": [
0,
0,
0,
0,
0,
0,
0,
21,
56,
92,
98,
89,
81,
79,
62,
36,
16,
8,
4,
0,
0,
0,
0,
0
]
},
{
"day": 6,
"busyness": [
0,
0,
0,
0,
0,
0,
0,
22,
52,
89,
100,
85,
84,
79,
62,
34,
16,
6,
8,
0,
0,
0,
0,
0
]
}
],
"about": {
"service_options": [
"Dine-in",
"Takeout",
"Delivery"
],
"accessibility": [
"Wheelchair accessible entrance"
],
"payments": [
"Credit cards",
"Debit cards",
"NFC mobile payments",
"Cash"
]
},
"claimed": true,
"photo": {
"url": "https://cdn.example/maps/DLBArrmzeQOmJnYt.jpg",
"width": 4032,
"height": 2268,
"author_name": null,
"author_url": null
}
}
],
"meta": {
"request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
"credits_charged": 3,
"credits_remaining": 74218,
"cached": false,
"fetched_at": "2026-09-20T09:12:03Z",
"next_cursor": "eyJwIjoxLCJzIjoiYTNmOSJ9"
}
}Fields of google_maps_place
One business or place, as its Google Maps listing shows it. Named after Google's Places API.
| Field | What it is |
|---|---|
place_id | Google's place ID — the same one the Places API and every Maps URL use. |
name | As the listing shows it. |
category | The category printed under the name, e.g. "Coffee shop". |
categories | Every category on the listing, the main one first. |
formatted_address | The address as one line, as Google formats it. |
address | The same address in parts. |
address.street | Street and number. |
address.city | |
address.region | State, province or region. |
address.postal_code | |
address.country_code | ISO 3166-1 alpha-2, e.g. US. |
location | The pin. |
location.lat | Latitude. |
location.lng | Longitude. |
plus_code | The global plus code, e.g. 87G8P2QX+RV. |
rating | The star rating, 1.0–5.0. null until the place has ratings. |
user_ratings_total | How many ratings the star rating is the average of. |
rating_distribution | How many ratings of each star value, as the listing's bar chart shows them. |
rating_distribution.1 | |
rating_distribution.2 | |
rating_distribution.3 | |
rating_distribution.4 | |
rating_distribution.5 | |
price_level | 0 (free) to 4 (very expensive), as the Places API counts it. |
formatted_phone_number | The phone number in local format. |
international_phone_number | With the country code, e.g. +1 718-555-0142. |
website | The business's own site. |
url | The place on Google Maps. |
business_status | As the Places API reports it. OPERATIONAL · CLOSED_TEMPORARILY · CLOSED_PERMANENTLY |
opening_hours | Regular opening hours. null when the listing has none. |
opening_hours.weekday_text | Seven lines, Monday first, as the listing prints them. |
opening_hours.periods | The same hours as data. A place open around the clock has one period with no close. |
opening_hours.periods[].open | |
opening_hours.periods[].open.day | 0 is Sunday. |
opening_hours.periods[].open.time | 24-hour HHMM, local time. |
opening_hours.periods[].close | |
opening_hours.periods[].close.day | 0 is Sunday. |
opening_hours.periods[].close.time | 24-hour HHMM, local time. |
popular_times | The "Popular times" chart. null for places too quiet to have one. |
popular_times[].day | 0 is Sunday. |
popular_times[].busyness | Twenty-four values, midnight first, 0–100 relative to the place's busiest hour. |
about | The listing's About tab, by heading: service_options, accessibility, amenities, payments and so on — only the headings the place has. |
claimed | Whether the owner has claimed the listing. Unclaimed ones offer "Own this business?". |
photo | The listing's main photo. |
photo.url | The image on Google's CDN. We do not rehost images. |
photo.width | Pixels. |
photo.height | Pixels. |
photo.author_name | Who uploaded it, as the listing credits them. null for the owner's own photos. |
photo.author_url | Their Google Maps contributor page. |
What it costs
3 credits per successful call, whether we fetch it or serve it from cache — you pay for the answer, not for how we produced it. Responses are cached for 24 hours and a cached one tells you when the data was actually fetched. A call we fail costs 0 and is refunded automatically.
On the smallest pack that is $2.34 per 1,000 calls; on the largest, $1.20. The full table.