Standard posts, events, and offers
One payload picks the format — standard updates, date-bound events, or promotional offers with coupon codes and redeem URLs.
Publish local posts, events, and offers to Google Business Profile locations via one API. Reply to reviews from the same integration.
One request reaches every location your profile manages — alongside every other network you publish to.
Free plan · No credit card · Live in under 5 minutes
One payload picks the format — standard updates, date-bound events, or promotional offers with coupon codes and redeem URLs.
Attach LEARN_MORE, BOOK, ORDER, SHOP, SIGN_UP, or CALL buttons to any post via cta_action_type and cta_url.
A single connected profile manages multiple accounts and locations. Target any location by passing its location_id from the placements endpoint.
Use the Profile Comments API to read incoming Google reviews and post replies. Reviews sync twice daily; replies post on demand.
$
View full documentation for all platform-specific features for Google Business
One test post against a sandbox account is the easy part. Production Google Business publishing means app verification, OAuth across many accounts, media pipelines, dozens of edge cases, and a permanent on-call rotation for "why didn't this one go through this time?"
Free plan includes the Google Business API. No credit card.
Postproxy handles OAuth, account/location discovery, and the local-posts endpoint shape. You send a body and a location_id — we make the right calls.
Publish the same post body to Google Business alongside Instagram, LinkedIn, Bluesky, and the rest in one /api/posts call.
The Profile Comments API surfaces reviews on every connected location and lets you reply via POST. Webhooks fire as new reviews arrive.
Automatic retries, clear status, and HMAC-signed webhooks for every Google Business outcome — including deletions.
Each Google Business post is a local update attached to a specific Business Profile location. Three formats share the same endpoint — standard (default), event, and offer — and each accepts only its relevant fields. The post body carries up to 1,500 characters; you can attach one image (5 MB, jpg or png, minimum 400×300, recommended 4:3 at 1200×900). Video attachments are not part of the local-posts API and will be rejected.
Events take an event_title, event_start_date and event_end_date (YYYY-MM-DD), plus optional event_start_time and event_end_time in 24-hour format. Offers require the same date window and accept offer_coupon_code, offer_redeem_url, and offer_terms — Google renders the coupon code prominently on the listing and surfaces the redeem URL as the CTA. Same body, same media rules; only the format changes.
Any post can carry a CTA via cta_action_type: LEARN_MORE, BOOK, ORDER, SHOP, SIGN_UP, or CALL. Every type except CALL requires cta_url to point the button at an HTTPS endpoint. The button shows on the local-post card in search and Maps results.
Reviews on a Google Business location surface through the Profile Comments API — GET /api/profiles/:profile_id/comments lists incoming reviews; POST with the review's external ID as parent_id publishes a reply. Reviews sync twice daily (06:00 and 18:00 UTC), replies post on demand. You can't post top-level reviews via the API — only customers create those — and you can delete your own replies, not the originals. Webhook events fire as new reviews arrive.
Connect a profile via OAuth: POST /api/profile_groups/:id/initialize_connection with platform: google_business. Postproxy stores the refresh token and lists every account and location the user authorised. List them with GET /api/profiles/:id/placements — each location returns its resource path (accounts/X/locations/Y), which you pass as location_id on the post. One profile can manage multiple accounts and any number of locations.
Common questions about Google Business integration
Start with our free plan and scale as your needs grow. No credit card required.