Google Maps Business Scraper with Reviews & Posts
$1/1000
results
Google Maps Business Scraper with Reviews & Posts
Fetch complete Google Maps business profiles together with reviews and posts.
$1/1000
results
Fetch complete Google Maps business profiles together with reviews and posts.
Google Maps Business Scraper with Reviews & Posts combines three extraction jobs into a single run: the full Google Maps business profile, optional customer reviews, and optional Google Business Profile posts. Provide place IDs or Maps URLs once, choose what to include with includeReviews and includePosts, and receive clean, structured JSON dataset rows tagged by type (business, review, post, or error).
This all-in-one scraper is built for teams that otherwise chain separate profile, review, and posts actors. Agencies producing location scorecards, product teams syncing “place intelligence” into apps, and analysts building longitudinal store datasets get a complete snapshot without managing multiple pipelines.
Control review volume with maxReviews while keeping posts and profile fields aligned to the same place via shared businessId / placeId / inputTarget keys. Ideal when you need reputation context and marketing activity alongside hours, amenities, and contact data — delivered as structured JSON ready for warehouses and CRMs.
Use the dedicated Reviews or Posts scrapers when you only need one content type at high volume; use this actor when the unit of work is “everything about this place.”
Google Maps Business Scraper with Reviews & Posts combines three extraction jobs into a single run: the full Google Maps business profile, optional customer reviews, and optional Google Business Profile posts. Provide place IDs or Maps URLs once, choose what to include with includeReviews and includePosts, and receive clean, structured JSON dataset rows tagged by type (business, review, post, or error).
This all-in-one scraper is built for teams that otherwise chain separate profile, review, and posts actors. Agencies producing location scorecards, product teams syncing “place intelligence” into apps, and analysts building longitudinal store datasets get a complete snapshot without managing multiple pipelines.
Control review volume with maxReviews while keeping posts and profile fields aligned to the same place via shared businessId / placeId / inputTarget keys. Ideal when you need reputation context and marketing activity alongside hours, amenities, and contact data — delivered as structured JSON ready for warehouses and CRMs.
Use the dedicated Reviews or Posts scrapers when you only need one content type at high volume; use this actor when the unit of work is “everything about this place.”
targets list of place IDs, CIDs, or Maps URLsincludeReviews; cap per place via maxReviewsincludePosts for Google Business Profile updatestype: business, review, post, or error for easy filteringbusinessId, placeId, inputTarget, and resolvedTarget link related rowstargets list of place IDs, CIDs, or Maps URLsincludeReviews; cap per place via maxReviewsincludePosts for Google Business Profile updatestype: business, review, post, or error for easy filteringbusinessId, placeId, inputTarget, and resolvedTarget link related rows| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| targets | array of string | Yes | — | Place IDs, hex CIDs, or Google Maps place URLs to scrape. |
| includeReviews | boolean | No | true | When true, fetch reviews for each business. |
| includePosts | boolean | No | true | When true, fetch Google Business Profile posts for each business. |
| maxReviews | string (numeric) | No | "100" | Max reviews per business when includeReviews is enabled. Ignored if reviews are disabled. |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| targets | array of string | Yes | — | Place IDs, hex CIDs, or Google Maps place URLs to scrape. |
| includeReviews | boolean | No | true | When true, fetch reviews for each business. |
| includePosts | boolean | No | true | When true, fetch Google Business Profile posts for each business. |
| maxReviews | string (numeric) | No | "100" | Max reviews per business when includeReviews is enabled. Ignored if reviews are disabled. |
targets — Each place yields one business row, plus zero or more review / post rows.includeReviews=false — Skips review API calls; no type: "review" rows are emitted.includePosts=false — Skips posts; profile-only (or profile + reviews) output.maxReviews — Limits review depth per place to control cost on high-volume listings.targets — Each place yields one business row, plus zero or more review / post rows.includeReviews=false — Skips review API calls; no type: "review" rows are emitted.includePosts=false — Skips posts; profile-only (or profile + reviews) output.maxReviews — Limits review depth per place to control cost on high-volume listings.The dataset is a flat list of objects. Filter by type to separate profiles, reviews, and posts. Join related rows on businessId or inputTarget.
The dataset is a flat list of objects. Filter by type to separate profiles, reviews, and posts. Join related rows on businessId or inputTarget.
| Field | Type | Description |
|---|---|---|
| type | string | business, review, post, or error |
| businessId | string \| null | Resolved business identifier |
| inputTarget | string \| null | Original target string from input |
| resolvedTarget | string \| null | Normalized target after resolution |
| error | string \| null | Present on type: "error" rows |
| Field | Type | Description |
|---|---|---|
| type | string | business, review, post, or error |
| businessId | string \| null | Resolved business identifier |
| inputTarget | string \| null | Original target string from input |
| resolvedTarget | string \| null | Normalized target after resolution |
| error | string \| null | Present on type: "error" rows |
type: "business" — profile fieldstype: "business" — profile fields| Field | Type | Description |
|---|---|---|
| placeId | string \| null | Google place ID |
| name | string \| null | Business name |
| description | string \| null | About text |
| category | string \| null | Primary category |
| categories | array \| null | Extra categories |
| rating | number \| null | Average rating |
| reviewCount | number \| null | Total reviews on the listing |
| phone | string \| null | Phone |
| website | string \| null | Website |
| address | string \| null | Formatted address |
| openingHours | object \| array \| null | Weekly hours |
| holidayHours | object \| array \| null | Holiday hours |
| attributes | object \| array \| null | Attributes |
| amenities | object \| array \| null | Amenities |
| accessibility | object \| array \| null | Accessibility |
| paymentOptions | object \| array \| null | Payments |
| serviceOptions | object \| array \| null | Service options |
| reservations | object \| string \| null | Reservations |
| bookingLinks | array \| object \| null | Booking links |
| menuUrl | string \| null | Menu URL |
| orderLinks | array \| object \| null | Order links |
| popularTimes | object \| array \| null | Popular times |
| liveBusyLevel | string \| null | Live busy signal |
| ownerName | string \| null | Owner name |
| ownerVerified | boolean \| null | Verified flag |
| latitude | number \| null | Latitude |
| longitude | number \| null | Longitude |
| timezone | string \| null | Timezone |
| plusCode | string \| null | Plus Code |
| Field | Type | Description |
|---|---|---|
| placeId | string \| null | Google place ID |
| name | string \| null | Business name |
| description | string \| null | About text |
| category | string \| null | Primary category |
| categories | array \| null | Extra categories |
| rating | number \| null | Average rating |
| reviewCount | number \| null | Total reviews on the listing |
| phone | string \| null | Phone |
| website | string \| null | Website |
| address | string \| null | Formatted address |
| openingHours | object \| array \| null | Weekly hours |
| holidayHours | object \| array \| null | Holiday hours |
| attributes | object \| array \| null | Attributes |
| amenities | object \| array \| null | Amenities |
| accessibility | object \| array \| null | Accessibility |
| paymentOptions | object \| array \| null | Payments |
| serviceOptions | object \| array \| null | Service options |
| reservations | object \| string \| null | Reservations |
| bookingLinks | array \| object \| null | Booking links |
| menuUrl | string \| null | Menu URL |
| orderLinks | array \| object \| null | Order links |
| popularTimes | object \| array \| null | Popular times |
| liveBusyLevel | string \| null | Live busy signal |
| ownerName | string \| null | Owner name |
| ownerVerified | boolean \| null | Verified flag |
| latitude | number \| null | Latitude |
| longitude | number \| null | Longitude |
| timezone | string \| null | Timezone |
| plusCode | string \| null | Plus Code |
type: "review" — review fieldstype: "review" — review fields| Field | Type | Description |
|---|---|---|
| reviewId | string \| null | Review ID |
| placeId | string \| null | Place ID |
| authorId | string \| null | Author ID |
| authorName | string \| null | Author name |
| authorProfile | string \| null | Profile URL |
| authorPhoto | string \| null | Avatar URL |
| authorReviewCount | number \| null | Author review count |
| authorPhotoCount | number \| null | Author photo count |
| rating | number \| null | Stars |
| reviewText | string \| null | Body |
| likes | number \| null | Likes |
| publishedAt | string \| null | Published at |
| updatedAt | string \| null | Updated at |
| language | string \| null | Language |
| translatedText | string \| null | Translation |
| ownerReply | string \| null | Owner reply |
| ownerReplyDate | string \| null | Reply date |
| reviewPhotos | array \| null | Review photos |
| Field | Type | Description |
|---|---|---|
| reviewId | string \| null | Review ID |
| placeId | string \| null | Place ID |
| authorId | string \| null | Author ID |
| authorName | string \| null | Author name |
| authorProfile | string \| null | Profile URL |
| authorPhoto | string \| null | Avatar URL |
| authorReviewCount | number \| null | Author review count |
| authorPhotoCount | number \| null | Author photo count |
| rating | number \| null | Stars |
| reviewText | string \| null | Body |
| likes | number \| null | Likes |
| publishedAt | string \| null | Published at |
| updatedAt | string \| null | Updated at |
| language | string \| null | Language |
| translatedText | string \| null | Translation |
| ownerReply | string \| null | Owner reply |
| ownerReplyDate | string \| null | Reply date |
| reviewPhotos | array \| null | Review photos |
type: "post" — post fieldstype: "post" — post fields| Field | Type | Description |
|---|---|---|
| postId | string \| null | Post ID |
| placeId | string \| null | Place ID |
| title | string \| null | Title |
| description | string \| null | Body |
| images | array \| null | Media |
| cta | string \| null | Call to action |
| url | string \| null | Link |
| publishedAt | string \| null | Published at |
| updatedAt | string \| null | Updated at |
| Field | Type | Description |
|---|---|---|
| postId | string \| null | Post ID |
| placeId | string \| null | Place ID |
| title | string \| null | Title |
| description | string \| null | Body |
| images | array \| null | Media |
| cta | string \| null | Call to action |
| url | string \| null | Link |
| publishedAt | string \| null | Published at |
| updatedAt | string \| null | Updated at |
Optional nested / media fields are null when Google does not expose them. Filter type === "review" or type === "post" in your consumer code.
Optional nested / media fields are null when Google does not expose them. Filter type === "review" or type === "post" in your consumer code.
[
{
"type": "business",
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"businessId": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf",
"name": "Joe's Pizza",
"description": "Classic New York–style pizza by the slice since 1975.",
"category": "Pizza restaurant",
"categories": ["Pizza restaurant", "Italian restaurant"],
"rating": 4.6,
"reviewCount": 4821,
"phone": "+1 212-366-1182",
"website": "https://www.joespizzanyc.com/",
"address": "7 Carmine St, New York, NY 10014, United States",
"openingHours": {
"Monday": "10:00 AM – 4:00 AM",
"Sunday": "10:00 AM – 4:00 AM"
},
"holidayHours": null,
"attributes": null,
"amenities": ["Restroom"],
"accessibility": ["Wheelchair accessible entrance"],
"paymentOptions": ["Credit cards"],
"serviceOptions": ["Dine-in", "Takeout", "Delivery"],
"reservations": null,
"bookingLinks": null,
"menuUrl": "https://www.joespizzanyc.com/menu",
"orderLinks": ["https://www.ubereats.com/store/joes-pizza"],
"popularTimes": null,
"liveBusyLevel": "Usually busy",
"ownerName": "Joe's Pizza",
"ownerVerified": true,
"latitude": 40.7305959,
"longitude": -74.0021364,
"timezone": "America/New_York",
"plusCode": "87G8+6R New York",
"inputTarget": "https://www.google.com/maps/place/Joe's+Pizza/@40.7306,-74.0021,17z",
"resolvedTarget": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf"
},
{
"type": "review",
"reviewId": "ChZDSUhNMG9nS0VJQ0FnSURQd3R3d1JnEAE",
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"businessId": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf",
"authorId": "104627067190717677750",
"authorName": "Maria Alvarez",
"authorProfile": "https://www.google.com/maps/contrib/104627067190717677750",
"authorPhoto": "https://lh3.googleusercontent.com/a-/AOh14Ggmaria",
"authorReviewCount": 86,
"authorPhotoCount": 42,
"rating": 5,
"reviewText": "Best pepperoni slice in the Village.",
"likes": 24,
"publishedAt": "2026-05-18T21:04:11.000Z",
"updatedAt": null,
"language": "en",
"translatedText": null,
"ownerReply": "Thanks Maria!",
"ownerReplyDate": "2026-05-19T12:10:00.000Z",
"reviewPhotos": null,
"inputTarget": "https://www.google.com/maps/place/Joe's+Pizza/@40.7306,-74.0021,17z",
"resolvedTarget": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf"
},
{
"type": "post",
"postId": "AhEGkWc2bX...posts.abc123",
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"businessId": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf",
"title": "Weekend Special: 2 Large Pizzas for $29",
"description": "This Friday–Sunday only. Dine-in or takeout.",
"images": [
"https://lh3.googleusercontent.com/a-/posts/joes-pizza-weekend-special.jpg"
],
"cta": "Order online",
"url": "https://www.joespizzanyc.com/order",
"publishedAt": "2026-06-12T14:22:08.000Z",
"updatedAt": "2026-06-12T14:22:08.000Z",
"inputTarget": "https://www.google.com/maps/place/Joe's+Pizza/@40.7306,-74.0021,17z",
"resolvedTarget": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf"
}
]
[
{
"type": "business",
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"businessId": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf",
"name": "Joe's Pizza",
"description": "Classic New York–style pizza by the slice since 1975.",
"category": "Pizza restaurant",
"categories": ["Pizza restaurant", "Italian restaurant"],
"rating": 4.6,
"reviewCount": 4821,
"phone": "+1 212-366-1182",
"website": "https://www.joespizzanyc.com/",
"address": "7 Carmine St, New York, NY 10014, United States",
"openingHours": {
"Monday": "10:00 AM – 4:00 AM",
"Sunday": "10:00 AM – 4:00 AM"
},
"holidayHours": null,
"attributes": null,
"amenities": ["Restroom"],
"accessibility": ["Wheelchair accessible entrance"],
"paymentOptions": ["Credit cards"],
"serviceOptions": ["Dine-in", "Takeout", "Delivery"],
"reservations": null,
"bookingLinks": null,
"menuUrl": "https://www.joespizzanyc.com/menu",
"orderLinks": ["https://www.ubereats.com/store/joes-pizza"],
"popularTimes": null,
"liveBusyLevel": "Usually busy",
"ownerName": "Joe's Pizza",
"ownerVerified": true,
"latitude": 40.7305959,
"longitude": -74.0021364,
"timezone": "America/New_York",
"plusCode": "87G8+6R New York",
"inputTarget": "https://www.google.com/maps/place/Joe's+Pizza/@40.7306,-74.0021,17z",
"resolvedTarget": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf"
},
{
"type": "review",
"reviewId": "ChZDSUhNMG9nS0VJQ0FnSURQd3R3d1JnEAE",
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"businessId": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf",
"authorId": "104627067190717677750",
"authorName": "Maria Alvarez",
"authorProfile": "https://www.google.com/maps/contrib/104627067190717677750",
"authorPhoto": "https://lh3.googleusercontent.com/a-/AOh14Ggmaria",
"authorReviewCount": 86,
"authorPhotoCount": 42,
"rating": 5,
"reviewText": "Best pepperoni slice in the Village.",
"likes": 24,
"publishedAt": "2026-05-18T21:04:11.000Z",
"updatedAt": null,
"language": "en",
"translatedText": null,
"ownerReply": "Thanks Maria!",
"ownerReplyDate": "2026-05-19T12:10:00.000Z",
"reviewPhotos": null,
"inputTarget": "https://www.google.com/maps/place/Joe's+Pizza/@40.7306,-74.0021,17z",
"resolvedTarget": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf"
},
{
"type": "post",
"postId": "AhEGkWc2bX...posts.abc123",
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"businessId": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf",
"title": "Weekend Special: 2 Large Pizzas for $29",
"description": "This Friday–Sunday only. Dine-in or takeout.",
"images": [
"https://lh3.googleusercontent.com/a-/posts/joes-pizza-weekend-special.jpg"
],
"cta": "Order online",
"url": "https://www.joespizzanyc.com/order",
"publishedAt": "2026-06-12T14:22:08.000Z",
"updatedAt": "2026-06-12T14:22:08.000Z",
"inputTarget": "https://www.google.com/maps/place/Joe's+Pizza/@40.7306,-74.0021,17z",
"resolvedTarget": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf"
}
]