Google Business Reviews
Read and reply to reviews on a connected Google Business Profile location. Both endpoints call the Google Business Profile API in real-time and refresh the stored access token automatically. Connect the Google account via OAuth first (the same connection used for Google Business posting — no extra permission is required).
List Reviews
- Method:
GET - Endpoint:
/api/uploadposts/google-business/reviews - Authentication: API Key —
Authorization: Apikey <YOUR_API_KEY>
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
user | string | Yes | The profile username that owns the connected Google Business account. |
location_id | string | No | Location to read, e.g. locations/222222222 or a full accounts/.../locations/.... Defaults to the account's selected location. |
pageSize | integer | No | Max reviews per page. |
pageToken | string | No | Pagination cursor from a previous response (nextPageToken). |
orderBy | string | No | Sort order, e.g. updateTime desc or rating desc. |
Example Request
curl 'https://api.upload-post.com/api/uploadposts/google-business/reviews?user=my-profile&pageSize=20' \
-H 'Authorization: Apikey YOUR_API_KEY'
Successful Response (200 OK)
{
"success": true,
"reviews": [
{
"name": "accounts/123456789/locations/222222222/reviews/AbcDef",
"reviewer": { "displayName": "Jane Doe" },
"starRating": "FIVE",
"comment": "Great service!",
"createTime": "2026-07-01T10:00:00Z",
"updateTime": "2026-07-01T10:00:00Z",
"reviewReply": { "comment": "Thanks Jane!", "updateTime": "2026-07-02T09:00:00Z" }
}
],
"averageRating": 4.7,
"totalReviewCount": 128,
"nextPageToken": "..."
}
| Field | Description |
|---|---|
reviews | Array of reviews. Each review's name is the full resource path used to reply. |
averageRating | Average star rating for the location. |
totalReviewCount | Total number of reviews for the location. |
nextPageToken | Present when more reviews are available; pass it as pageToken. |
Reply to a Review
Creates the owner reply to a review, or updates it if one already exists.
- Method:
PUT(also acceptsPOST) - Endpoint:
/api/uploadposts/google-business/reviews/reply - Authentication: API Key —
Authorization: Apikey <YOUR_API_KEY>
Body Parameters (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
user | String | Yes | The profile username that owns the connected Google Business account. |
comment | String | Yes | The public reply text. |
review_name | String | No* | Full review resource path from List Reviews (accounts/.../locations/.../reviews/{id}). |
review_id | String | No* | Review ID. Requires location_id to build the resource path. |
location_id | String | No | Location for the review when using review_id. |
* Provide either review_name (preferred) or review_id + location_id.
Example Request
curl -X PUT https://api.upload-post.com/api/uploadposts/google-business/reviews/reply \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"user": "my-profile",
"review_name": "accounts/123456789/locations/222222222/reviews/AbcDef",
"comment": "Thank you for the kind words — see you again soon!"
}'
Successful Response (200 OK)
{
"success": true,
"reply": { "comment": "Thank you for the kind words — see you again soon!", "updateTime": "2026-07-18T12:00:00Z" }
}
Notes:
- Reviews and replies use the Google Business Profile v4 API. Only verified locations can receive replies.
- Reviews cannot be deleted via the API, and star ratings cannot be changed — you can only reply.
- Token refresh is handled automatically; connect the Google account via OAuth first.