Skip to Content
API ReferenceInbox — Reviews

Inbox — Reviews

Manage Google Business Profile (GMB) reviews from the VoxBurst inbox. These endpoints let you list reviews with filtering and pagination, reply to reviews via the Google Business API, and mark reviews as read.

Review endpoints are scoped to the authenticated workspace. Only reviews from GMB accounts connected to the workspace are returned.

Base URL

https://api.voxburst.io/v1/inbox/reviews

List Reviews

GET /v1/inbox/reviews

Returns a paginated list of Google Business Profile reviews for the workspace. Each call triggers a lazy sync of new reviews from the GMB API (debounced per 5 minutes per account). Sync failures are logged and do not block the response — previously synced reviews are always returned.

Auth: Bearer token, workspace-scoped

Query Parameters

ParameterTypeDefaultDescription
pageinteger1Page number (min 1)
limitinteger20Results per page (1–100)
accountIdstringFilter by a specific connected GMB account ID
locationPathstringFilter by GMB location resource path (e.g. accounts/123/locations/456)
ratingintegerFilter by star rating (1–5)
unreadOnlybooleanWhen true, returns only reviews where read is false
unrepliedOnlybooleanWhen true, returns only reviews where replied is false
curl "https://api.voxburst.io/v1/inbox/reviews?limit=20&unrepliedOnly=true" \ -H "Authorization: Bearer eyJexample..."

Response (200)

{ "data": [ { "id": "rvw_example456", "workspaceId": "wsp_example123", "accountId": "acc_example789", "platformReviewId": "accounts/123456789/locations/987654321/reviews/AbCdEfGhIj", "reviewerName": "Jane Smith", "reviewerAvatarUrl": "https://lh3.googleusercontent.com/example", "rating": 5, "content": "Excellent service — the team was responsive and professional.", "locationPath": "accounts/123456789/locations/987654321", "locationName": "Acme Corp - Main St", "platformCreatedAt": "2026-06-22T10:00:00Z", "createdAt": "2026-06-22T10:00:05Z", "read": false, "replied": false, "repliedAt": null, "replyContent": null, "account": { "id": "acc_example789", "username": "acmecorp@gmail.com", "displayName": "Acme Corp", "platform": "GOOGLE_BUSINESS" } } ], "meta": { "total": 12, "page": 1, "limit": 20, "hasMore": false } }

Response Fields — Review Object

FieldTypeDescription
idstringVoxBurst review record ID
workspaceIdstringWorkspace this review belongs to
accountIdstringID of the connected GMB account
platformReviewIdstringGMB API resource name for this review
reviewerNamestringDisplay name of the reviewer
reviewerAvatarUrlstring | nullURL of the reviewer’s profile photo, or null if unavailable
ratingintegerStar rating (1–5)
contentstring | nullReview text, or null if the reviewer left only a star rating
locationPathstringGMB location resource path this review belongs to
locationNamestring | nullDisplay name of the business location, or null if not synced
platformCreatedAtstringISO 8601 timestamp when the review was posted on Google
createdAtstringISO 8601 timestamp when VoxBurst synced this review
readbooleanWhether the review has been marked as read
repliedbooleanWhether a reply has been posted to this review
repliedAtstring | nullISO 8601 timestamp when the reply was posted, or null
replyContentstring | nullText of the reply that was posted, or null
accountobjectSummary of the connected GMB account
account.idstringAccount ID
account.usernamestringGoogle account username
account.displayNamestringDisplay name
account.platformstringAlways "GOOGLE_BUSINESS"

Response Fields — Meta Object

FieldTypeDescription
totalintegerTotal matching reviews across all pages
pageintegerCurrent page number
limitintegerResults per page
hasMorebooleanWhether additional pages exist

Get Review Stats

GET /v1/inbox/reviews/stats

Returns aggregate unread and unreplied review counts for the workspace.

Auth: Bearer token, workspace-scoped

