The ARI Push API automatically sends hotel availability and rate updates from Minihotel to a partner-hosted endpoint. Unlike the primary ARI API, which requires partners to pull data from Minihotel, this interface pushes updates at predefined intervals.
Although ARI Push sends data to a partner-hosted endpoint, it is separate from the Minihotel Webhooks API and uses a different endpoint configuration and message structure. It does not use the retry mechanism described in the Webhooks documentation.
Who should use this interface?
This interface is primarily intended for OTAs and channel managers that maintain their own database of each property’s availability and rates. It allows them to synchronize this data with Minihotel.
Technology and format
ARI Push uses an XML-based interface. Requests are sent using the POST method.
The endpoint URL is provided and hosted by the partner. ARI Push supports only one configured endpoint URL at a time. A test URL can be configured initially and replaced with the production URL once testing is complete.
Availability updates are sent as deltas, generally every 2 to 10 minutes, depending on the configuration and current resource status of the relevant service. A full availability synchronization is also sent once every 24 hours, at midnight.
Rates are generally sent as full synchronization, either on demand when triggered by a user or automatically approximately every two hours.
The ARI Push request timeout is 300 seconds. Minihotel's team will coordinate the endpoint setup and room and rate-code mapping with the partner.
https://providerdomain.com/?hotelid=dummyhotelid
| ProviderDomain | The domain of the provider we would like to send the request to. |
| hotelid | The hotel ID of the desired hotel. |
Sending Availability
All these attributes are mandatory
| Parameter | Description | Example |
|---|---|---|
| id | The room ID to be updated | "Double","Suite" |
| Date | The specific night to be updated, formatted as yyyy-mm-dd | "2026-03-26" |
| Allocation | The number of units currently available for booking | "3" |
| maxavail | The total number of units of this type that exist at the hotel | "4" |
<AvailRateUpdateRQ>
<RoomType id="Double">
<Inventory date="2026-03-26" Allocation="3" maxavail="4" />
</RoomType>
<RoomType id="Suite">
<Inventory date="2026-03-26" Allocation="3" maxavail="4" />
</RoomType>
</AvailRateUpdateRQ>
<?xml version="1.0" encoding="UTF-8"?>
<AvailRateUpdateRS>
<Success/>
</AvailRateUpdateRS>
Note: Room IDs must be confirmed with the Minihotel team before proceeding to production.
Sending Rates
All these attributes are mandatory
| Parameter | Description | Example |
|---|---|---|
| id | The room ID to be updated | "Double","Suite" |
| Date | The specific night to be updated, formatted as yyyy-mm-dd | "2026-03-26" |
| ratecode | The rate which the price would be set for | "Standard","Non Refundable" |
| Price | Price of the room | "850","990" |
RateCode Extras & Restrictions
The Rate Code attribute allows you to send extra rates and restrictions. Closure restrictions are transmitted in binary format: 0 indicates 'Open' and 1 indicates "Closed" (e.g., the ratecode "price" is either 0 or 1). Minimum nights and extra rates are sent as positive integers.
| RateCode | Type | Description |
|---|---|---|
| CLS_NONE | Restriction | Close for Stayover – The “Regular” Close, most common one |
| CLS_ARR | Restriction | Close for Arrival – Closed only for arrival date, less commonly used |
| CLS_DEP | Restriction | Close for Departure – Closed only for departure date, less commonly used |
| MIN_NGT | Restriction | Minimum Nights for Stayover – The “Regular” Minimum Nights, most common one |
| MIN_NGT1 | Restriction | Minimum Nights for Arrival – Only for arrival date, less commonly used |
| EXTRA_A | Extra Rate | Adult Extra Price |
| EXTRA_C | Extra Rate | Child Extra Price |
| EXTRA_B | Extra Rate | Baby Extra Price |
| MEAL_A_BR | Extra Rate | Extra Meal Price for Adult - Breakfast |
| MEAL_C_BR | Extra Rate | Extra Meal Price for Child. You can use B for baby |
| MEAL_A_LU | Extra Rate | Extra Meal Price for Adult - Lunch |
| MEAL_C_LU | Extra Rate | Extra Meal Price for Child. You can use B for baby |
| MEAL_A_DI | Extra Rate | Extra Meal Price for Adult - Dinner |
| MEAL_C_DI | Extra Rate | Extra Meal Price for Child. You can use B for baby |
| SGN_RED_ABS | Extra Rate | Single Use Reduction Rate (When single person uses a room) |
<?xml version="1.0" encoding="UTF-8"?>
<AvailRateUpdateRQ>
<RoomType id="Double">
<Rates date="2026-07-30">
<Rate ratecode="Standard" Price="350"/>
<Rate ratecode="NonRef" Price="70"/>
<Rate ratecode="EXTRA_A" Price="50"/>
<Rate ratecode="EXTRA_C" Price="30"/>
<Rate ratecode="CLS_NONE" Price="1"/>
<Rate ratecode="SGN_RED_ABS" Price="100"/>
<Rate ratecode="BB_A" Price="50"/>
<Rate ratecode="BB_C" Price="40"/>
</Rates>
</RoomType>
<RoomType id="Suite">
<Rates date="2026-07-30">
<Rate ratecode="Non Refundable" Price="990"/>
<Rate ratecode="EXTRA_A" Price="70"/>
</Rates>
</RoomType>
</AvailRateUpdateRQ>
<?xml version="1.0" encoding="UTF-8"?>
<AvailRateUpdateRS>
<Success/>
</AvailRateUpdateRS>
Note: Rate codes must be verified with the Minihotel team before going live. All extra rates and meal codes are specified in the local currency by default. To specify a foreign currency, use an underscore in the code (e.g., EXTRA_A_USD, EXTRA_A_EUR). If only one currency is being used, the underscore is not required.
