Step 13 - Add LOS pricing
Use the /hotels/csv/los_pricing
endpoint to create pricing based on length of stay (LOS). Once you successfully add pricing then you can set availability.
Prerequisites
You must have completed the following steps:
- Step 2 and have the property ID
- Step 3 and have the unit ID
- Step 6 and have a rate plan ID
- Step 7 and set the property's pricing type to
LOS
(Length of stay) - Step 12 and have mapped a unit to a rate plan
Adding LOS pricing
POST
https://supply-xml.booking.com/hotels/csv/los_pricing
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | Currently supports the version 1.1 (default). Version 1.0 is sunset. If used, the endpoint returns a 400 Not acceptable error. |
Content-Type | Specify the content type. | string | required | Currently supports the value application/csv . |
Content-Length | Specify the content length of the payload. | integer | required | For example: Content-Length: 721 |
Rules
When using LOS pricing, make sure to note the following:
- Each row must have the check-in date, occupancy, room ID , rate ID and currency code followed by a value set for every possible length of stay.
- There is no way to express a default per night price, due to determining the difference between an unavailable length of stay and a default price length of stay.
- All pricing is in the property's default currency.
- A maximum of two decimal places is supported for each price value.
- The room and rate IDs are Booking.com identifiers, and are set up prior to calling the request.
- The room and rate IDs must belong to a property for which the login account has permission to modify availability and pricing details.
- All room and rate IDs must be active combinations for the property.
- Maximum number of nights is 90. If you provide more than 90 nights, the remaining nights are ignored and only the first 90 nights are considered.
- Only rooms belonging to one property are allowed per call. To update room pricing across multiple properties, you must send separate requests.
Transmission details
When building the request body, make sure to note the following:
- Send the request as an HTTP POST, and provide the CSV data as a form value of the name "CSV".
- Do not include any other form values in the request.
- Each request header must contain a "Content-length" item that contains the number of character bytes of the POST data.
- The CSV commas and line feeds must be URL encoded, in that each comma and newline is an escape sequence.
- The content length must be the full character count including the extra bytes due to the escape sequences.
You can use the following escape sequences, but more can be added if required:
Character | Encoding |
---|---|
, (comma) | %2C |
\n (line feed) | %0A |
Request body format
Format
The request accepts CSV data where 1 row has the following format:
{checkin},{occupancy},{room id},{rate id},{currency code},{1 night},{2 nights},{3 nights},...
For example: 2025-10-21,2,1479536101,57656696,JPY,13790,27550,41300,55000,68100,82100
Request body example
The following is a request body example:
2025-10-21%2C2%2C1479536101%2C57656696%2CJPY%2C13790%2C27550%2C41300%2C55000%2C68100%2C82100%0A2025-10-22%2C2%2C1479536101%2C57656696%2CJPY%2C13790%2C27550%2C41300%2C55000%2C68100%2C82100%0A2025-10-23%2C2%2C1479536101%2C57656696%2CJPY%2C13790%2C27550%2C41300%2C55000%2C68100%2C82100%0A2025-10-24%2C2%2C1479536101%2C57656696%2CJPY%2C13790%2C27550%2C41300%2C55000%2C68100%2C82100`
Response body example
The following is a successful response body example:
method,status,ticket_id
los_pricing,ok,XXXXXXX-XXXXX-XXXXXXXXXXX-XXXXXXXXXXXX