---
title: "Reply to a review"
method: POST
path: "/v1/accounts/{accountId}/gmb-reviews/{reviewId}/reply"
tags: ["GMB Reviews"]
---

# Reply to a review

`POST /v1/accounts/{accountId}/gmb-reviews/{reviewId}/reply`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/accounts/{accountId}/gmb-reviews/{reviewId}/reply`
- Auth: HTTP bearer

Posts (or updates) the business owner reply to a Google Business Profile review.
The reply is associated with the account's currently selected location (set via /v1/accounts/{accountId}/gmb-locations).
Calling this endpoint a second time on the same review overwrites the previous reply (PUT semantics on Google's side).
Google keeps no history, so an automated retry silently replaces a reply someone edited by hand in the Google Business Profile UI.
Read the review before retrying if a human may have answered it.

## Path parameters

- `accountId` string, required
- `reviewId` string, required

## Request body

- object
  - `comment` string, required: The reply text to post on the review. Must be non-empty.

## Response `200`

Reply posted successfully

- object
  - `success` boolean
  - `reviewId` string
  - `platform` string

## Other responses

- `400`: Invalid request, missing comment, non-Google Business Profile account, or account missing location metadata
- `401`: Unauthorized or token invalid (account must be reconnected)
- `404`: Resource not found
- `500`: Failed to post reply

## Changes

- **2026-10-06** `f8c8f34fb41a`: 3 warning
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `400`
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `401`
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `500`
- **2026-10-02** `d556591af3f6`: 3 info
  - added the optional property `docUrl` to the response with the `400` status
  - added the optional property `docUrl` to the response with the `401` status
  - added the optional property `docUrl` to the response with the `500` status
- **2026-09-30** `16a7b9d5373e`: 3 info
  - removed the `platform` enum value from the `details/budgetScope` response property for the response status `400`
  - removed the `platform` enum value from the `details/budgetScope` response property for the response status `401`
  - removed the `platform` enum value from the `details/budgetScope` response property for the response status `500`
- **2026-09-25** `2c04683ce694`: 12 info
  - added the optional property `details/adAccountId` to the response with the `400` status
  - added the optional property `details/adAccountId` to the response with the `401` status
  - added the optional property `details/adAccountId` to the response with the `500` status
  - added the optional property `details/createdObjects` to the response with the `400` status
  - …8 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/accounts/:accountId/gmb-reviews/:reviewId/reply/post.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/4e74db179e73?raw)
