---
title: "Query Pricing Ratios"
method: GET
path: "/pricing_ratios"
tags: ["Listing Calendar"]
---

# Query Pricing Ratios

`GET /pricing_ratios`

Return the per-channel pricing ratio of each OTA listing linked to a property (`property_id`) or a room type (`room_type_id`). Pricing ratio is the **percentage** Hostex multiplies a base (property/room-type level) price by to derive the actual price pushed to each listing. Use this endpoint at the skill layer to compose a 'change price by property / room type' workflow: read the ratios, compute `target_price = round(base_price * ratio / 100)` for every non-readonly listing, then call `POST /listings/prices` once per listing. Listings marked `readonly: true` are silently controlled by the channel (e.g. Airbnb child rate plans) and cannot be repriced via `POST /listings/prices`; skip them.

## Query parameters

- `property_id` integer
- `room_type_id` integer

## Response `200`

Pricing ratios for the listings under the given property or room type.

- object
  - `request_id` string, required — Unique identifier for the request.
  - `error_code` integer, required — Numeric error code representing the status of the response. A value of `200` indicates success. <br> See the [Error Codes](/reference/error-manual#error-codes) section for more information.
  - `error_msg` string, required — Message detailing the status of the response.
  - `data` object, required
    - `link_type` 'property' | 'room_type', required — Echoes which of `property_id` / `room_type_id` was supplied.
    - `link_id` integer, required — Echoes the supplied id.
    - `channels` object[], required — One entry per OTA listing currently linked to the property / room type.
      - `channel_type` 'airbnb' | 'booking.com' | 'agoda' | 'expedia' | 'vrbo' | 'trip.com' | 'booking_site' | 'tujia_intl' | 'hostex_direct' | 'tujia' | 'xiaozhu' | 'meituan_bnb' | 'meituan_hotel' | 'muniao' | 'fliggy' | 'zhukeyun' | 'tiktok' | 'xiaohongshu' | 'ctrip' | 'houfy', required — The type of the channel. See [Supported Channels](/reference/supported-channels) for more information.
      - `listing_id` string, required — The unique identifier for different channels. <br>For example, the listing id for Airbnb is the Airbnb listing id, and the listing id for Booking.com is the Booking.com room id - rateplan id.
      - `listing_title` string — Display title of the listing on the channel.
      - `ratio` integer, required — Pricing ratio in percent. `100` = same as base price; `>100` = markup; `<100` = discount. When `readonly=true`, this is `-1` and should not be used to compute target prices.
      - `readonly` boolean, required — When `true`, the listing's price is controlled by the channel (e.g. Airbnb child rate plans synced from a parent) and cannot be updated via `POST /listings/prices`; skip these in the workflow.

---

[API](https://skmtc.net/hostex/apis/hostex-api.md) · [All operations](https://skmtc.net/hostex/apis/hostex-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hostex/hostex-api/revisions/a3fa555dee66/schema)
