> ## 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.

# Update pricing

> Set a listing's rent: one price all year, or a price per calendar month.

Sets what you earn per month for the listing. Ohana adds its service fee to get the price guests see, returned as `guest_rent`.

Pricing is one of two types:

* **`fixed`**: one monthly `rent` all year.
* **`monthly`**: a rent for each of the 12 calendar months. The same prices repeat every year, so `month: 1` applies to every January. The listing's headline price is the lowest month.

Sending `fixed` pricing on a listing with monthly prices removes the monthly prices. Bookings already made keep the price they were booked at.

The listing in the URL is the only one updated. On a property with several rooms, update each room's listing separately. Pricing can be updated on listings that sync availability from Airbnb.

> [!WARNING]
>
> If `pricing.synced_from_website` is `true`, Ohana also syncs this listing's rent from your website, and the next sync may replace what you send here.

## Path parameters

**id** `string` *required*

The listing `id`.

## Body

Send JSON with `Content-Type: application/json`. Amounts are in the listing's currency, as decimal strings such as `"2450.00"`. Numbers are also accepted.

**type** `string` *required*

`fixed` or `monthly`.

**rent** `string`

Required when `type` is `fixed`. What you earn per month, from more than 0 up to 1,000,000.

**monthly\_rents** `Monthly rent[]`

Required when `type` is `monthly`. Exactly 12 entries, one for each month.

**Monthly rent**

**month** `integer` *required*

Calendar month, from `1` (January) to `12` (December).

**rent** `string` *required*

What you earn for this month.

## Response

**data** `Listing` *required*

The updated [Listing](https://docs.liveohana.ai/api-reference/listings/list.md#response).

## Errors

| Status | Code | When |
| - | - | - |
| 400 | `invalid_request` | The body isn't JSON, has an unknown field, or an amount isn't a decimal with up to 2 places. |
| 404 | `not_found` | The listing doesn't exist or isn't on your host profile. |
| 409 | `conflict` | The listing is managed by a partner feed, or is archived. |
| 422 | `validation_failed` | A rent is 0 or over the maximum, or `monthly_rents` doesn't have each month exactly once. |

```bash cURL (fixed) theme={null}
curl -X PUT https://liveohana.ai/api/v1/listings/0b9f1a52-2d6e-4c7b-9a0e-6f2d4c1b8a33/pricing \
  -H "Authorization: Bearer ohk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "type": "fixed", "rent": "2450.00" }'
```

```bash cURL (monthly) theme={null}
curl -X PUT https://liveohana.ai/api/v1/listings/0b9f1a52-2d6e-4c7b-9a0e-6f2d4c1b8a33/pricing \
  -H "Authorization: Bearer ohk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "monthly",
    "monthly_rents": [
      { "month": 1, "rent": "2200.00" },
      { "month": 2, "rent": "2200.00" },
      { "month": 3, "rent": "2300.00" },
      { "month": 4, "rent": "2400.00" },
      { "month": 5, "rent": "2600.00" },
      { "month": 6, "rent": "2800.00" },
      { "month": 7, "rent": "2800.00" },
      { "month": 8, "rent": "2800.00" },
      { "month": 9, "rent": "2600.00" },
      { "month": 10, "rent": "2400.00" },
      { "month": 11, "rent": "2300.00" },
      { "month": 12, "rent": "2300.00" }
    ]
  }'
```

```javascript Node.js theme={null}
const response = await fetch(
  `https://liveohana.ai/api/v1/listings/${listingId}/pricing`,
  {
    method: "PUT",
    headers: {
      Authorization: `Bearer ${process.env.OHANA_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ type: "fixed", rent: "2450.00" }),
  }
);
const { data: listing } = await response.json();
```

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

response = requests.put(
    f"https://liveohana.ai/api/v1/listings/{listing_id}/pricing",
    headers={"Authorization": f"Bearer {os.environ['OHANA_API_KEY']}"},
    json={"type": "fixed", "rent": "2450.00"},
)
listing = response.json()["data"]
```

```json 200 theme={null}
{
  "data": {
    "id": "0b9f1a52-2d6e-4c7b-9a0e-6f2d4c1b8a33",
    "title": "Sunny 1BR near Union Square",
    "status": "published",
    "url": "https://liveohana.ai/listing/sunny-1br-near-union-square",
    "property_id": "7d2e9c41-8a3b-4f6e-b1c0-5e4d3c2b1a09",
    "address": "450 Post St, Apt 5C, San Francisco, CA 94102",
    "managed_by_partner_feed": false,
    "availability": {
      "synced_from_airbnb": false,
      "synced_from_website": false,
      "minimum_stay": 30,
      "windows": [{ "start_date": "2026-12-01", "end_date": "2027-05-31" }]
    },
    "pricing": {
      "type": "fixed",
      "synced_from_website": false,
      "rent": { "amount": "2450.00", "currency": "USD" },
      "guest_rent": { "amount": "2695.00", "currency": "USD" },
      "monthly_rents": null
    },
    "updated_at": "2026-10-28T18:04:10.000Z"
  }
}
```

```json 422 theme={null}
{
  "error": {
    "code": "validation_failed",
    "message": "Enter monthly rent for every month."
  }
}
```


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