Skip to content

Get single review

GET
/api/managing-entity/{managingEntityIdentifier}/extranet/review/{reviewIdentifier}
curl --request GET \
--url https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/extranet/review/4d7c2a6b-9e3f-4b1a-8d0c-7f5e1a9b3c62 \
--header 'Authorization: Bearer <token>' \
--header 'Wink-Version: 2.0'

Loads a single guest review by its identifier, including the guest’s text, ratings, images, and the hotel’s response if any.

managingEntityIdentifier
required
string
""

Managing entity identifier that owns the review

Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
reviewIdentifier
required
string
""

Review identifier to retrieve

Example
4d7c2a6b-9e3f-4b1a-8d0c-7f5e1a9b3c62
Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Review retrieved successfully.

Media type application/json

Persisted guest review document recording a traveler’s experience at a property after checkout.

object
id

Document UUID

string format: uuid
""
createdDate

Datetime this record was first created

string format: date-time
""
lastUpdate

Datetime this record was last updated

string format: date-time
""
version

Version property that shows how many times this document has been persisted. Document will not persist if the version property is less than current version property in the system. Result in an optimistic locking exception.

integer format: int64
""
bookingIdentifier

Booking identifier this review is associated with.

string format: uuid
""
hotelIdentifier

Property (hotel) identifier this review is for.

string format: uuid
""
user

Guest who submitted the review.

object
userIdentifier

User identifier

string format: uuid
""
firstName

Guest’s first name.

string
""
lastName

Guest’s last name.

string
""
email

Guest’s email address.

string format: email
""
telephone

Guest’s phone number.

string
"" /^\+?[1-9]\d{1,14}$/
fullName

Guest’s full name.

string
""
reviewDate

Date and time the review was submitted.

string format: date-time
""
averageScore

Average rating across all question answers (0-10 scale).

number format: double
""
answers

Guest’s answers to each review question with their scores.

Array<object>

A guest’s recorded answer to a single review question, including the score and question metadata.

object
questionIdentifier
required

Review question identifier that this answer responds to.

string format: uuid
"" >= 1 characters
category
required

Category of the question (e.g., COMFORT, SERVICE, VALUE).

string
""
Allowed values: COMFORT CONDITION SERVICE ENVIRONMENT FACILITIES LOCATION LIFESTYLE VALUE FOOD ROOM
sort
required

Display order of this answer within the review.

integer format: int32
""
value
required

Guest’s numeric rating for this question on a 0-10 scale.

integer format: int32
""
messageFromGuest

Private feedback message from guest to hotel manager. Not publicly displayed.

string
""
responseFromHotel

Hotel’s public response to the guest review.

string
""
imageIdentifier

Cloudinary image identifier for guest’s photo from their stay.

string
""
text

Guest’s written review text.

string
""
approvedText

Hotel has approved this review text for public display on their profile.

boolean
approvedImage

Hotel has approved the guest’s photo for public display on their profile.

boolean
likes

User identifiers who ‘liked’ this review.

Array<string>
roomNumber

Guest’s room number during their stay.

string
""
roomRating

Guest’s personal rating of their room on a 0-10 scale.

integer format: int32
""
responded

Hotel has submitted a response to this review.

boolean
key
additional properties
""
Example
{
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12",
"version": 3,
"bookingIdentifier": "f4d1c8e5-2b9a-4f3d-9e7c-1b6a5d3f8c92",
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"user": {
"userIdentifier": "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
"firstName": "Alexandra",
"lastName": "Beaumont",
"email": "[email protected]",
"telephone": "+66 2 126 8866",
"fullName": "Alexandra Beaumont"
},
"reviewDate": "2026-01-20T11:00:00",
"averageScore": 8.7,
"answers": [
{
"questionIdentifier": "4d7c2a6b-9e3f-4b1a-8d0c-7f5e1a9b3c62",
"category": "SERVICE",
"sort": 1,
"value": 9
},
{
"questionIdentifier": "5e8d3b7a-2f1c-4a9e-b6d0-8c4f2b0e7a15",
"category": "COMFORT",
"sort": 2,
"value": 8
}
],
"messageFromGuest": "Dear GM, I would like to say thank you so much for taking the time to show my husband and me around the premises and the secret cave behind the property.",
"responseFromHotel": "Thank you so much for taking the time to share such wonderful feedback about your stay at The Siam Residences. We're delighted that you and your husband had such a memorable experience. We look forward to welcoming you back soon!",
"imageIdentifier": "wink/review/siam-residences-2026-01-14-xyz123abc",
"text": "Our stay was amazing! The staff made us feel truly welcomed, and the traditional Thai breakfast was exceptional. Can recommend highly to all. Felt like home.",
"approvedText": true,
"approvedImage": false,
"likes": [
"c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84"
],
"roomNumber": "501",
"roomRating": 9,
"responded": true
}

Bad Request — missing or invalid request parameter or body

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Unauthorized — authentication is required or the session has expired

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Forbidden — authenticated but lacking the required permission or scope

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Not Found — the requested resource does not exist

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Method Not Allowed — the HTTP verb is not supported on this endpoint

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Unsupported Media Type — use application/json

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Internal Server Error — an unexpected failure occurred on the server

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Service Unavailable — a downstream dependency is unreachable

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example