Google Maps data, ready when you are.
Places, search and reviews from Google Maps.
- See the price before every call
- Pay only for records that come back
- No subscription. Your balance never expires
What you can get.
- $0.000225per recordTry it →
Places
Full cards for up to ten places by Maps URL (place id or cid). Rating and breakdown, review keywords, contact, address, hours, popular times, attributes, socials, owner posts.
- $0.000225per recordTry it →
Search
Places for a keyword in a location. Every hit a full card.
- $0.000225per recordTry it →
Reviews
Reviews for up to ten places. Text, stars, date, reviewer, owner response; sorted newest, most relevant, highest or lowest.
What the data looks like.
| businessName | category | address | city | country | rating | reviews | priceRange | phone | website | permanentlyClosed | placeId | placeUrl | categoryId | reviewsUrl | menuUrl | reserveTableUrl | cid | fid | kgmid | isAdvertisement | details |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Brewlab Coffee | Coffee shop | 210 Congress Ave, Austin, TX 78701 | Austin | US | 4.7 | 1,284 | $$ | +1 512-555-0142 | https://brewlab.example | false | 2910649290 | https://www.google.com/maps/brewlab-coffee-1000 | 3644697838 | https://www.google.com/maps/brewlab-coffee-1000 | https://www.google.com/maps/brewlab-coffee-1000 | https://www.google.com/maps/brewlab-coffee-1000 | 777429974 | 615548140 | 751321537 | false |
|
| Casa Lumen Tacos | Mexican restaurant | 88 Harbor Dr, San Diego, CA 92101 | San Diego | US | 4.5 | 2,310 | $ | +1 619-555-0190 | https://casalumen.example | false | 2171364855 | https://www.google.com/maps/casa-lumen-tacos-1001 | 1221544499 | https://www.google.com/maps/casa-lumen-tacos-1001 | https://www.google.com/maps/casa-lumen-tacos-1001 | https://www.google.com/maps/casa-lumen-tacos-1001 | 2979685572 | 67051873 | 3876769627 | false |
|
| Northfold Fitness | Gym | 12 Indiranagar 100 Ft Rd, Bengaluru 560038 | Bengaluru | IN | 4.6 | 512 | $$ | +91 80 5555 0123 | https://northfoldfit.example | false | 930528383 | https://www.google.com/maps/northfold-fitness-1002 | 1258403920 | https://www.google.com/maps/northfold-fitness-1002 | https://www.google.com/maps/northfold-fitness-1002 | https://www.google.com/maps/northfold-fitness-1002 | 1063308140 | 2400293925 | 4146290404 | false |
|
For developers
API reference.
One endpoint, POST /v1/google_maps. Open an operation to see its fields.
Placesplaces
Full cards for up to ten places by Maps URL (place id or cid). Rating and breakdown, review keywords, contact, address, hours, popular times, attributes, socials, owner posts.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | Maps URLs carrying a place id or cid, or bare ChIJ… place ids. |
Response fields, each row of data
| Field | Type |
|---|---|
| placeId | string |
| placeUrl | string |
| businessName | string |
| category | string |
| allCategories | list of string |
| categoryId | string |
| placeTags | list of string |
| rating | number |
| reviews | integer |
| reviewBreakdown | any |
| reviewKeywords | any |
| reviewsUrl | string |
| priceRange | string |
| phone | string |
| formattedPhone | string |
| website | string |
| emails | list of string |
| additionalPhones | list of string |
| socials | any |
| directoryProfiles | any |
| address | string |
| neighborhood | string |
| city | string |
| state | string |
| postalCode | string |
| country | string |
| street | string |
| latitude | number |
| longitude | number |
| plusCode | string |
| locatedIn | string |
| floor | string |
| permanentlyClosed | boolean |
| temporarilyClosed | boolean |
| unclaimed | boolean |
| owner | any |
| description | string |
| attributes | any |
| openingHours | any |
| specialHours | any |
| popularTimes | any |
| liveOccupancyPercent | integer |
| liveStatus | string |
| coverPhoto | string |
| photos | any |
| photoCount | integer |
| relatedPlaces | any |
| ownerPosts | any |
| menuUrl | string |
| reserveTableUrl | string |
| reservationLinks | any |
| entranceLocation | any |
| hotelAds | any |
| similarHotels | any |
| hotelType | string |
| hotelDescription | string |
| subTitle | string |
| cid | string |
| fid | string |
| kgmid | string |
| isAdvertisement | boolean |
| language | string |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/google_maps \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"places","subjects":["ChIJN1t_tDeuEmsRUsoyG83frY4"]}'Example response rows
[
{
"businessName": "Brewlab Coffee",
"category": "Coffee shop",
"address": "210 Congress Ave, Austin, TX 78701",
"city": "Austin",
"country": "US",
"rating": 4.7,
"reviews": 1284,
"priceRange": "$$",
"phone": "+1 512-555-0142",
"website": "https://brewlab.example",
"permanentlyClosed": false,
"placeId": "2910649290",
"placeUrl": "https://www.google.com/maps/brewlab-coffee-1000",
"categoryId": "3644697838",
"reviewsUrl": "https://www.google.com/maps/brewlab-coffee-1000",
"menuUrl": "https://www.google.com/maps/brewlab-coffee-1000",
"reserveTableUrl": "https://www.google.com/maps/brewlab-coffee-1000",
"cid": "777429974",
"fid": "615548140",
"kgmid": "751321537",
"isAdvertisement": false,
"details": {}
},
{
"businessName": "Casa Lumen Tacos",
"category": "Mexican restaurant",
"address": "88 Harbor Dr, San Diego, CA 92101",
"city": "San Diego",
"country": "US",
"rating": 4.5,
"reviews": 2310,
"priceRange": "$",
"phone": "+1 619-555-0190",
"website": "https://casalumen.example",
"permanentlyClosed": false,
"placeId": "2171364855",
"placeUrl": "https://www.google.com/maps/casa-lumen-tacos-1001",
"categoryId": "1221544499",
"reviewsUrl": "https://www.google.com/maps/casa-lumen-tacos-1001",
"menuUrl": "https://www.google.com/maps/casa-lumen-tacos-1001",
"reserveTableUrl": "https://www.google.com/maps/casa-lumen-tacos-1001",
"cid": "2979685572",
"fid": "67051873",
"kgmid": "3876769627",
"isAdvertisement": false,
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Searchsearch
Places for a keyword in a location. Every hit a full card.
| Field | Type | Meaning |
|---|---|---|
| query * | string · ≤300 chars | |
| location * | string · ≤120 chars | |
| minRating | enum | Google's star scale, in halves.2 · 2.5 · 3 · 3.5 · 4 · 4.5 |
| website | enum | Keep only places that list a website ("with"), only those that do not ("without". A common lead filter), or both.any · with · without |
| limit | integer · 1-100 |
Response fields, each row of data
| Field | Type |
|---|---|
| placeId | string |
| placeUrl | string |
| businessName | string |
| category | string |
| allCategories | list of string |
| categoryId | string |
| placeTags | list of string |
| rating | number |
| reviews | integer |
| reviewBreakdown | any |
| reviewKeywords | any |
| reviewsUrl | string |
| priceRange | string |
| phone | string |
| formattedPhone | string |
| website | string |
| emails | list of string |
| additionalPhones | list of string |
| socials | any |
| directoryProfiles | any |
| address | string |
| neighborhood | string |
| city | string |
| state | string |
| postalCode | string |
| country | string |
| street | string |
| latitude | number |
| longitude | number |
| plusCode | string |
| locatedIn | string |
| floor | string |
| permanentlyClosed | boolean |
| temporarilyClosed | boolean |
| unclaimed | boolean |
| owner | any |
| description | string |
| attributes | any |
| openingHours | any |
| specialHours | any |
| popularTimes | any |
| liveOccupancyPercent | integer |
| liveStatus | string |
| coverPhoto | string |
| photos | any |
| photoCount | integer |
| relatedPlaces | any |
| ownerPosts | any |
| menuUrl | string |
| reserveTableUrl | string |
| reservationLinks | any |
| entranceLocation | any |
| hotelAds | any |
| similarHotels | any |
| hotelType | string |
| hotelDescription | string |
| subTitle | string |
| cid | string |
| fid | string |
| kgmid | string |
| isAdvertisement | boolean |
| language | string |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/google_maps \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"search","query":"coffee shop","location":"Seattle, WA","minRating":"4.5","limit":20}'Example response rows
[
{
"businessName": "Third Wave Roasters",
"category": "Coffee shop",
"address": "5 Church St, Bengaluru 560001",
"city": "Bengaluru",
"country": "IN",
"rating": 4.6,
"reviews": 3120,
"priceRange": "$$",
"phone": "+91 80 5555 0188",
"placeId": "1005667376",
"placeUrl": "https://www.google.com/maps/third-wave-roasters-1000",
"categoryId": "1413598742",
"reviewsUrl": "https://www.google.com/maps/third-wave-roasters-1000",
"menuUrl": "https://www.google.com/maps/third-wave-roasters-1000",
"reserveTableUrl": "https://www.google.com/maps/third-wave-roasters-1000",
"cid": "4033895133",
"fid": "737493188",
"kgmid": "3492469626",
"isAdvertisement": false,
"details": {}
},
{
"businessName": "Brew & Bloom",
"category": "Cafe",
"address": "44 Koramangala 5th Block, Bengaluru 560095",
"city": "Bengaluru",
"country": "IN",
"rating": 4.4,
"reviews": 1860,
"priceRange": "$$",
"phone": "+91 80 5555 0141",
"placeId": "197953318",
"placeUrl": "https://www.google.com/maps/brew-bloom-1001",
"categoryId": "3505513993",
"reviewsUrl": "https://www.google.com/maps/brew-bloom-1001",
"menuUrl": "https://www.google.com/maps/brew-bloom-1001",
"reserveTableUrl": "https://www.google.com/maps/brew-bloom-1001",
"cid": "156300737",
"fid": "1569078011",
"kgmid": "3066591407",
"isAdvertisement": false,
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Reviewsreviews
Reviews for up to ten places. Text, stars, date, reviewer, owner response; sorted newest, most relevant, highest or lowest.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | Maps URLs carrying a place id or cid, or bare ChIJ… place ids. |
| sort | enum | newest · relevance · rating_high · rating_low |
| limit | integer · 1-100 |
Response fields, each row of data
| Field | Type |
|---|---|
| reviewId | string |
| reviewUrl | string |
| reviewText | string |
| stars | number |
| postedAt | string |
| reviewer | string |
| reviewerId | string |
| reviewerUrl | string |
| reviewerPhoto | string |
| reviewerTotalReviews | integer |
| localGuide | boolean |
| reviewLikes | integer |
| originalLanguage | string |
| translatedLanguage | string |
| translatedText | string |
| ownerResponse | string |
| ownerResponseDate | string |
| reviewContext | any |
| reviewImageUrls | string |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/google_maps \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"reviews","subjects":["ChIJN1t_tDeuEmsRUsoyG83frY4"],"sort":"newest","limit":25}'Example response rows
[
{
"reviewer": "Ravi K.",
"stars": 5,
"reviewText": "Great espresso and fast service.",
"localGuide": true,
"reviewerTotalReviews": 214,
"reviewLikes": 12,
"postedAt": "2026-10-12",
"ownerResponse": null,
"reviewId": "3650111347",
"reviewUrl": "https://www.google.com/maps/ravi-k-1000",
"reviewerId": "2639496725",
"reviewerUrl": "https://www.google.com/maps/ravi-k-1000",
"ownerResponseDate": "2026-10-03",
"details": {}
},
{
"reviewer": "Lena M.",
"stars": 4,
"reviewText": "Good coffee, few seats.",
"localGuide": false,
"reviewerTotalReviews": 9,
"reviewLikes": 3,
"postedAt": "2026-10-08",
"ownerResponse": "Thanks Lena, more seats are on the way!",
"reviewId": "2122062301",
"reviewUrl": "https://www.google.com/maps/lena-m-1001",
"reviewerId": "431987686",
"reviewerUrl": "https://www.google.com/maps/lena-m-1001",
"ownerResponseDate": "2026-10-08",
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Historyhistoryfree
Stored rating/review-count series of places already held. Free.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | |
| metric | enum | rating · reviews · live_occupancy_percent |
| days | integer · 1-730 |