curl "https://api.voxburst.io/v1/inbox/reviews/stats" \ -H "Authorization: Bearer eyJexample..."

Response (200)

{ "unreadCount": 3, "unrepliedCount": 7, "totalCount": 12 }
FieldTypeDescription
unreadCountintegerReviews where read is false
unrepliedCountintegerReviews where replied is false
totalCountintegerTotal reviews synced for this workspace

List Review Locations

GET /v1/inbox/reviews/locations

Returns distinct location paths from synced reviews. Use this to populate location filter dropdowns.

Auth: Bearer token, workspace-scoped

curl "https://api.voxburst.io/v1/inbox/reviews/locations" \ -H "Authorization: Bearer eyJexample..."

Response (200)

{ "locations": [ { "locationPath": "accounts/123456789/locations/987654321", "locationName": "Acme Corp - Main St" }, { "locationPath": "accounts/123456789/locations/111222333", "locationName": "Acme Corp - Oak Ave" } ] }
FieldTypeDescription
locationsobject[]Distinct locations with synced reviews
locations[].locationPathstringGMB location resource path — use as locationPath filter on GET /v1/inbox/reviews
locations[].locationNamestringDisplay name of the business location

Reply to a Review

POST /v1/inbox/reviews/:id/reply

Posts a reply to a Google Business Profile review via the GMB API. On success, sets replied: true, repliedAt, replyContent, and read: true on the review record.

Auth: Bearer token, workspace-scoped

Path Parameters

ParameterDescription
idVoxBurst review record ID (from the id field in the review object)

Request Body

FieldTypeRequiredDescription
commentstringYesReply text (1–4,096 characters)
curl -X POST "https://api.voxburst.io/v1/inbox/reviews/rvw_example456/reply" \ -H "Authorization: Bearer eyJexample..." \ -H "Content-Type: application/json" \ -d '{ "comment": "Thank you for the kind words! We look forward to seeing you again." }'

Response (200)

Returns the updated review object. The replied, repliedAt, replyContent, and read fields reflect the new state.

{ "data": { "id": "rvw_example456", "workspaceId": "wsp_example123", "accountId": "acc_example789", "platformReviewId": "accounts/123456789/locations/987654321/reviews/AbCdEfGhIj", "reviewerName": "Jane Smith", "reviewerAvatarUrl": "https://lh3.googleusercontent.com/example", "rating": 5, "content": "Excellent service — the team was responsive and professional.", "locationPath": "accounts/123456789/locations/987654321", "locationName": "Acme Corp - Main St", "platformCreatedAt": "2026-06-22T10:00:00Z", "createdAt": "2026-06-22T10:00:05Z", "read": true, "replied": true, "repliedAt": "2026-06-27T14:30:00Z", "replyContent": "Thank you for the kind words! We look forward to seeing you again.", "account": { "id": "acc_example789", "username": "acmecorp@gmail.com", "displayName": "Acme Corp", "platform": "GOOGLE_BUSINESS" } } }

Error Codes

HTTPCodeDescription
404NOT_FOUNDReview not found or does not belong to this workspace
400VALIDATION_ERRORcomment is empty or exceeds 4,096 characters
400VALIDATION_ERRORAssociated GMB account token is missing or expired — prompt the user to reconnect the account

Mark Review as Read

PATCH /v1/inbox/reviews/:id/read

Marks a review as read. No request body is required.

Auth: Bearer token, workspace-scoped

Path Parameters

ParameterDescription
idVoxBurst review record ID
curl -X PATCH "https://api.voxburst.io/v1/inbox/reviews/rvw_example456/read" \ -H "Authorization: Bearer eyJexample..."

Response (200)

Returns the updated review object with read: true.

{ "data": { "id": "rvw_example456", "read": true, "..." } }

Error Codes

HTTPCodeDescription
404NOT_FOUNDReview not found or does not belong to this workspace
Last updated on