> ## Documentation Index
> Fetch the complete documentation index at: https://docs.liveohana.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List bookings

> List bookings on your host profile, newest move-in first.

Returns bookings on the host profile that owns the API key. A booking is a lease where the guest has completed checkout. It's the same set shown under **Bookings** in your dashboard.

Results are sorted by move-in date, latest first. Bookings without a move-in date come last. List results include the guest's name only. To get the guest's email and phone number, [retrieve the booking](https://docs.liveohana.ai/api-reference/bookings/get.md).

## Query parameters

**status** `string`

Only return bookings with these statuses. Repeat the parameter or pass a comma-separated list, for example `status=upcoming,in_progress`. One of `upcoming`, `in_progress`, `complete`, or `canceled`. See [`status`](#response-status).

**move\_in\_from** `string`

Only return bookings that move in on or after this date, in `YYYY-MM-DD` format. Compared against the listing-local move-in date.

**move\_in\_to** `string`

Only return bookings that move in on or before this date, in `YYYY-MM-DD` format. Must not be before `move_in_from`.

**updated\_since** `string`

Only return bookings changed at or after this ISO 8601 timestamp, for example `2026-10-01T00:00:00Z`. Use it for [incremental syncs](https://docs.liveohana.ai/pagination.md#syncing-changes).

**limit** `integer` (default: 25)

Page size, from 1 to 100.

**cursor** `string`

The `next_cursor` from the previous page. See [Pagination](https://docs.liveohana.ai/pagination.md).

Unknown parameters return `400 invalid_request`.

## Response

**data** `Booking[]` *required*

Bookings on this page.

**Booking**

**id** `string` *required*

Booking ID. Pass it to [Retrieve a booking](https://docs.liveohana.ai/api-reference/bookings/get.md).

**reference** `string | null`

The short booking reference shown in the dashboard and in emails.

**status** `string` *required*

Where the booking is in its lifecycle, matching the dashboard:

* `canceled`: the booking was canceled.
* `upcoming`: the guest hasn't moved in yet.
* `in_progress`: the guest has moved in and hasn't moved out.
* `complete`: the guest has moved out.

**lease\_status** `string | null`

The underlying lease status: `booked`, `payment_processing`, `cancelled`, or another lease state. Most integrations should use `status` instead.

**payment\_model** `string | null`

How rent reaches you: `stripe_whop_payouts` (Ohana pays you out), `direct_payments` (the guest pays you directly), `bofa_payouts`, or `lease_takeover`.

**booked\_at** `string | null`

When the guest completed checkout. ISO 8601 timestamp.

**move\_in** `string | null`

Move-in date, `YYYY-MM-DD` in the listing's time zone.

**move\_out** `string | null`

Move-out date, `YYYY-MM-DD` in the listing's time zone.

**nights** `integer | null`

Number of nights between `move_in` and `move_out`.

**canceled\_at** `string | null`

When the booking was canceled. ISO 8601 timestamp.

**listing** `object | null`

The booked listing.

**properties**

**id** `string` *required*

Listing ID.

**title** `string | null`

Listing title. When a booking covers more than one listing, the titles are joined with commas.

**address** `string | null`

The stay address, including the unit number.

**guest** `object` *required*

**properties**

**id** `string | null`

Guest user ID.

**name** `string` *required*

Guest's name, or `"Guest"` when it isn't known.

**earnings** `Money | null`

Your total earnings for the booking, in the booking's currency. This is the dashboard's **Total earnings** figure.

**security\_deposit** `Money | null`

Security deposit amount, in USD.

**updated\_at** `string` *required*

When the booking last changed. ISO 8601 timestamp.

**has\_more** `boolean` *required*

Whether there are more results after this page.

**next\_cursor** `string | null` *required*

Pass as `cursor` to get the next page. `null` on the last page.

```bash cURL theme={null}
curl "https://liveohana.ai/api/v1/bookings?status=upcoming,in_progress&limit=2" \
  -H "Authorization: Bearer ohk_your_key_here"
```

```javascript Node.js theme={null}
const response = await fetch(
  "https://liveohana.ai/api/v1/bookings?status=upcoming,in_progress&limit=2",
  { headers: { Authorization: `Bearer ${process.env.OHANA_API_KEY}` } }
);
const { data, has_more, next_cursor } = await response.json();
```

```python Python theme={null}
import os, requests

response = requests.get(
    "https://liveohana.ai/api/v1/bookings",
    params={"status": "upcoming,in_progress", "limit": 2},
    headers={"Authorization": f"Bearer {os.environ['OHANA_API_KEY']}"},
)
page = response.json()
```

```json 200 theme={null}
{
  "data": [
    {
      "id": "6f1c2a9e-3b4d-4e8f-9a1b-2c3d4e5f6a7b",
      "reference": "L-48213",
      "status": "upcoming",
      "lease_status": "booked",
      "payment_model": "stripe_whop_payouts",
      "booked_at": "2026-08-14T17:02:11.000Z",
      "move_in": "2026-11-01",
      "move_out": "2027-01-31",
      "nights": 91,
      "canceled_at": null,
      "listing": {
        "id": "0b9f1a52-2d6e-4c7b-9a0e-6f2d4c1b8a33",
        "title": "Sunny 1BR near Union Square"
      },
      "address": "450 Post St, Apt 5C, San Francisco, CA 94102",
      "guest": {
        "id": "a3e1d2c4-5b6f-4a7e-8d9c-0b1a2c3d4e5f",
        "name": "Ada Lovelace"
      },
      "earnings": { "amount": "7350.00", "currency": "USD" },
      "security_deposit": { "amount": "1000.00", "currency": "USD" },
      "updated_at": "2026-10-20T09:15:42.000Z"
    }
  ],
  "has_more": true,
  "next_cursor": "WyIyMDI2LTExLTAxVDA3OjAwOjAwLjAwMDAwMFoiLCI2ZjFjMmE5ZSJd"
}
```

```json 400 theme={null}
{
  "error": {
    "code": "invalid_request",
    "message": "`status` must be one of upcoming, in_progress, complete, canceled."
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.