Skip to main content
The Casa API is a headless, read-only surface over the canonical guest data model: guests, master profiles, reservations, the event log, reviews, loyalty, channels, spaces, and properties. Responses are JSON; every endpoint sits under /v1.

Base URL

Authentication

Pass an API key as a bearer token on every request:
Keys are generated in the app under Account settings and are shown once at creation. They carry the full read surface (see scopes); integration metadata and key management are session-only and excluded from key access.

Tenant scope

Every request is scoped to your property group by default — data across all of your properties. Narrow to one property either by pinning the key at creation or per-request with the X-Property-Id header:
Scope is resolved server-side from the credential; a property outside your group returns 403.

Pagination

Every list and search endpoint is keyset-paginated. Responses carry the rows plus a cursor:
limit sets the page size (default 100, max 500) — it is not a cap on the total dataset. To retrieve everything, pass the next_cursor from one response back as the cursor query param on the next request, and repeat until next_cursor is null:
Cursors are opaque and stable under concurrent inserts — walking them never skips or double-counts a row. A malformed cursor returns 400 invalid_cursor.

Errors

Errors are JSON with a machine-readable error code:

Playground

Every endpoint page in this reference has an interactive playground — paste your API key into the auth field and requests run against the live API with your tenant’s data.
Looking for AI-assistant access? The MCP server exposes the same data through seven tools, authenticated with the same keys.