Daily Push
Modified on: 2025-09-01 17:13
TABLE OF CONTENTS
Daily Push
This API enables us to send Daily ARI to distributors for a hotel within a specified date range. The Daily Push Model provides a detailed breakdown of rates and availability for each day, ensuring that distributors receive up-to-date information every time the supplier updates the prices or availability for the hotels and products that have been activated by the distributor.
When a supplier changes the prices or availability, we will push the updated ARI data, ensuring that the distributor always has the most current information. This data can be grouped for consecutive days that share the same rates and restrictions, optimizing the data flow and making it easier to process.
With this model, distributors are ensured that their systems remain accurate with the latest pricing and availability updates, without the need for constant polling.
In the following sections, we will provide the schemas and examples for the Daily Push Model, outlining how the ARI data is structured and how to integrate it seamlessly into your systems.
POST /ari/daily/push HTTP/1.1 URL: {AvailabilityPeer-Endpoint}/ari/daily/push Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc Accept-Encoding: gzip Content-Encoding: gzip Content-Type: application/json;charset=utf-8
Daily 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 | ABCDE |
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 | ID of the 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 | dailyAris | array | Y | Daily rate and inventory within a date range | / |
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 | @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. Refer to Occupancy Rate vs. Common Rate to get to know the differences. | / |
3 | rates | array[object] | C | This node will not display if it’s the Common Rate Model. | / |
4 | @adultCount | integer | C | The attribute will not display if it’s the Common Rate Model. | / |
4 | @childCount | integer | N | The attribute 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 ] |
4 | @suggestedSellingPriceBeforeTax | array[number] | C | 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 | arry[number] | C | 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] |
2 | availStatuses | / | / | For more clarification on the following restrictions, please refer to the article. | / |
3 | @close | array[boolean] | Y | Closed or not for each date | [false, false, false, false] |
3 | @minStayArrival | array[integer] | N | Minimum length of stay based on check-in for each date, zero means no restriction. | [ 0, 2, 0, 0 ] |
3 | @maxStayArrival | array[integer] | N | Maximum length of stay based on check-in for each date, zero means no restriction. | [ 0, 2, 0, 0 ] |
3 | @minStayThrough | array[integer] | N | Minimum length of stay based on a date through for each date, zero means no restriction. | [ 0, 2, 0, 0 ] |
3 | @maxStayThrough | array[integer] | N | Maximum length of stay based on a date for each date, zero means no restriction. | [ 0, 2, 0, 0 ] |
3 | @minAdvanceDay | array[integer] | N | Minimum days to book in advance for each date, zero means no restriction. | [ 0, 2, 0, 0 ] |
3 | @maxAdvanceDay | array[integer] | N | Maximum days to book in advance for each date, zero means no restriction. | [ 365, 365, 365, 365 ] |
3 | @cta | array[boolean] | N | Closed to arrival for each date | [ false, false, false, true ] |
3 | @ctd | array[boolean] | N | Closed to departure for each date | [ false, false, false, true ] |
3 | @fplos | array[string] | N | Full pattern length of stay to indicate if the stay is available. | [ "1111111", "1001111", "1000001", "0000000" ] |
Daily Push Request Example
{ "header": { "supplierId": "ABCDE", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "messageType": "Delta", "hotelId": "ABC123", "dateRange": { "startDate": "2028-01-01", "endDate": "2028-01-04" }, "currency": "USD", "dailyAris": [ { "roomId": "K1", "rateId": "BARB", "mealPlans": [ "BB", "BB", "BB", "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 ] } ] }, "availStatuses": { "close": [ false, false, false, false ], "minStayArrival": [ 0, 2, 0, 0 ], "maxStayArrival": [ 0, 2, 0, 0 ], "minStayThrough": [ 0, 2, 0, 0 ], "maxStayThrough": [ 0, 2, 0, 0 ], "minAdvanceDay": [ 0, 2, 0, 0 ], "maxAdvanceDay": [ 365, 365, 365, 365 ], "cta": [ false, false, false, true ], "ctd": [ false, false, false, true ], "fplos": [ "1111111", "1001111", "1000001", "0000000" ] } } ] }
{ "header": { "supplierId": "HILTON", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "messageType": "Delta", "hotelId": "GATHI", "dateRange": { "startDate": "2028-01-01", "endDate": "2028-01-04" }, "currency": "USD", "dailyAris": [ { "roomId": "K1", "rateId": "BARB", "connectionType": "Exchange", "mealPlans": [ "BB", "BB", "BB", "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 ] } ] }, "availStatuses": { "close": [ false, false, false, false ], "minStayArrival": [ 0, 2, 0, 0 ], "maxStayArrival": [ 0, 2, 0, 0 ], "minStayThrough": [ 0, 2, 0, 0 ], "maxStayThrough": [ 0, 2, 0, 0 ], "minAdvanceDay": [ 0, 2, 0, 0 ], "maxAdvanceDay": [ 365, 365, 365, 365 ], "cta": [ false, false, false, true ], "ctd": [ false, false, false, true ], "fplos": [ "1111111", "1001111", "1000001", "0000000" ] } } ] }
{ "header": { "supplierId": "ABCDE", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "messageType": "Delta", "hotelId": "ABC123", "dateRange": { "startDate": "2028-01-01", "endDate": "2028-01-04" }, "currency": "USD", "dailyAris": [ { "roomId": "K1", "rateId": "BARB", "mealPlans": [ "BB", "BB", "BB", "BB" ], "inventories": [ 9, 0, 9, 9 ], "rates": { "extraChildRates": [ { "amountAfterTax": [ 50.00, 50.00, 50.00, 50.00 ], "amountBeforeTax": [ 40.00, 40.00, 40.00, 40.00 ], "maxAge": 2, "minAge": 0 }, { "amountAfterTax": [ 60.00, 60.00, 60.00, 60.00 ], "amountBeforeTax": [ 50.00, 50.00, 50.00, 50.00 ], "maxAge": 8, "minAge": 3 }, { "amountAfterTax": [ 70.00, 70.00, 70.00, 70.00 ], "amountBeforeTax": [ 60.00, 60.00, 60.00, 60.00 ], "maxAge": 17, "minAge": 9 } ], "type": "OccupancyRate", "rates": [ { "adultCount": 1, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 623.23, 623.23, 623.23, 623.23 ] }, { "adultCount": 2, "amountBeforeTax": [ 520.19, 520.19, 520.19, 520.19 ], "amountAfterTax": [ 641.23, 641.23, 641.23, 641.23 ] } ] }, "availStatuses": { "close": [ false, false, false, false ], "minStayArrival": [ 0, 2, 0, 0 ], "maxStayArrival": [ 0, 2, 0, 0 ], "minStayThrough": [ 0, 2, 0, 0 ], "maxStayThrough": [ 0, 2, 0, 0 ], "minAdvanceDay": [ 0, 2, 0, 0 ], "maxAdvanceDay": [ 365, 365, 365, 365 ], "cta": [ false, false, false, true ], "ctd": [ false, false, false, true ], "fplos": [ "1111111", "1001111", "1000001", "0000000" ] } } ] }
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": "ABCDE", "distributorId": "GTA", "version": "v4", "token": "18393849028490234" }, "messageType": "Delta", "hotelId": "ABC123", "dateRange": { "startDate": "2028-01-01", "endDate": "2028-01-04" }, "currency": "USD", "dailyAris": [ { "roomId": "K1", "rateId": "BARB", "mealPlans": [ "BB", "BB", "BB", "BB" ], "inventories": [ 9, 0, 9, 9 ], "rates": { "type": "OccupancyRate", "rates": [ { "adultCount": 1, "childCount": 0, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 523.23, 523.23, 523.23, 523.23 ] }, { "adultCount": 1, "childCount": 1, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 523.23, 523.23, 523.23, 523.23 ] }, { "adultCount": 2, "childCount": 0, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 523.23, 523.23, 523.23, 523.23 ] }, { "adultCount": 2, "childCount": 1, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 523.23, 523.23, 523.23, 523.23 ] }, { "adultCount": 2, "childCount": 2, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 523.23, 523.23, 523.23, 523.23 ] }, { "adultCount": 3, "childCount": 0, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 523.23, 523.23, 523.23, 523.23 ] }, { "adultCount": 3, "childCount": 1, "amountBeforeTax": [ 502.19, 502.19, 502.19, 502.19 ], "amountAfterTax": [ 523.23, 523.23, 523.23, 523.23 ] } ] }, "availStatuses": { "close": [ false, false, false, false ], "minStayArrival": [ 0, 2, 0, 0 ], "maxStayArrival": [ 0, 2, 0, 0 ], "minStayThrough": [ 0, 2, 0, 0 ], "maxStayThrough": [ 0, 2, 0, 0 ], "minAdvanceDay": [ 0, 2, 0, 0 ], "maxAdvanceDay": [ 365, 365, 365, 365 ], "cta": [ false, false, false, true ], "ctd": [ false, false, false, true ], "fplos": [ "1111111", "1001111", "1000001", "0000000" ] } } ] }
Daily 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 | ABCDE |
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 | The ID of a hotel in the supplier's system | ABC123 |
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 |
Daily 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