Google Maps Posts Scraper
$1/1000
results
Google Maps Posts Scraper
Extract Google Business Profile posts from place IDs or Maps URLs.
$1/1000
results
Extract Google Business Profile posts from place IDs or Maps URLs.
Google Maps Posts Scraper collects Google Business Profile posts for any place you target with a place ID or Google Maps URL. It returns clean, structured JSON for each post — including title, description, images, call-to-action, link, and publish/update timestamps — so you can track how local businesses communicate on Maps.
Marketers, competitive intelligence teams, and local SEO agencies use this scraper to monitor offers, events, product launches, and seasonal campaigns published on Google Business Profiles. Instead of manually checking Maps listings, you get machine-readable post histories ready for dashboards and alerts.
Feed it one or many places from a territory list or competitor watchlist. The scraper resolves each target and extracts available posts into a consistent schema you can archive, compare over time, or combine with reviews and profile data from sibling scrapers.
Results are structured JSON — ideal for content calendars, brand monitoring pipelines, and research datasets on local advertising behavior.
Google Maps Posts Scraper collects Google Business Profile posts for any place you target with a place ID or Google Maps URL. It returns clean, structured JSON for each post — including title, description, images, call-to-action, link, and publish/update timestamps — so you can track how local businesses communicate on Maps.
Marketers, competitive intelligence teams, and local SEO agencies use this scraper to monitor offers, events, product launches, and seasonal campaigns published on Google Business Profiles. Instead of manually checking Maps listings, you get machine-readable post histories ready for dashboards and alerts.
Feed it one or many places from a territory list or competitor watchlist. The scraper resolves each target and extracts available posts into a consistent schema you can archive, compare over time, or combine with reviews and profile data from sibling scrapers.
Results are structured JSON — ideal for content calendars, brand monitoring pipelines, and research datasets on local advertising behavior.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| targets | array of string | Yes | — | One or more place IDs, hex CIDs, or Google Maps place URLs. Posts are collected for each resolved business. |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| targets | array of string | Yes | — | One or more place IDs, hex CIDs, or Google Maps place URLs. Posts are collected for each resolved business. |
targets affects the scrapertargets affects the scraperEvery target is resolved to a Google Maps business, then available Google Business Profile posts are fetched. Places with no posts return an empty result set for that target. Larger target lists increase total posts returned and run duration.
Every target is resolved to a Google Maps business, then available Google Business Profile posts are fetched. Places with no posts return an empty result set for that target. Larger target lists increase total posts returned and run duration.
Each item is a single Google Business Profile post.
Each item is a single Google Business Profile post.
| Field | Type | Description |
|---|---|---|
| postId | string \| null | Unique post identifier |
| placeId | string \| null | Place the post belongs to (falls back to the resolved target when needed) |
| title | string \| null | Post headline / title |
| description | string \| null | Post body text |
| images | array \| null | Image or media URLs attached to the post |
| cta | string \| null | Call-to-action label (e.g. “Order online”, “Learn more”) |
| url | string \| null | Destination / offer link |
| publishedAt | string \| null | Publish timestamp |
| updatedAt | string \| null | Last update timestamp when available |
| Field | Type | Description |
|---|---|---|
| postId | string \| null | Unique post identifier |
| placeId | string \| null | Place the post belongs to (falls back to the resolved target when needed) |
| title | string \| null | Post headline / title |
| description | string \| null | Post body text |
| images | array \| null | Image or media URLs attached to the post |
| cta | string \| null | Call-to-action label (e.g. “Order online”, “Learn more”) |
| url | string \| null | Destination / offer link |
| publishedAt | string \| null | Publish timestamp |
| updatedAt | string \| null | Last update timestamp when available |
Optional fields such as images, cta, and url are null when the post has no media or link. Text-only posts still return title / description when present.
Optional fields such as images, cta, and url are null when the post has no media or link. Text-only posts still return title / description when present.
{
"postId": "AhEGkWc2bX...posts.abc123",
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"title": "Weekend Special: 2 Large Pizzas for $29",
"description": "This Friday–Sunday only. Dine-in or takeout. Mention this Maps post when you order.",
"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"
}
{
"postId": "AhEGkWc2bX...posts.abc123",
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"title": "Weekend Special: 2 Large Pizzas for $29",
"description": "This Friday–Sunday only. Dine-in or takeout. Mention this Maps post when you order.",
"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"
}