---
title: "List reservations"
method: GET
path: "/v1/reservations"
tags: ["reservations"]
---

# List reservations

`GET /v1/reservations`

Returns cursor-paginated PMS reservations for a workspace, ordered by arrival date (most recent first by default). Filter by `status` or `listing_id` to narrow the result set. Reservations are synced from the workspace's PMS integration (Hostaway, Guesty, Airbnb, etc.). Airbnb reservations include `airbnb_payment` when normalized Airbnb payout, fee, and tax amounts are available. To sort by departure or booking creation time, use `/v1/contacts/{id}/reservations` for a contact-scoped view.

## Query parameters

- `workspace_id` string, required — Workspace to query.
- `limit` integer — Page size. Defaults to 20. Max 100.
- `cursor` string — Pagination cursor returned as `next_cursor` on the previous page.
- `order` 'asc' | 'desc' — Sort direction over arrival date. Defaults to `desc` (most recent arrivals first).
- `status` string — Filter by reservation status. Values are PMS-normalized and vary by integration (common examples: `confirmed`, `cancelled`, `inquiry`, `new`).
- `listing_id` string — Filter to reservations for a single listing. Matches the `listing_id` value returned on reservation objects.

## Response `200`

Reservations

- object — Cursor-paginated reservations response.
  - `data` object[], required
    - `id` string, required
    - `workspace_id` string, required
    - `contact_id` string, nullable, required
    - `listing_id` string, nullable, required
    - `pms_platform` string, required
    - `external_id` string, required
    - `channel_name` string, nullable, required
    - `channel_reservation_id` string, nullable, required
    - `confirmation_code` string, nullable, required
    - `status` string, nullable, required
    - `source` string, nullable, required
    - `arrival_date` string, required
    - `arrival_at` string, nullable, required
    - `departure_date` string, required
    - `departure_at` string, nullable, required
    - `num_nights` number, nullable, required
    - `number_of_guests` number, nullable, required
    - `number_of_adults` number, nullable, required
    - `number_of_children` number, nullable, required
    - `number_of_infants` number, nullable, required
    - `number_of_pets` number, nullable, required
    - `guest` object, required
      - `name` string, nullable, required
      - `first_name` string, nullable, required
      - `last_name` string, nullable, required
      - `email` string, nullable, required
      - `phone` string, nullable, required
      - `country` string, nullable, required
      - `city` string, nullable, required
      - `locale` string, nullable, required
      - `external_account_id` string, nullable, required
    - `payment` object, nullable, required
      - `is_paid` boolean, required
      - `total_price` number, required — Total reservation price in major units (e.g. dollars, euros) of `currency`, as reported by the PMS. Not minor units (cents).
      - `currency` string, required — ISO 4217 currency code reported by the PMS.
      - `outstanding_balance` number, nullable, required — Balance owed in major units of `currency`, when reported. `null` if the PMS does not provide it.
    - `airbnb_payment` object, nullable, required — Airbnb-specific normalized payout, fee, and tax amounts. `null` for non-Airbnb reservations or when Airbnb did not provide payout amounts.
      - `currency` string, nullable, required — ISO 4217 currency code for the Airbnb payout amounts, when reported.
      - `expected_payout_amount` number, nullable, required — Airbnb expected host payout in major units of the reservation currency.
      - `expected_payout_amount_before_taxes` number, nullable, required — Airbnb expected host payout before taxes, in major units of the reservation currency.
      - `listing_base_price` number, nullable, required
      - `listing_cancellation_payout` number, nullable, required
      - `listing_cancellation_host_fee` number, nullable, required
      - `total_paid_amount` number, nullable, required — Total amount paid by the guest, when Airbnb reports it.
      - `transient_occupancy_tax_paid_amount` number, nullable, required
      - `airbnb_collected_tax_amount` number, nullable, required
      - `pass_through_tax_amount_paid_to_host` number, nullable, required
      - `pass_through_tax_expected_amount` number, nullable, required
      - `host_fee_base` number, nullable, required
      - `host_fee_vat` number, nullable, required
      - `guest_fee_base` number, nullable, required
      - `guest_fee_vat` number, nullable, required
      - `tax_withholding_amount` number, nullable, required
    - `door_code` string, nullable, required
    - `key_code` string, nullable, required
    - `guest_note` string, nullable, required
    - `ai_paused` boolean, nullable, required
    - `created_at` string, required
    - `updated_at` string, nullable, required
  - `next_cursor` string, nullable, required
  - `has_more` boolean, required

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — Forbidden
- `429` — Rate limit exceeded

---

[API](https://skmtc.dev/conduit/apis/conduit-api.md) · [All operations](https://skmtc.dev/conduit/apis/conduit-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/conduit/conduit-api/revisions/3ad7e17f96ad/schema)
