Publish a Custom Review
How to upload external reviews to Guesty
Overview
Guesty lets you upload external reviews from channels that Guesty doesn't automatically ingest. You will be able to use these reviews with your booking websites and for analytical reports. There are two parts:
- Create a custom channel name
- Publish a custom review
Step 1: Create a custom channel name
This feature is unrelated to the existing reservation source names. You need to define a separate custom name for each relevant (direct) review source. Do not use this to upload reviews for Airbnb, Booking.com, Vrbo, or any other channel that integrates directly into Guesty and from which Guesty imported public reviews.
| Method | Key URL |
|---|---|
| POST | /reviews/custom-channels |
Sample request
curl --location 'https://open-api.guesty.com/v1/reviews/custom-channels' \
--header 'content-type: application/json' \
--header 'Authorization: Bearer {token}' \
--data '
{
"customChannelName": "affiliate_website_a"
}
'Sample response**
201 Created without a payload.
Step 2: Publish a custom review
Now that you have a custom review name, you can proceed to publish reviews.
| Method | Key URL |
|---|---|
| POST | /reviews/custom-channel-reviews |
Sample request
curl --location 'https://open-api.guesty.com/v1/reviews/custom-channel-reviews' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'Authorization: Bearer {token}' \
--data '
{
"categoryRatings": {
"accuracy": 5,
"cleanliness": 4,
"communication": 4,
"location": 3
},
"customChannelName": "affiliate_website_a",
"internalReservationId": "6614f47645e1aae104df2e05",
"externalReviewId": "afwr_103",
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-15T10:30:00.000Z",
"rating": 5,
"bodyText": "Excellent location, everything was provided for a comfortable stay, and there are restaurants within walking distance.",
"reviewerName": "Jon Jonzz",
"titleText": "Excellent location",
"locale": "en-US"
}
'Sample response
{
"data": {
"accountId": "66053c21dd2adbdfb3b383b7",
"externalReviewId": "afwr_103",
"channelId": "custom",
"listingId": "66054019764cbb000f37c450",
"reservationId": "6614f47645e1aae104df2e05",
"guestId": "660d12ae52eba69330c33755",
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-15T10:30:00.000Z",
"createdAtGuesty": "2026-03-16T18:16:44.719Z",
"updatedAtGuesty": "2026-03-17T09:29:53.955Z",
"rawReview": {
"categoryRatings": {
"accuracy": 5,
"cleanliness": 4,
"communication": 4,
"location": 3
},
"customChannelName": "affiliate_website_a",
"internalReservationId": "6614f47645e1aae104df2e05",
"externalReviewId": "afwr_103",
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-15T10:30:00.000Z",
"rating": 5,
"bodyText": "Excellent location, everything was provided for a comfortable stay, and there are restaurants within walking distance.",
"reviewerName": "Jon Jonzz",
"titleText": "Excellent location",
"locale": "il"
},
"contents": {
"body": "Excellent location, everything was provided for a comfortable stay, and there are restaurants within walking distance.",
"reviewerName": "Jon Jonzz",
"title": "Excellent location",
"locale": "en-US",
"rating": 10
},
"_id": "69b91f115bac66a7c25ff644",
"customChannelName": "affiliate_website_a"
}
}Things to note
rating: The maximum score for the overall or average rating is 5.categoryRatings: These are custom metrics that you define for yourself. The maximum score for each rating is 5.externalReviewId: A non-empty string containing only lowercase letters (a–z), digits (0–9), and underscores (_).locale: The review IETF BCP 47 language tag or ISO 3166 alpha 2 country code .
Troubleshooting
Custom channel was not found
This feature has no relation to existing reservation source names. You must first define a custom review channel name and provide it as the customChannelName in the body of your custom review request.
Bad request
Please refer to the "Things to Note" section above and ensure you are providing supported values in the required syntax for those fields in your request.
Updated about 15 hours ago
