Skip to main content
GET
Search reviews

Authorizations

Authorization
string
header
required

Authorization: Bearer <token>. Token types resolve to the same scoped credential: a user-generated API key (casa_…, from Account settings — recommended for first-party machines and MCP clients), a partner credential access token (third-party agents; REST-only), a session JWT (the web app; org and role come from verified token claims), or a static token. API keys are group-scoped, optionally pinned to one property at creation. Personal API keys and partner credentials accept X-Property-Id to drill down to one property in the group. A property-pinned API key ignores that header. MCP OAuth connector tokens authenticate the MCP server only and are rejected on these REST routes.

Headers

X-Property-Id
string<uuid>

Optional single-property drill-down. Narrows this request to one property in the caller's group. A property outside the group returns 403. Personal API keys and partner credentials accept this header. A property-pinned API key ignores it. Casa Layer sign-in tokens reject it.

Query Parameters

q
string

Free-text match on title, body, or guest name.

min_rating
number
max_rating
number
channel
string

Channel name (e.g. Booking.com).

start_date
string<date>

Include reviews dated on/after this ISO date.

end_date
string<date>

Include reviews dated on/before this ISO date.

host_response
boolean

Only reviews with (true) / without (false) a host response.

guest_profile_id
string<uuid>

Repeat for each profile member. A review matches when its guest id is one of these, or its stay source id is one of reservation_source_id, or it is a Reva review whose guest name overlaps reva_guest_name.

reservation_source_id
string

Repeat for each stay source id on the profile.

reva_guest_name
string

Profile display name. Matches guest_name on Reva reviews only.

limit
integer
default:100

Page size — rows returned per call (1–500). This is NOT a cap on the total dataset: follow next_cursor to retrieve every matching row.

Required range: 1 <= x <= 500
cursor
string

Opaque pagination token from a previous response's next_cursor. Omit for the first page. A malformed token returns 400 invalid_cursor.

Response

Matching reviews.

Keyset-pagination fields present on every list/search response. When has_more is true, re-request with cursor set to next_cursor; repeat until next_cursor is null to retrieve the full result set.

next_cursor
string | null
required

Opaque cursor for the next page, or null on the last page.

has_more
boolean
required

Whether another page exists.

data
object[]
required