π ARI Flow (Availability, Rates & Inventory)
The ARI Flow describes how external systems (Booking Engines, RMS, Channel Integrators, PMS partners, etc.) retrieve and update availability, prices, and restrictions in Octorate using the officially
π§ Flow Overview
1
Retrieve inventory (rooms & rate plans)
GET /rest/v2/roomrates/{accommodation}
Load product structure
2
Retrieve current ARI
GET /rest/v1/calendar/{accommodation}
Get prices, availability, restrictions
3
Update ARI in bulk
POST /rest/v1/calendar/bulk
Push availability, prices, restrictions
4
Retrieve ARI processing failures
GET /connect/rest/v1/calendar/failures
Check if push succeeded
5
(Optional) Check availability
GET /rest/v1/calendar/{accommodation}/{productId}/availabilityCheck
Validate bookability
6
(Optional) Create/Update products
POST /connect/rest/v1/roomrates/{accommodation}/{roomId}
Manage rooms & rates
π¨ Step 1 β Retrieve Room & Rate Inventory Structure
Before pushing ARI, you must understand the product structure (rooms, rate plans, derived rules).
Endpoint
GET /rest/v2/roomrates/{accommodation}What you get
Base rooms
Derived rates (with derivation rules)
Availability relationships
Price inheritance
OTA visibility
Policies connected to each rate
This defines exactly which product IDs you can update in ARI.
π₯ Step 2 β Retrieve Current Availability & Rates
Endpoint
Purpose
To display availability & prices in a booking engine
To allow an RMS to build pricing strategies
To audit the propertyβs current ARI state
You receive (per day Γ product)
pricestock / availabilityminStay,maxStaycloseToArrival,closeToDeparturestopSell
(Exact fields depend strictly on OpenAPI; I only include documented ones.)
π§ Step 3 β Push ARI Updates (Availability, Prices, Restrictions)
This is the core ARI operation.
Endpoint
Supports updating:
Availability
Price
Min/Max Stay
Close to Arrival / Departure
Stop Sell
Cut-off days
Multiple rooms Γ multiple days (bulk)
Example Payload
(Structure based on your OpenAPI)
Response
The API returns a process ID used for checking failures.
π Step 4 β Retrieve ARI Failures (Validation)
After sending ARI updates, you must check if every update succeeded.
Endpoint
Purpose
Retrieve the list of failed ARI updates for your account, including:
invalid date ranges
invalid product IDs
OTA mapping errors
pricing inheritance conflicts
policy restrictions
This replaces older /process/{id} calls.
π§ͺ Step 5 β Check Availability (Validation)
Useful for booking engines to confirm a product is sellable.
Endpoint
Behavior
200 OK β available
406 Not Acceptable β not available (CSR-like logic)
π§± Step 6 β Create or Update Room/Rate Products (Optional)
If you need to manage inventory programmatically:
Create/Update Product
Used for:
adding new rooms
adding new rate plans
updating derivation rules
setting adult/child policies
setting availability/price inheritance
Create Suite
β οΈ Error Handling
400
Invalid parameters
Bad date range, invalid values
401
Unauthorized
Token missing or wrong
403
Forbidden
No rights for this accommodation
404
Not Found
Product not found
500
Server Error
Octorate-side issue
π‘ Best Practices
Always load /roomrates before pushing ARI.
Use bulk to send all updates (more efficient).
Check the failures endpoint after every ARI push.
Do not push more than 31 days per request unless allowed.
Respect rate derivation logic (donβt overwrite derived children).
Retrieve availability before quoting a price.
Use UTC or ISO dates as documented.
π§ ARI Flow Summary
1
Load inventory structure
GET /rest/v2/roomrates/{accommodation}
2
Read current ARI
GET /rest/v1/calendar/{accommodation}
3
Push ARI
POST /rest/v1/calendar/bulk
4
Validate push
GET /connect/rest/v1/calendar/failures
5
Check availability
GET /rest/v1/calendar/{accommodation}/{productId}/availabilityCheck
6
(Optional) Create/Update products
/connect/rest/v1/roomrates/{...}
Last updated