Reviews
Reviews of stays, left by guests or imported from other platforms
The review object
Attributes
iduuidsource_idtext | nullIdentifier of the review on its source
created_atread-onlytimestamp with time zoneCreation timestamp
updated_atread-onlytimestamp with time zoneLast modification timestamp
author_avatartext | nullURL of the author's avatar image
author_nametextName of the author
contentMultiLanguageStringLocalized text of the review
ftsread-onlytsvectorratinginteger | nullRating given by the author
sourcetextWhere the review comes from
source_urltext | nullURL of the review on its source
statusReviewStatusModeration status: pending, approved or rejected. Review widgets only show approved reviews
Related resources
Embed related resources in the response with the select parameter, for example select=*,bookings(*). Resources related through more than one column need the column as a hint, like table!column(*).
review_products(*)arrayThe review products referencing this review through review_products.review_id.
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"source_id": "",
"created_at": "2026-10-30T22:27:57.861Z",
"updated_at": "2026-10-30T22:27:57.861Z",
"author_avatar": "",
"author_name": "Summer cottage",
"content": {},
"rating": 0,
"source": "",
"source_url": "https://example.com",
"status": "pending"
}curl -X GET "https://api.bookingmood.com/v1/reviews?limit=10&select=*,bookings(*),organizations(*)" \
-H "Authorization: Bearer YOUR_API_KEY"List reviews
Filters
idFilter<uuid>source_idFilter<text | null>Identifier of the review on its source
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
author_avatarFilter<text | null>URL of the author's avatar image
author_nameFilter<text>Name of the author
contentFilter<MultiLanguageString>Localized text of the review
ftsFilter<tsvector>ratingFilter<integer | null>Rating given by the author
sourceFilter<text>Where the review comes from
source_urlFilter<text | null>URL of the review on its source
statusFilter<ReviewStatus>Moderation status: pending, approved or rejected. Review widgets only show approved reviews
Responses
200A list of reviews with the selected columns
206Partial Content
400The request is malformed, for example an unknown column or an invalid filter.
401The API key is missing or invalid.
code, message, details and hint. See the introduction for more on errors.GET /reviewscurl -X GET "https://api.bookingmood.com/v1/reviews?select=*&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"[
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"source_id": "",
"created_at": "2026-10-30T22:27:57.861Z",
"updated_at": "2026-10-30T22:27:57.861Z",
"author_avatar": "",
"author_name": "Summer cottage",
"content": {},
"rating": 0,
"source": "",
"source_url": "https://example.com",
"status": "pending"
}
]Create reviews
Body
Partial<Review> | Array<Partial<Review>>Read-only attributes are set by the database and can't be written.
Responses
201The newly created reviews with the selected columns
400The request is malformed, for example an unknown column, an invalid filter or an invalid body.
401The API key is missing or invalid.
403The API key has no permission for this change, for example when writing rows of another organization.
409The change conflicts with existing data, for example a duplicate key or a reference to a row that does not exist.
code, message, details and hint. See the introduction for more on errors.POST /reviewscurl -X POST "https://api.bookingmood.com/v1/reviews" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"author_name": "Summer cottage",
"content": {},
"organization_id": "00000000-0000-0000-0000-000000000000",
"source": "",
"status": "pending"
}'[
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"source_id": "",
"created_at": "2026-10-30T22:27:57.861Z",
"updated_at": "2026-10-30T22:27:57.861Z",
"author_avatar": "",
"author_name": "Summer cottage",
"content": {},
"rating": 0,
"source": "",
"source_url": "https://example.com",
"status": "pending"
}
]Delete reviews
Filters
Without filters, this request deletes all reviews you have access to. Always filter on at least one column, e.g. id=eq.{id}.
idFilter<uuid>source_idFilter<text | null>Identifier of the review on its source
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
author_avatarFilter<text | null>URL of the author's avatar image
author_nameFilter<text>Name of the author
contentFilter<MultiLanguageString>Localized text of the review
ftsFilter<tsvector>ratingFilter<integer | null>Rating given by the author
sourceFilter<text>Where the review comes from
source_urlFilter<text | null>URL of the review on its source
statusFilter<ReviewStatus>Moderation status: pending, approved or rejected. Review widgets only show approved reviews
Responses
200The deleted reviews with the selected columns. Returns 204 without a body when sending the header Prefer: return=minimal.
400The request is malformed, for example an unknown column or an invalid filter.
401The API key is missing or invalid.
403The API key has no permission for this change, for example when writing rows of another organization.
code, message, details and hint. See the introduction for more on errors.DELETE /reviewscurl -X DELETE "https://api.bookingmood.com/v1/reviews?id=eq.00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer YOUR_API_KEY"[
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"source_id": "",
"created_at": "2026-10-30T22:27:57.861Z",
"updated_at": "2026-10-30T22:27:57.861Z",
"author_avatar": "",
"author_name": "Summer cottage",
"content": {},
"rating": 0,
"source": "",
"source_url": "https://example.com",
"status": "pending"
}
]Update reviews
Filters
Without filters, this request updates all reviews you have access to. Always filter on at least one column, e.g. id=eq.{id}.
idFilter<uuid>source_idFilter<text | null>Identifier of the review on its source
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
author_avatarFilter<text | null>URL of the author's avatar image
author_nameFilter<text>Name of the author
contentFilter<MultiLanguageString>Localized text of the review
ftsFilter<tsvector>ratingFilter<integer | null>Rating given by the author
sourceFilter<text>Where the review comes from
source_urlFilter<text | null>URL of the review on its source
statusFilter<ReviewStatus>Moderation status: pending, approved or rejected. Review widgets only show approved reviews
Body
Partial<Review>Read-only attributes are set by the database and can't be written.
Responses
200The updated reviews with the selected columns. Returns 204 without a body when sending the header Prefer: return=minimal.
400The request is malformed, for example an unknown column, an invalid filter or an invalid body.
401The API key is missing or invalid.
403The API key has no permission for this change, for example when writing rows of another organization.
409The change conflicts with existing data, for example a duplicate key or a reference to a row that does not exist.
code, message, details and hint. See the introduction for more on errors.PATCH /reviewscurl -X PATCH "https://api.bookingmood.com/v1/reviews?id=eq.00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"author_name": "Summer cottage"
}'[
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"source_id": "",
"created_at": "2026-10-30T22:27:57.861Z",
"updated_at": "2026-10-30T22:27:57.861Z",
"author_avatar": "",
"author_name": "Summer cottage",
"content": {},
"rating": 0,
"source": "",
"source_url": "https://example.com",
"status": "pending"
}
]