List property reviews
const url = 'https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/extranet/review/grid';const options = { method: 'POST', headers: { 'Wink-Version': '2.0', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: 'null'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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 nullReturns 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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Managing entity identifier to show reviews for
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69Header Parameters
Section titled “Header Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”Pageable grid state including page number, page size, sort fields, and optional filters such as date range, guest name, rating, and approval status
Pagination, sorting, filtering, and grouping state used to query a paged result set.
object
Descriptors used for filtering result set
object
Descriptors used for filtering the result set
A single field-level filter criterion that specifies what to match and how to compare it.
object
Field name to filter on
Example
hotel.nameMake filter comparison case insensitive. Default: Case sensitive
Example
trueFilter operator to use on field
Example
startsWithValue to filter dataset against
Example
Happy ResExample
{ "field": "hotel.name", "ignoreCase": true, "operator": "startsWith", "value": "Happy Res"}Whether to filter inclusively or exclusively
Example
andExample
{ "filters": [ { "field": "hotel.name", "ignoreCase": true, "operator": "startsWith", "value": "Happy Res" } ], "logic": "and"}Descriptors to group result sets by.
Descriptor that defines how a result set should be grouped, including sort direction and optional aggregate calculations.
object
Primitive aggregate data points
Descriptor that defines an aggregate function to apply to a specific field in a grouped result set.
object
Aggregate function
Example
countField to run aggregate function on
Example
hotel.bookingsExample
{ "aggregate": "count", "field": "hotel.bookings"}Group sort direction
Example
ascField to group data set on
Example
createdDateExample
{ "aggregates": [ { "aggregate": "count", "field": "hotel.bookings" } ], "dir": "asc", "field": "createdDate"}Number of records to be skipped by the pager.
Example
0Descriptors used for sorting result set.
Descriptor that defines the sort direction and field for ordering a result set.
object
Descriptors used for sorting result set
Example
ascData set field to sort on
Example
hotel.nameExample
{ "dir": "asc", "field": "hotel.name"}Number of records to take.
Example
10Example
{ "filter": { "filters": [ { "field": "hotel.name", "ignoreCase": true, "operator": "startsWith", "value": "Happy Res" } ], "logic": "and" }, "group": [ { "aggregates": [ { "aggregate": "count", "field": "hotel.bookings" } ], "dir": "asc", "field": "createdDate" } ], "skip": 0, "sort": [ { "dir": "asc", "field": "hotel.name" } ], "take": 10}Responses
Section titled “Responses”Paginated list of reviews retrieved successfully. Each page element is a ReviewLightweight object.
Owned pagination envelope: a page of content plus flat page metadata.
object
The elements on this page.
Lightweight projection of a guest review, containing all publicly visible review data and metadata.
object
Guest’s answers to each review question with their scores.
A guest’s recorded answer to a single review question, including the score and question metadata.
object
Category of the question (e.g., COMFORT, SERVICE, VALUE).
Review question identifier that this answer responds to.
Display order of this answer within the review.
Guest’s numeric rating for this question on a 0-10 scale.
Hotel has approved the guest’s photo for public display on their profile.
Hotel has approved this review text for public display on their profile.
Average rating across all question answers (0-10 scale).
Booking identifier this review is associated with.
Datetime this record was first created
Property (hotel) identifier this review is for.
Unique identifier for this record.
Cloudinary image identifier for guest’s photo from their stay.
Datetime this record was last updated
User identifiers who ‘liked’ this review.
Private feedback message from guest to hotel manager. Not publicly displayed.
Hotel has submitted a response to this review.
Hotel’s public response to the guest review.
Date and time the review was submitted.
Guest’s room number during their stay.
Guest’s personal rating of their room on a 0-10 scale.
Guest’s written review text.
Guest who submitted the review.
object
Guest’s email address.
Guest’s first name.
Guest’s full name.
Guest’s last name.
Guest’s phone number.
User identifier
Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.
Whether this is the first page.
Whether this is the last page.
Zero-based index of this page.
Number of elements on this page.
The requested page size.
Total number of elements across all pages.
Total number of pages for the current page size.
Example
{ "content": [ { "answers": [ { "category": "SERVICE", "questionIdentifier": "4d7c2a6b-9e3f-4b1a-8d0c-7f5e1a9b3c62", "sort": 1, "value": 7 } ], "approvedImage": false, "approvedText": true, "averageScore": 8.7, "bookingIdentifier": "f4d1c8e5-2b9a-4f3d-9e7c-1b6a5d3f8c92", "createdDate": "2026-01-14T09:30:00", "hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18", "id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47", "imageIdentifier": "wink/review/siam-residences-2026-01-14-xyz123abc", "lastUpdate": "2026-02-03T16:45:12", "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.", "responded": false, "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!", "reviewDate": "2026-01-14T09:30:00", "roomNumber": "501", "roomRating": 9, "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.", "user": { "firstName": "Alexandra", "fullName": "Alexandra Beaumont", "lastName": "Beaumont", "telephone": "+66 2 126 8866", "userIdentifier": "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84" }, "version": 3 } ], "first": true, "last": false, "number": 0, "numberOfElements": 20, "size": 20, "totalElements": 1234, "totalPages": 62}Bad Request — missing or invalid request parameter or body
object
object
Example
Unauthorized — authentication is required or the session has expired
object
object
Example
Forbidden — authenticated but lacking the required permission or scope
object
object
Example
Not Found — the requested resource does not exist
object
object
Example
Method Not Allowed — the HTTP verb is not supported on this endpoint
object
object
Example
Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version
object
object
Example
Unsupported Media Type — use application/json
object
object
Example
Internal Server Error — an unexpected failure occurred on the server
object
object
Example
Service Unavailable — a downstream dependency is unreachable
