Reviews
Reviews are collected from the platforms connected to a Venue (Google, Facebook and Tripadvisor). You can read and reply to the reviews of the Venues whose main RMS is your integration. All requests use your API key as a Bearer token, see API Basics.
Object definition
| Key | Type | Status | Description |
|---|---|---|---|
| id | String | Mandatory | Unique identifier for the Review. |
| platform | String | Mandatory | Platform where the review was posted, for example google, facebook or tripadvisor. |
| title | String | Optional | Title of the review. May be null. |
| comment | String | Optional | Text of the review. May be null. |
| rating | Integer | Mandatory | Rating given by the reviewer. |
| reviewerProfilePhoto | String | Optional | URL of the reviewer's profile photo. May be null. |
| reviewerName | String | Optional | Name of the reviewer. May be null. |
| reply | Object | Optional | Owner reply to the review, see Reply object. Null when there is no reply. |
| createdAt | String | Mandatory | Date and time of the review (ISO 8601 with offset, e.g. 2026-10-14T09:31:00+00:00). |
| venue[id] | String | Mandatory | Mozrest ID of the Venue. |
| venue[externalId] | String | Mandatory | Identifier for the Venue in the Partner system. |
| locale | String | Optional | Language of the review. May be null. |
| meta | Object | Optional | Platform specific extra data, may be null. |
| replyUrl | String | Optional | Link to the review on the platform. May be null. |
Reply object
| Key | Type | Status | Description |
|---|---|---|---|
| id | String | Mandatory | Unique identifier for the Reply. |
| comment | String | Mandatory | Text of the reply. |
| replyExternalId | String | Optional | Identifier of the reply on the platform. May be null. |
| user[id] | String | Optional | Identifier of the user who wrote the reply. user is null when unknown. |
| user[fullName] | String | Optional | Full name of the user who wrote the reply. |
| replyLang | String | Optional | Language of the reply. May be null. |
| replyOwnerUsername | String | Optional | String. May be null. |
| replyOwnerRole | String | Optional | String. May be null. |
| aiGenerated | Boolean | Optional | Whether the reply was generated automatically. May be null. |
| sentToUser | Boolean | Optional | Boolean. May be null. |
| createdAt | String | Mandatory | Date and time of the reply (ISO 8601 with offset). |
Error Responses
These errors apply to all the endpoints on this page. Error bodies have the form {"message": "...", "code": 404}.
| Status | When |
|---|---|
400 Bad Request | A parameter is missing or invalid. |
401 Unauthorized | The API key is missing or not valid. |
403 Forbidden | Your credentials are not allowed to perform the action, for example read-only credentials sending a reply. |
404 Not Found | Venue not found, You are not allowed to access this venue (the Venue's main RMS is not your integration), or the review does not belong to this Venue. |
Get Reviews of a Venue
This endpoint retrieves the reviews of a Venue, newest first by default.
Endpoint
GET https://api-sandbox.mozrest.com/v1/rms/reviews/{venueId}
Query Parameters
| Parameter | Status | Description |
|---|---|---|
| venueId | Mandatory | Mozrest ID of the Venue (path parameter). The Partner's Venue ID is not accepted here. |
| offset | Optional | Index of the first review to return. Default 0. |
| limit | Optional | Number of reviews to return, 1 to 50. Default 10. Values above 50 return 50 reviews at most. |
| sortby[createdAt] | Optional | Sort by review date, ASC or DESC. Default DESC. |
| sortby[rating] | Optional | Sort by rating, ASC or DESC. |
| filters[from] | Optional | Reviews created on or after this date (YYYY-MM-DD). |
| filters[till] | Optional | Reviews created on or before this date (YYYY-MM-DD). |
| filters[status] | Optional | replied or not_replied. |
| filters[rating] | Optional | positive (above 3), negative (below 3), neutral (3), or an exact value from 1 to 5. |
| filters[channel] | Optional | Platform of the review: google, facebook or tripadvisor. |
| filters[hasComment] | Optional | When present, with any value, only reviews with a comment are returned. |
| filters[reply] | Optional | true returns only reviews with a reply. Any other value returns only reviews without a reply. |
Any other filter is ignored.
Example Request:
curl GET "https://api-sandbox.mozrest.com/v1/rms/reviews/6543a1b2c3d4e5f6a7b8c9d0?offset=0&limit=10&sortby[createdAt]=DESC&filters[status]=not_replied&filters[channel]=google" \
-H "Authorization: Bearer {{api_key}}"
Example Response:
{
"total": 1,
"data": [
{
"id": "6543a1b2c3d4e5f6a7b8c9d1",
"platform": "google",
"title": null,
"comment": "Great food and friendly staff.",
"rating": 5,
"reviewerProfilePhoto": "https://images.example.com/profile/jane.png",
"reviewerName": "Jane D.",
"reply": null,
"createdAt": "2026-10-14T09:31:00+00:00",
"venue": {
"id": "6543a1b2c3d4e5f6a7b8c9d0",
"externalId": "venue-123"
},
"locale": "en",
"meta": null,
"replyUrl": "https://reviews.example.com/review/6543a1b2"
}
]
}
Get a Specific Review
This endpoint retrieves one review of a Venue.
Endpoint
GET https://api-sandbox.mozrest.com/v1/rms/reviews/{venueId}/{reviewId}
Query Parameters
| Parameter | Status | Description |
|---|---|---|
| venueId | Mandatory | Mozrest ID of the Venue. |
| reviewId | Mandatory | ID of the Review. |
Returns 404 Not Found if the review does not exist or does not belong to this Venue.
Example Request:
curl GET "https://api-sandbox.mozrest.com/v1/rms/reviews/6543a1b2c3d4e5f6a7b8c9d0/6543a1b2c3d4e5f6a7b8c9d1" \
-H "Authorization: Bearer {{api_key}}"
Example Response:
{
"id": "6543a1b2c3d4e5f6a7b8c9d1",
"platform": "google",
"title": null,
"comment": "Great food and friendly staff.",
"rating": 5,
"reviewerProfilePhoto": "https://images.example.com/profile/jane.png",
"reviewerName": "Jane D.",
"reply": {
"id": "6543a1b2c3d4e5f6a7b8c9d2",
"comment": "Thank you Jane, see you soon!",
"replyExternalId": null,
"user": null,
"replyLang": "en",
"replyOwnerUsername": null,
"replyOwnerRole": null,
"aiGenerated": false,
"sentToUser": null,
"createdAt": "2026-10-15T10:02:00+00:00"
},
"createdAt": "2026-10-14T09:31:00+00:00",
"venue": {
"id": "6543a1b2c3d4e5f6a7b8c9d0",
"externalId": "venue-123"
},
"locale": "en",
"meta": null,
"replyUrl": "https://reviews.example.com/review/6543a1b2"
}
Reply to a Review
This endpoint publishes the owner reply on Google and Facebook. Tripadvisor replies are saved in Mozrest but are not published on Tripadvisor. Posting again replaces the existing reply. Replies cannot be deleted through the API.
Requires write access: read-only credentials receive 403 Forbidden.
Endpoint
POST https://api-sandbox.mozrest.com/v1/rms/reviews/{venueId}/{reviewId}/reply
Query Parameters
| Parameter | Status | Description |
|---|---|---|
| venueId | Mandatory | Mozrest ID of the Venue. |
| reviewId | Mandatory | ID of the Review. |
Body Parameters
| Parameter | Status | Description |
|---|---|---|
| comment | Mandatory | Text of the reply. |
On success the endpoint responds 201 Created with an empty body.
Example Request:
curl POST "https://api-sandbox.mozrest.com/v1/rms/reviews/6543a1b2c3d4e5f6a7b8c9d0/6543a1b2c3d4e5f6a7b8c9d1/reply" \
-H "Authorization: Bearer {{api_key}}" \
-H "Content-Type: application/json" \
--data-raw '{
"comment": "Thank you Jane, see you soon!"
}'
Example Response:
201 Created (empty body)
Connect a review platform
To collect reviews, the restaurant connects each platform (Google, Facebook or Tripadvisor) to its Venue. The flow is the same for all three platforms:
- You request a connection link for the Venue and the platform.
- You send the restaurant user to that link.
- Mozrest Connect guides the restaurant through the connection:
- Google: sign in with Google and pick the Business Profile location.
- Facebook: sign in with Facebook and pick the page.
- Tripadvisor: paste the link to the restaurant's Tripadvisor page.
- When the restaurant finishes, Mozrest Connect sends the user back to your
returnUrl, or shows a success screen when noreturnUrlwas sent.
After the connection, reviews are imported automatically and appear in Get Reviews of a Venue. New reviews are notified as described in New review notifications.
Get a connection link
Requires write access: read-only credentials receive 403 Forbidden.
Endpoint
POST https://api-sandbox.mozrest.com/v1/rms/reviews/connect/{venueId}
Query Parameters
| Parameter | Status | Description |
|---|---|---|
| venueId | Mandatory | Mozrest ID of the Venue. |
Body Parameters
| Parameter | Status | Description |
|---|---|---|
| channel | Mandatory | google, facebook or tripadvisor. |
| returnUrl | Optional | Page the restaurant user is sent back to when the connection is complete. Must be an HTTPS URL. |
Send the restaurant user to connectUrl. Request a new link each time a restaurant wants to connect a platform.
If the platform is already connected for the Venue, the response is {"connected": true} and no link is returned.
Error Responses
| Status | When |
|---|---|
400 Bad Request | returnUrl must be an https URL, or channel is missing or not supported. |
403 Forbidden | Read-only credentials. |
404 Not Found | Venue not found or You are not allowed to access this venue. |
Example Request:
curl POST "https://api-sandbox.mozrest.com/v1/rms/reviews/connect/6543a1b2c3d4e5f6a7b8c9d0" \
-H "Authorization: Bearer {{api_key}}" \
-H "Content-Type: application/json" \
--data-raw '{
"channel": "google",
"returnUrl": "https://partner.example.com/reviews/connected"
}'
Example Response:
{
"connectUrl": "https://connect.mozrest.com?hash=...&venueId=6543a1b2c3d4e5f6a7b8c9d0&platform=google&redirect_url=..."
}
Example Response (platform already connected):
{
"connected": true
}
Return to your page
When the restaurant completes the connection and you sent a returnUrl, the browser is redirected to it with these query parameters.
| Parameter | Description |
|---|---|
| venueId | Mozrest ID of the Venue. |
| platform | google, facebook or tripadvisor. |
| status | connected. |
Example: https://partner.example.com/reviews/connected?venueId=6543a1b2c3d4e5f6a7b8c9d0&platform=google&status=connected
Testing
Google has no sandbox environment, so the Google connection can only be tested in production. Facebook and Tripadvisor connections can be tested in sandbox.
Google notes
- Google only returns reviews for verified Business Profiles. An unverified profile can be connected but has no reviews to import.
- Connecting sets the review notifications of the Google account to Mozrest. This replaces any notification destination another tool had set on that Google account.
Disconnect a platform
Removes the connection for one platform and the Venue's reviews from that platform from Mozrest. It does not remove the access granted on the platform itself; the restaurant can remove it from its account settings on that platform.
Endpoint
POST https://api-sandbox.mozrest.com/v1/rms/reviews/disconnect/{venueId}
Query Parameters
| Parameter | Status | Description |
|---|---|---|
| venueId | Mandatory | Mozrest ID of the Venue. |
Body Parameters
| Parameter | Status | Description |
|---|---|---|
| channel | Mandatory | google, facebook or tripadvisor. |
On success the endpoint responds 200 OK with an empty body.
Example Request:
curl POST "https://api-sandbox.mozrest.com/v1/rms/reviews/disconnect/6543a1b2c3d4e5f6a7b8c9d0" \
-H "Authorization: Bearer {{api_key}}" \
-H "Content-Type: application/json" \
--data-raw '{
"channel": "google"
}'
New review notifications
Mozrest sends a notification to the endpoint configured for your integration by Mozrest (contact Mozrest integrations), using the method and authentication configured (Bearer token, Basic, or custom headers).
| Action | Sent when | Endpoint |
|---|---|---|
create | A new review is received. | Endpoint configured for new reviews. |
reply_create | Mozrest detects an owner reply on the platform. | Same endpoint as create. |
update | A review already in Mozrest changes. | Endpoint configured for review updates. |
The data object has the same keys as the review object except reply and replyUrl. reply_create notifications also include reply with only id and comment. In notifications, createdAt is sent as an object, not as a string.
{
"entity": "review",
"entityId": "6543a1b2c3d4e5f6a7b8c9d1",
"action": "create",
"data": {
"id": "6543a1b2c3d4e5f6a7b8c9d1",
"platform": "google",
"title": null,
"comment": "Great food and friendly staff.",
"rating": 5,
"reviewerProfilePhoto": "https://images.example.com/profile/jane.png",
"reviewerName": "Jane D.",
"createdAt": {
"date": "2026-10-14 09:31:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"venue": {
"id": "6543a1b2c3d4e5f6a7b8c9d0",
"externalId": "venue-123"
},
"meta": null,
"locale": "en"
}
}
Each notification is sent once, with no automatic retry. Use Get Reviews of a Venue to reconcile. The same reply can be notified more than once.
For Google, reviews and replies that already existed when the Venue was connected (the imported history) do not trigger notifications. Only reviews and replies posted after the connection do. A review posted on Google before the connection was completed is treated as history.
Limits
Mozrest does not currently apply a per-partner rate limit to these endpoints. Replies and Google data calls are subject to Google Business Profile API quotas on Mozrest's Google Cloud project, which is shared across all Mozrest customers (by default 300 requests per minute per API, and Google allows at most 10 edits per minute per Business Profile). Source: Google Business Profile API limits. Please pace requests.