Skip to content

List property reviews

POST
/api/managing-entity/{managingEntityIdentifier}/extranet/review/grid
curl --request POST \
--url https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/extranet/review/grid \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data null

Returns a paginated, filterable grid of guest reviews for the property, including filters by date, guest name, rating, and approval status. Results are wrapped in a standard Spring Page envelope.

managingEntityIdentifier
required
string
""

Managing entity identifier to show reviews for

Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Pageable grid state including page number, page size, sort fields, and optional filters such as date range, guest name, rating, and approval status

Media type application/json

Pagination, sorting, filtering, and grouping state used to query a paged result set.

object
skip

Number of records to be skipped by the pager.

integer format: int32
0
Example
0
take

Number of records to take.

integer format: int32
default: 30 >= 1 <= 180
Example
10
sort

Descriptors used for sorting result set.

Array<object>
""

Descriptor that defines the sort direction and field for ordering a result set.

object
dir

Descriptors used for sorting result set

string
""
Allowed values: asc desc
Example
asc
field

Data set field to sort on

string
""
Example
hotel.name
Example
{
"dir": "asc",
"field": "hotel.name"
}
filter

Descriptors used for filtering result set

object
logic

Whether to filter inclusively or exclusively

string
""
Allowed values: and or
Example
and
filters

Descriptors used for filtering the result set

Array<object>

A single field-level filter criterion that specifies what to match and how to compare it.

object
field
required

Field name to filter on

string
"" >= 1 characters
Example
hotel.name
operator
required

Filter operator to use on field

string
""
Allowed values: neq eq contains doesnotcontain isnull isnotnull isempty isnotempty startswith endswith gte lte gt lt in nin
Example
startsWith
value

Value to filter dataset against

""
Example
Happy Res
ignoreCase

Make filter comparison case insensitive. Default: Case sensitive

boolean
Example
true
Example
{
"field": "hotel.name",
"operator": "startsWith",
"value": "Happy Res",
"ignoreCase": true
}
Example
{
"logic": "and",
"filters": [
{
"field": "hotel.name",
"operator": "startsWith",
"value": "Happy Res",
"ignoreCase": true
}
]
}
group

Descriptors to group result sets by.

Array<object>
""

Descriptor that defines how a result set should be grouped, including sort direction and optional aggregate calculations.

object
field

Field to group data set on

string
""
Example
createdDate
dir

Group sort direction

string
""
Allowed values: asc desc
Example
asc
aggregates

Primitive aggregate data points

Array<object>

Descriptor that defines an aggregate function to apply to a specific field in a grouped result set.

object
field

Field to run aggregate function on

string
""
Example
hotel.bookings
aggregate

Aggregate function

string
""
Allowed values: count sum average min max
Example
count
Example
{
"field": "hotel.bookings",
"aggregate": "count"
}
Example
{
"field": "createdDate",
"dir": "asc",
"aggregates": [
{
"field": "hotel.bookings",
"aggregate": "count"
}
]
}
Example
{
"skip": 0,
"take": 10,
"sort": [
{
"dir": "asc",
"field": "hotel.name"
}
],
"filter": {
"logic": "and",
"filters": [
{
"field": "hotel.name",
"operator": "startsWith",
"value": "Happy Res",
"ignoreCase": true
}
]
},
"group": [
{
"field": "createdDate",
"dir": "asc",
"aggregates": [
{
"field": "hotel.bookings",
"aggregate": "count"
}
]
}
]
}

Paginated list of reviews retrieved successfully. Each page element is a Review object.

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