Skip to main content
GET
Guest event log

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 machines and MCP clients), a WorkOS AuthKit 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. 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. When set, narrows the request to this property; it must belong to the caller's group, else 403. A property-pinned API key is already narrowed and ignores this header.

Query Parameters

mode
enum<string>
default:timeline

Return the full ordered history (timeline) or the latest delta slice per entity (latest). rollup is a deprecated alias for latest.

Available options:
timeline,
latest,
rollup
entity_type
enum<string>

Filter by canonical entity type.

Available options:
guest_profile,
reservation,
transaction,
action,
loyalty_program,
membership,
review,
channel,
space
entity_id
string

Filter to a single canonical entity id.

guest_profile_id
string<uuid>

Filter to events for a single guest profile.

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

Event-log rows. timeline is keyset-paginated. latest (and the deprecated rollup request alias) returns a single page (next_cursor null) with the latest delta slice per entity. Response mode is always timeline or latest (never rollup).

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.

mode
enum<string>
required
Available options:
timeline,
latest
data
object[]
required