Search Reviews
Common usage:
- A listing's review section:
GET /reviews?listing_id={id} - A user's own review history across every listing:
GET /reviews?user_id={id}
Each user may hold at most one review per listing - POST /reviews returns
409 on a second attempt for the same listing/user pair rather than creating
a duplicate.
Search reviews, filterable independently by listing_id (all reviews for one MCP listing) or user_id (all reviews written by one user across every listing). Not nested under /mcp/{listing_id} because a review is addressable and searchable on its own - see GET /reviews/{review_id}.
Authorization
OAuth2AuthorizationCodeBearer AuthorizationBearer <token>
In: header
Query Parameters
listing_id?|
Filter reviews for a specific listing UUID
user_id?|
Filter reviews by author user UUID
created_at?array<string>|
Filter by creation time, FHIR-style prefixed datetime search
updated_at?array<string>|
Filter by last-updated time, FHIR-style prefixed datetime search
_sort?|
Sort field: rating, created_at, updated_at
_count? Count
Range
1 <= value <= 100Default
20_page? Page
Range
1 <= valueDefault
1verify_locally?Verify Locally
Default
trueResponse Body
application/json
application/json
curl -X GET "https://example.com/v1/reviews"{ "page": 0, "page_size": 0, "has_next": true, "has_previous": true, "total_pages": 0, "items": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "listing_id": "5322d4a9-51d2-4408-82fb-01ffecfb8304", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5", "rating": 0, "title": "string", "body": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "user": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "username": "string", "display_name": "string", "avatar_url": "string" } } ]}{ "detail": [ { "loc": [ "string" ], "msg": "string", "type": "string" } ]}