Google Maps Posts API
for offers, events, and announcements
Pull the updates a business publishes on its Google Maps listing as clean JSON. One request returns each post with its text, image, call-to-action, and timestamps, paginated, with proxies handled for you.
of requests succeed
median response
95% finish faster
per 1k post batches at volume
Google buries business posts in the listing. Your parser shouldn't care.
- Posts loaded client-side, not in the HTML
- CTAs and images nested per post
- Dates as "Oct 15", not timestamps
- Proxies and captchas per business
- Re-parse the listing after each redesign
One GET Request. That's the whole integration.
Start with just a query. Add more parameters when your use case needs them.
curl -G 'https://api.hasdata.com/scrape/google-maps/posts' \
--data-urlencode 'dataId=0x873312ae759b4d15:0x1f38a9bec9912029' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json'dataId Data IDplaceId Place IDnextPageToken Next Page Tokenhl LanguageEvery post, one predictable schema
Each update comes back with the same keys, text, image, call-to-action, and a normalized timestamp. Map the fields once and forget about it.
[
{
"postId": "775695035948935453",
"locationId": "2916276679580905419",
"title": null,
"description": "North Rim day-use operations begin on October 16. Plan ahead for limited services...",
"image": "https://lh3.googleusercontent.com/geougc/AF1QipMymB2uq73Vw",
"cta": { "url": "https://go.nps.gov/nr-1016", "label": "Learn more" },
"createdAt": "2022-10-16T04:07:19.000Z",
"postedAt": "Oct 15, 2022",
"postUrl": "https://www.google.com/search?q=Grand+Canyon+National+Park"
}
]postId / locationId stringIDs of the post and the business
title / description stringPost heading (when present) and body text
image stringImage attached to the post
cta objectCall-to-action url and label, when the post has one
createdAt / postedAt stringISO timestamp and Google's display date
postUrl stringDirect link to the post on Google
An all-in-one scraping service
Every feature you need to collect data from thousands to millions of requests.
Discover similar
scrapers and APIs
to expand your projects.
Google Maps Search API
Local Market Research • $0.37 / 1k Request
Google Maps Scraper
Local Lead Generation • $0.22 / 1k Rows
Fits right into your stack.
Works with the tools you already use.
View Documentation ->Teams that deleted their scraper
Now it's the part of the pipeline they don't think about
The Google Maps API from HasData has been incredibly useful for collecting structured local business data. We were able to extract names, categories, contact details, and even customer reviews.
HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.
We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.
Great web scraping API which is incredibly easy to use. It requires minimal effort to get up and running, and the documentation is very clear and helpful.
I needed to scrape some information they didn't already support, and they wrote the code for me right away, which was super nice of them.
Plans that get cheaper at scale
Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.
Free
Startup
Business
RecommendedEnterprise
Monthly post batch volume
Start with 100 free post batches. No credit card required.
Questions, answered
Pass the business's dataId, which the Google Maps Search API returns for every result. Feed that in and you get its posts back.
The offers, events, and announcements a business publishes on its Google Business Profile. Each carries its text, image, a call-to-action button when present, and the date it went up.
Yes. Alongside Google's display date like "Oct 15", every post carries createdAt as an ISO timestamp, so you can sort and filter by actual date.
Per successful request. One request is one post batch. A failed request costs nothing.
Yes, a one-time trial of 100 post batches with every field included. No credit card required. When you're done testing, pick a plan that fits your volume.
One post batch costs 10 credits. The unit price drops with volume, from about $2.45 down to $0.75 per 1,000 batches. Need more than the top plan covers? We'll set a custom rate.
No. Requests run on HasData's infrastructure, so there's nothing to provision or maintain. You're responsible for using the results in line with each target site's terms and applicable law.
Yes, you can cancel your subscription at any time from your dashboard in a few seconds. Once cancelled, there are no recurring payments.
Your first post batch
is minutes away
100 post batches free · no credit card