How to Reply to Google Business Reviews via API

List and reply to Google Business Profile reviews programmatically — multi-location filtering, star-only reviews, webhooks for new reviews, and reply management.

How reviews surface in the API

Google reviews live on a location, not on a post, so they flow through the Profile Comments API rather than the post-level Comments API. A review is a top-level comment; your answer is a reply nested under it.

Postproxy pulls reviews from Google twice a day (06:00 and 18:00 UTC) for every connected google_business profile, and fires a profile_comment.created webhook for each new one — so you don’t poll Google or manage its OAuth scopes.

Prerequisites

  • A Postproxy API key
  • A connected Google Business profile (the connected Google account may manage several locations)

List reviews

Terminal window
curl "https://api.postproxy.dev/api/profiles/PROFILE_ID/comments" \
-H "Authorization: Bearer YOUR_API_KEY"

Results are newest-first by posted_at. Each review carries the reviewer’s name and avatar, your replies in a replies array, and the star rating in platform_data.star_rating.

Two Google-specific shapes to handle:

  • Star-only reviews — Google allows ratings with no text. body is null but platform_data.star_rating is populated, so don’t skip records on an empty body.
  • Permalink — points at the location’s reviews page on Google, shared by all reviews there. Google’s API doesn’t expose per-review URLs.

Multi-location accounts

A google_business profile represents the connected Google account, which may manage multiple locations — including unrelated businesses. Without a filter, the list interleaves reviews from all of them.

Enumerate locations first, then scope by placement_id:

Terminal window
# List locations
curl "https://api.postproxy.dev/api/profiles/PROFILE_ID/placements" \
-H "Authorization: Bearer YOUR_API_KEY"
# Reviews for one location
curl "https://api.postproxy.dev/api/profiles/PROFILE_ID/comments?placement_id=accounts/1234/locations/5678" \
-H "Authorization: Bearer YOUR_API_KEY"

Reply to a review

Terminal window
curl -X POST "https://api.postproxy.dev/api/profiles/PROFILE_ID/comments" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"parent_id": "REVIEW_ID",
"body": "Thanks Jane — glad the espresso landed. See you next week!"
}'

parent_id is required — Google reviews are user-generated, so top-level comments can’t be authored through the API (the request returns 422 without it). It accepts the Postproxy hashid or Google’s native resource path (accounts/X/locations/Y/reviews/Z).

The reply is stored with status: "pending" and pushed to Google asynchronously; it flips to published once it lands, or failed / failed_waiting_for_retry with error_details if Google rejects it.

React to new reviews in real time

Subscribe to profile_comment.created on your webhook endpoint. It fires for newly synced incoming reviews and for your own replies once published. The payload includes placement_id, body, and platform_data.star_rating — enough to route on the spot: thank 5-star reviewers automatically, page a human for anything at 3 stars or below.

The event fires across all locations of the account; filter on data.object.placement_id if you only care about some. For a fully automated pipeline with an LLM drafting the responses, see How to Auto-Respond to Google Reviews with AI.

Update or remove your reply

Google supports one owner reply per review. To remove yours:

Terminal window
curl -X DELETE "https://api.postproxy.dev/api/profiles/PROFILE_ID/comments/REPLY_ID" \
-H "Authorization: Bearer YOUR_API_KEY"

This deletes your reply only — businesses can’t delete the review itself; the original stays.

What the API can and can’t do

ActionSupported
List reviews per locationYes
Read star ratings (incl. star-only reviews)Yes
Reply to a reviewYes
Delete your replyYes
Create or delete a reviewNo — reviews are user-generated

Full object fields and error shapes: Profile Comments API. Publishing local posts, events, and offers to the same profile is covered on the Google Business platform page.

Ready to get started?

Start with our free plan and scale as your needs grow. No credit card required.