No. On the Google Business Profile API, a 200 from the reviews updateReply call only submits the reply. The reviewReplyState field (checked 18 October 2026) reads PENDING, APPROVED or REJECTED, and a customer sees the reply only when it reads APPROVED. Google defines the State type as "the moderation state of a review reply" in its reviews reference.
The field is new. Google's Business Profile API change log (checked 18 October 2026) lists "ReviewReplyState can now be retrieved as part of reviews" under 2026-04-01, and Google's help page on managing reviews (checked 18 October 2026) says "Google reviews your replies" and "If your reply isn't approved to be posted, you'll be asked to edit it." Code written before April 2026 that treats the updateReply response as "posted" now reports replies that were never shown.
Is a 200 from updateReply a published Google review reply?
No, a 200 is not a published reply. Three states carry the whole lifecycle, and the table separates what the API says from what each audience sees. The owner who wrote the reply and a customer reading the listing see different things until moderation decides.
| `reviewReplyState` | Google's definition | Public listing | What your integration should show |
|---|---|---|---|
PENDING | "Indicates that the reply is pending moderation." | Reply not confirmed as visible | "Awaiting approval" |
APPROVED | "Indicates that the reply was approved." | Reply visible | "Published" |
REJECTED | "Indicates that the reply was rejected." | Reply not shown | "Rejected", plus the policyViolation reason |
REVIEW_REPLY_STATE_UNSPECIFIED | "Indicates that the state is unspecified." | Unknown | Treat as not published |
Definitions are quoted from Google's reviews reference, checked 18 October 2026. The sequence below shows where each state appears.
updateReply returns once the reply is submitted. The state you read back decides what the public sees: APPROVED is visible, PENDING and REJECTED are not.
Google's reference states the moderation states and the help page states that replies are reviewed. Neither page says how long a reply stays PENDING, and neither promises a push when the state changes. If your product needs the outcome, read the state again later, or subscribe to a Google notification and then read the review (Google's Pub/Sub review notifications are covered by the notification setup guide).
How do you read the reply state back?
Fetch the review with reviews.get and read reviewReply.reviewReplyState, because reviewReply is a field of the review itself. The payload below is an example with placeholder values, not a captured response.
The same field comes back from reviews.list and batchGetReviews. Google marks reviewReplyState as "Output only", so you never send it. And the PolicyViolation enum carries the note "New values may be added in the future," so a switch with no default branch will eventually break.
What should you do when a reply is REJECTED?
Show the reason to the writer, fix the wording or the profile, and never resubmit identical text. A rejected reply carries a policyViolation next to the state. Google describes it as "The policy violation that resulted in rejection. Only populated if reviewReplyState is REJECTED." The change log dates its arrival to 2026-07-01 ("The PolicyViolation field is now included in ReviewReply for reviews"). A rejection before that date carries no reason.
Google's reference lists dozens of PolicyViolation values. Most are content categories. The ones that can apply to a reply you wrote are below, with Google's wording as of 18 October 2026.
| Value | Google's wording |
|---|---|
ADVERTISING_AND_SOLICITATION | "Content that violates our policy on advertising or solicitation isn't allowed." |
FAKE_ENGAGEMENT | "Content that violates our policy on fake engagement isn't allowed." |
GIBBERISH_AND_REPETITIVE | "Content that violates our policy on unclear or repetitive content isn't allowed." |
REPETITIVE, UNCLEAR | Policies on repetitive content and on unclear content |
PERSONAL_INFO | "Content that violates our policy on personal information isn't allowed." |
OFFENSIVE, HARASSMENT, HATE_SPEECH, OBSCENITY_AND_PROFANITY | Policies on offensive content, harassment, hate speech, obscenity or profanity |
OFF_TOPIC | "Content that violates our policy on off-topic content isn't allowed." |
GENERIC_VIOLATION | "Your content violates our policies and isn't allowed." |
GENERIC_QUALITY | "Content that violates our policies on low quality content isn't allowed." |
MODERATION_ERROR | "An error occurred while processing your content." |
The reference also lists account and profile values (LOCATION_SUSPENDED, EDITING_RESTRICTION, ACCOUNT_RESTRICTED_AND_EDIT_REJECTED and others). A REJECTED reply with one of these is about the profile, not the wording. Rewriting the text will not help until the profile problem is fixed.
The decision rule: branch on the account and profile values first, show the reason to the person who wrote the reply, and never retry the same text. Google's help page says a rejected reply means "you'll be asked to edit it." Submitting identical text again buys another rejection.
What Google does not publish matters just as much. The Maps user generated content policy (checked 18 October 2026) lists "Advertising & solicitation" as a prohibited category. For merchants it prohibits "Time-bound promotions, pricing, or direct calls-to-action" in the listing. It does not address owner replies by name.
So the common advice that discount codes and sales links get replies rejected is a reasonable reading of ADVERTISING_AND_SOLICITATION, not a rule Google states for replies. Write replies as answers to the reviewer, leave out prices, offers and links, and treat the enum value you actually receive as the only authority.
What else changed in the Business Profile API that breaks review code?
Seven dated changes matter, from 2023 to 2026, and the table lists them. Google's sunset dates page and the change log (checked 18 October 2026) give the dated changes that code written from older tutorials trips on.
| Date | What changed | Who it breaks |
|---|---|---|
| 2023-03-30 | accounts.locations.reportInsights (v4) discontinued. Replacement: locations.fetchMultiDailyMetricsTimeSeries | Insights dashboards copied from v4-era tutorials |
| 2025-09-15 | Support ended for the My Business Q&A API | Questions and answers features |
| 2025-11-03 | My Business Q&A API discontinued. Replacement: none | Any call to the Q&A endpoints, and Q&A notification types |
| 2026-04-01 | reviewReplyState readable on reviews | Code that equates a 200 with a live reply |
| 2026-04-20 | reviewMediaItems readable on reviews | Review UIs that drop reviewer photos and videos |
| 2026-07-01 | policyViolation included in ReviewReply | Rejection handling that has no reason to show |
| 2026-07-24 | reviewReplyUrl readable via reviews.get | Code that builds reply links by hand |
The 2026 rows come from the change log. The 2023 and 2025 rows come only from the sunset dates page, and the change log carries no entry for the Performance API, reportInsights or the Q&A shutdown, so read both pages when you audit.
The Performance API is the quiet one. It lives on a different host (businessprofileperformance.googleapis.com) and its path takes the bare form locations/{locationId}, not the accounts/{accountId}/locations/{locationId} form of the v4 review endpoints. Google's `getDailyMetricsTimeSeries` reference defines the path as {name=locations/*}, with the format "locations/{locationId}" where the id is "an unobfuscated listing id." Pass the v4 resource name and the path no longer matches the template.
For the review calls themselves (listing, batch reads, the verification requirement), the online reviews API guide covers them and this post does not repeat it.
Where the moderation state shows up in SocialAPI.ai
SocialAPI.ai covers Google Business Profile reviews through one API (see the Google platform page). Its Google reviews docs state that a reply returns state: PENDING, that a rejected reply carries reply.policy_violation, and that a review.updated webhook arrives with change set to reply_approved or reply_rejected. The model above is the Google behaviour underneath those fields.
Questions developers ask about Google review reply moderation
- Is a 200 from updateReply a published reply?
- No. Google's reference describes updateReply only as "Updates the reply to the specified review", and defines reviewReplyState as the moderation state of the reply. A reply is public when reviewReplyState reads APPROVED. Until then it is PENDING, and if moderation fails it is REJECTED.
- How long does a Google review reply stay PENDING?
- Google does not say. Neither the reviews reference nor the help page on managing reviews (both checked 18 October 2026) gives a duration or promises a push when the state changes. Show "awaiting approval" and read the review again later.
- Why was my Google review reply rejected?
- Since 2026-07-01 a rejected reply carries a policyViolation value, such as ADVERTISING_AND_SOLICITATION or PERSONAL_INFO. Google describes it as the policy violation that resulted in rejection, populated only when the state is REJECTED. Rejections before that date have no reason attached.
- Should I resubmit a rejected reply?
- Only after editing it. Google's help page says that if a reply isn't approved to be posted, you'll be asked to edit it. If the value is an account or profile one, such as LOCATION_SUSPENDED, fix the profile first, because rewording will not change the outcome.
- Can I send reviewReplyState myself?
- No. Google marks reviewReplyState and policyViolation as output only. You send the reply comment through updateReply and read both fields back from the review.
Every Google claim above traces to a page checked on 18 October 2026. Google, Business Profile API reference, accounts.locations.reviews (ReviewReply, State, PolicyViolation), Google, Business Profile API change log, Google, Business Profile API sunset dates, Google, Business Profile Performance API getDailyMetricsTimeSeries, Google, Manage customer reviews (Business Profile Help), Google, Prohibited and restricted content (Maps User Generated Content Policy), Google, Business Profile notification setup, SocialAPI.ai docs, Google reviews