LOS Push
Modified on: 2025-07-30 10:37
TABLE OF CONTENTS
This API enables DerbySoft to send LOS ARI to distributors for a hotel within a specified date range. The LOS Push Model provides detailed availability and rate information based on the length of stay for a specific hotel. This allows distributors to receive pricing that is tailored to different stay durations, providing more precise and relevant data for each booking scenario.
Whenever the supplier updates prices or availability for an activated hotel or product, we will push the updated LOS ARI data, ensuring that distributors always receive the most current and accurate information.
In the following sections, we will provide the schemas and examples for the LOS Push Model, outlining the structure of the ARI data and how to integrate it into your system.
POST /ari/los/push HTTP/1.1 URL: {AvailabilityPeer-Endpoint}}/ari/los/push Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc Accept-Encoding: gzip Content-Encoding: gzip Content-Type: application/json;charset=utf-8
LOS Push Request Schema
Level | Field Name | Data Type | Required | Description | Example |
---|---|---|---|---|---|
1 | header | object | Y | / | / |
2 | @supplierId | string | Y | The ID of hotel suppliers in DerbySoft's system. MaxLength: 32 | HILTON |
2 | @distributorId | string | Y | The ID of distributor in DerbySoft's system. MaxLength: 32 | GTA |
2 | @version | string | Y | Version of API. MaxLength: 20 | v4 |
2 | @token | string | Y | A unique identifier is used for requests and responses, typically a UUID. MaxLength: 64 Note that this is an echo token, not an access token. | 18393849028490234 |
1 | messageType | enum | N | Enum: [ Delta, Overlay ] Omit the attributor means the Message Type is Overlay. Refer to Delta vs. Overlay for more information | Delta |
1 | hotelId | string | Y | The ID of a hotel in the supplier's system | GATHI |
1 | dateRange | object | Y | / | / |
2 | @startDate | string | Y | Start date of date range expressed as YYYY-MM-DD | 2028-01-01 |
2 | @endDate | string | Y | End date of the date range expressed as YYYY-MM-DD | 2028-01-04 |
1 | currency | string | Y | Currency code[ISO-4217] | USD |
1 | losAris | array | Y | Length of stay rate and inventory within a date range. If no available rates, it means the hotel was closed. If the available rates are only for certain room types, it means other room types are closed. | / |
2 | @roomId | string | Y | Room ID in supplier's system | 10000101 |
2 | @rateId | string | Y | Rate ID in supplier's system | 123456 |
2 | @connectionType | enum | N | Enum: [Exchange, Standard] Indicates the connection type of products. Notes: If the field is omitted, it means the Connection Type is Standard. | Standard |
2 | @los | integer | Y | Length of stay | 1 |
2 | @mealPlans | array[string] | N | Meal plan for each date | [ "BB", "BB", "BB", "BB" ] |
2 | @inventories | array[integer] | Y | Room inventory for each date | [ 9, 0, 9, 9 ] |
2 | rates | / | Y | / | / |
3 | @type | enum | Y | Enum: [ OccupancyRate, CommonRate ] Indicates which rate model to be used: OccupancyRate or CommonRate. | / |
3 | rates | array[object] | Y | This node will not display if it’s the Common Rate Model. | / |
4 | @adultCount | integer | C | This node will not display if it’s the Common Rate Model. | / |
4 | @childCount | integer | N | The node will not display if it’s the Common Rate Model. | / |
4 | @amountBeforeTax | array[number] | C | Mandatory if AAT is not provided | [ 502.19, 502.19, 502.19, 502.19 ] |
4 | @amountAfterTax | array[number] | C | Mandatory if ABT is not provided | [ 623.23, 623.23, 623.23, 623.23 ] |
3 | extraChildRates | object | N | The extra child rate is applicable only for the Occupancy Rate. | / |
4 | @minAge | integer | C | Minimum child age is greater than or equal to zero. | 0 |
4 | @maxAge | integer | C | Maximum child age is less than or equal to maxChildAge. | 2 |
4 | @amountBeforeTax | array[number] | C | Mandatory if AAT is not provided | [ 40, 40 ] |
4 | @amountAfterTax | array[number] | C | Mandatory if ABT is not provided | [ 40, 40 ] |
4 | @suggestedSellingPriceBeforeTax | array[number] | N | Amount of rate without tax & fee for exchange. Notes: If the connection type is "Exchange" and the "Net" Rate Model, the field will be visible; otherwise, it will not appear. | [100, 100, 100] |
4 | @suggestedSellingPriceAfterTax | array[number] | N | Amount of rate with tax & fee for exchange. Notes: If the connection type is "Exchange" and the "Net" Rate Model, the field will be visible; otherwise, it will not appear. | [110, 110, 110] |
1 | extensions | object | N | A common extension object for extra attributes like account, extra settings required by a distributor, etc. | / |
LOS Push Request Example
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "messageType": "Delta", "hotelId": "GATHI", "dateRange": { "startDate": "2028-01-01", "endDate": "2028-01-04" }, "currency": "USD", "losAris": [ { "roomId": "K1", "rateId": "BARB", "los": 1, "mealPlans": [ "BB", "BB", "RO", "BB" ], "inventories": [ 9, 0, 9, 9 ], "rates": { "type": "OccupancyRate", "rates": [ { "adultCount": 2, "childCount": 1, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 623.23, 623.23, 623.23, 623.23 ] } ] } } ] }
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "messageType": "Delta", "hotelId": "GATHI", "dateRange": { "startDate": "2028-01-01", "endDate": "2028-01-04" }, "currency": "USD", "losAris": [ { "roomId": "K1", "rateId": "BARB", "connectionType": "Exchange", "los": 1, "mealPlans": [ "BB", "BB", "RO", "BB" ], "inventories": [ 9, 0, 9, 9 ], "rates": { "type": "OccupancyRate", "rates": [ { "adultCount": 2, "childCount": 1, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 623.23, 623.23, 623.23, 623.23 ], "suggestedSellingPriceBeforeTax": [ 100, 100, 120, 120 ], "suggestedSellingPriceAfterTax": [ 110, 110, 130, 130 ] } ] } } ] }
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "messageType": "Delta", "hotelId": "GATHI", "dateRange": { "startDate": "2028-01-01", "endDate": "2028-01-04" }, "currency": "USD", "losAris": [ { "roomId": "K1", "rateId": "BARB", "los": 1, "mealPlans": [ "BB", "BB", "RO", "BB" ], "inventories": [ 9, 0, 9, 9 ], "rates": { "extraChildRates": [ { "minAge": 0, "maxAge": 2, "amountAfterTax": [ 50.00, 50.00, 50.00, 50.00 ], "amountBeforeTax": [ 40.00, 40.00, 40.00, 40.00 ] }, { "minAge": 3, "maxAge": 8, "amountAfterTax": [ 60.00, 60.00, 60.00, 60.00 ], "amountBeforeTax": [ 50.00, 50.00, 50.00, 50.00 ] }, { "minAge": 9, "maxAge": 17, "amountAfterTax": [ 70.00, 70.00, 70.00, 70.00 ], "amountBeforeTax": [ 60.00, 60.00, 60.00, 60.00 ] } ], "type": "OccupancyRate", "rates": [ { "adultCount": 2, "amountBeforeTax": [ 200.00, 200.00, 200.00, 200.00 ], "amountAfterTax": [ 220.00, 220.00, 220.00, 220.00 ] }, { "adultCount": 1, "amountBeforeTax": [ 160.00, 160.00, 160.00, 160.00 ], "amountAfterTax": [ 192.00, 192.00, 192.00, 192.00 ] } ] } }, { "roomId": "K1", "rateId": "BARB", "los": 2, "mealPlans": [ "BB", "BB", "RO", "BB" ], "inventories": [ 9, 0, 9, 9 ], "rates": { "extraChildRates": [ { "minAge": 0, "maxAge": 2, "amountAfterTax": [ 100.00, 100.00, 100.00, 100.00 ], "amountBeforeTax": [ 80.00, 80.00, 80.00, 80.00 ] }, { "minAge": 3, "maxAge": 8, "amountAfterTax": [ 120.00, 120.00, 120.00, 120.00 ], "amountBeforeTax": [ 100.00, 100.00, 100.00, 100.00 ] }, { "minAge": 9, "maxAge": 17, "amountAfterTax": [ 140.00, 140.00, 140.00, 140.00 ], "amountBeforeTax": [ 120.00, 120.00, 120.00, 120.00 ] } ], "type": "OccupancyRate", "rates": [ { "adultCount": 2, "amountBeforeTax": [ 400.00, 400.00, 400.00, 400.00 ], "amountAfterTax": [ 440.00, 440.00, 440.00, 440.00 ] }, { "adultCount": 1, "amountBeforeTax": [ 320.00, 320.00, 320.00, 320.00 ], "amountAfterTax": [ 384.00, 384.00, 384.00, 384.00 ] } ] } } ] }
Note: GO supports completing possible occupancy combinations up to the maximum occupancy supported by each hotel in cases where children will be free of charge by hotel suppliers. Example as follow: Max occupancy = 4, max adult = 3, max children = 2, child pricing = 0. But suppliers don't provide occupancy rates for adult plus child combinations. GO supports to complele it for 3A1C, 3A0C, 2A2C, 2A1C, 2A0C, 1A1C and 1A0C. *** The feature increases the ARI pushing traffic volume, and is turned off as a default setting. If you wish to enable it, please reach out to your Client Manager for more details.
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "messageType": "Delta", "hotelId": "GATHI", "dateRange": { "startDate": "2028-01-01", "endDate": "2028-01-07" }, "currency": "USD", "losAris": [ { "roomId": "NCAA", "rateId": "LHGKX", "los": 1, "mealPlans": [ "BB", "BB", "BB", "BB", "BB", "BB", "BB" ], "inventories": [ 0, 0, 0, 0, 1, 1, 1 ], "rates": { "rates": [ { "adultCount": 1, "childCount": 0, "amountBeforeTax": [ 183.01, 141, 166, 176, 176, 158, 182 ] }, { "adultCount": 1, "childCount": 1, "amountBeforeTax": [ 183.01, 141, 166, 176, 176, 158, 182 ] }, { "adultCount": 2, "childCount": 0, "amountBeforeTax": [ 183.01, 141, 166, 176, 176, 158, 182 ] }, { "adultCount": 2, "childCount": 1, "amountBeforeTax": [ 183.01, 141, 166, 176, 176, 158, 182 ] }, { "adultCount": 2, "childCount": 2, "amountBeforeTax": [ 183.01, 141, 166, 176, 176, 158, 182 ] }, { "adultCount": 3, "childCount": 0, "amountBeforeTax": [ 191.85, 149.87, 175.07, 184.84, 184.84, 166.83, 190.84 ] }, { "adultCount": 3, "childCount": 1, "amountBeforeTax": [ 191.85, 149.87, 175.07, 184.84, 184.84, 166.83, 190.84 ] } ], "type": "OccupancyRate" } } ] }
LOS Push Response Schema
Level | Field Name | Data Type | Required | Description | Example |
---|---|---|---|---|---|
1 | header | object | Y | / | / |
2 | @supplierId | string | Y | The ID of hotel suppliers in DerbySoft's system. MaxLength: 32 | HILTON |
2 | @distributorId | string | Y | The ID of distributor in DerbySoft's system. MaxLength: 32 | GTA |
2 | @version | string | Y | Version of API. MaxLength: 20 | v4 |
2 | @token | string | Y | A unique identifier is used for requests and responses, typically a UUID. MaxLength: 64 Note that this is an echo token, not an access token. | 18393849028490234 |
1 | hotelId | string | Y | ID of a hotel in supplier's system | GATHI |
1 | updateDateRange | object | Y | / | / |
2 | @startDate | string | Y | Start date of date range expressed as YYYY-MM-DD | 2028-01-01 |
2 | @endDate | string | Y | End date of the date range expressed as YYYY-MM-DD | 2028-01-04 |
1 | error | string | N | error response | Key not authorized |
1 | errorCode | string | C | error response | InvalidField |
1 | errorMessage | string | C | error response | Invalid Message |
LOS Push Response Example
{ "header": { "supplierId": "ABCDE", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "hotelId": "ABC123", "updateDateRange": { "startDate": "2028-01-01", "endDate": "2028-01-04" } }
{ "errorCode": "InvalidField", "errorMessage": " Unauthorized token" }
{ "errorCode": "InvalidField", "errorMessage": "Invalid Message" }
Did you find it helpful? Yes No
Send feedback