---
title: "List all rooms"
method: GET
path: "/rooms"
tags: ["Stays"]
---

# List all rooms

`GET /rooms`

## Request

- Base URL: `https://api.aisle.wedding/v1`
- URL: `https://api.aisle.wedding/v1/rooms`
- Auth: HTTP bearer

The complete active wedding room inventory, including legacy rooms and rooms whose property was deleted. Removed rooms are excluded even when retained internally for checkout or payment history. Use this collection to refresh a local room index; the nested property collection remains available for property-scoped views.

## Query parameters

- `status` string[]
- `limit` integer
- `cursor` string

## Response `200`

The requested data.

- RoomList
  - `data` PublicRoom[], required
    - `id` string, required
    - `property_id` string, nullable, required
    - `name` string, required
    - `type` string, nullable, required
    - `description` string, nullable, required
    - `capacity` integer, required
    - `capacity_max` integer, nullable, required
    - `bed_config` string, nullable, required
    - `images` string[], required
    - `status` 'available' | 'unavailable', required
    - `booking_url` string, nullable, required
    - `booked_by_party_id` string, nullable, required
    - `stay` PublicStay, required
      - `check_in_date` string, date, nullable, required
      - `check_out_date` string, date, nullable, required
      - `check_in_time` string, nullable, required
      - `check_out_time` string, nullable, required
      - `check_in_notes` string, nullable, required
    - `rate` object, required
      - `requires_payment` boolean, required
      - `unit` 'room' | 'night' | 'party' | 'head', required
      - `amount` string, nullable, required
    - `payment_schedule` PublicPaymentSchedule, required
      - `deposit_unit` 'percent' | 'amount', nullable, required
      - `deposit_amount` string, nullable, required
      - `deposit_due_date` string, date, nullable, required
      - `balance_due_date` string, date, nullable, required
    - `created_at` string, date-time, required: An RFC 3339 UTC timestamp with milliseconds.
    - `updated_at` string, date-time, required: An RFC 3339 UTC timestamp with milliseconds.
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required

## Other responses

- `400`: The request itself could not be read, such as a body that is not a JSON object. A field we refuse is validation_failed instead.
- `401`: The API key is missing, malformed, or no longer valid.
- `402`: The operation requires an active Aisle membership for this wedding.
- `403`: The key is valid but not permitted to do this.
- `404`: No such resource inside the key's wedding.
- `405`: That HTTP method is not supported here. See the Allow header.
- `409`: The request collided with the current state of the resource.
- `415`: A request body must be sent as application/json.
- `422`: The request was well-formed but a field was not acceptable. Every field at fault is named in error.details.
- `429`: Too many requests. Retry after the time given in Retry-After.
- `500`: Something went wrong on our side.

---

[API](https://skmtc.dev/aisle/apis/aisle-api.md) · [All operations](https://skmtc.dev/aisle/apis/aisle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aisle/apis/aisle-api/revisions/689a2f2420cc?raw)
