ARI push

Push availability, rates, inventory, and restrictions for date ranges. Use pricingModel guest or unit; weekday exclusions use the exludedDays field.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Push ARI

POST /push/ari

Send one or more date-range updates. Request body: JSON array.

Runnable walkthrough: Complete steps 1–3 (hotels → products → ARI) in Quick start — runnable examples.

Try it (curl)

After you have a sandbox key and have run hotels + products for TEST001:

export BASE="https://ari-dev.thehotelplanet.com/v1"
export KEY="YOUR_SANDBOX_API_KEY"

curl -sS -X POST "$BASE/push/ari" \
  -H "x-api-key: $KEY" -H "Content-Type: application/json" \
  -d '[{"hotelId":"TEST001","startDate":"2025-12-01","endDate":"2025-12-07","pricingModel":"unit","data":[{"roomId":"R1","rates":[{"rateId":"BAR","price":100,"inventory":5,"stopSell":false}]}]}]'

Expected: { "code": "200", "message": "ARI request saved successfully" }

Prerequisites

Required fields (per array element)

FieldDescription
hotelIdSupplier hotel code
startDateStart of range (YYYY-MM-DD recommended)
endDateEnd of range
pricingModelguest or unit (lowercase recommended)
dataRooms and rates to update

Optional fields

FieldDescription
exludedDaysWeekdays to exclude from the update: sun, mon, tue, wed, thu, fri, sat
Per rate: inventory, stopSell, mealPlan, minLengthStay, maxLengthStay, minStayArrival, maxStayArrival, minAdvanceReservation, maxAdvanceReservation, cta, ctd

The JSON key is exludedDays (not excludedDays). This matches the API contract.

Weekday exclusion example

Apply rates Monday–Friday only for June 2025:

{
  "hotelId": "HOTEL_001",
  "startDate": "2025-06-01",
  "endDate": "2025-06-30",
  "pricingModel": "unit",
  "exludedDays": ["sat", "sun"],
  "data": [
    {
      "roomId": "DBL",
      "rates": [
        { "rateId": "BAR", "price": 120.0, "inventory": 5, "stopSell": false }
      ]
    }
  ]
}

Unit pricing

One price per room night (all guests on the room use the same nightly rate unless booking rules apply occupancy from static data):

[
  {
    "hotelId": "HOTEL_001",
    "startDate": "2025-12-01",
    "endDate": "2025-12-31",
    "pricingModel": "unit",
    "data": [
      {
        "roomId": "DBL",
        "rates": [
          {
            "rateId": "BAR",
            "price": 120.0,
            "inventory": 8,
            "stopSell": false,
            "minLengthStay": 1,
            "maxLengthStay": 14
          }
        ]
      }
    ]
  }
]

Guest pricing (example: 2 adults + 1 child)

Send separate rate lines per age bucket when pricingModel is guest:

[
  {
    "hotelId": "HOTEL_001",
    "startDate": "2025-12-01",
    "endDate": "2025-12-01",
    "pricingModel": "guest",
    "data": [
      {
        "roomId": "DBL",
        "rates": [
          { "rateId": "BAR", "price": 60.0, "guests": 2, "ageCategory": "adult" },
          { "rateId": "BAR", "price": 30.0, "guests": 1, "ageCategory": "child" }
        ]
      }
    ]
  }
]

Example nightly total if summed per bucket: (2 × 60) + (1 × 30) = 150.00. Confirm final booking math with your onboarding contact.

Inventory and stop sell

FieldEffect
stopSell: trueRate closed for booking
stopSell: falseRate open
inventoryAvailable room count to sell

Always send price when updating rates.

Success response

{
  "code": "200",
  "message": "ARI request saved successfully"
}

Common errors

HTTP / messageFix
HotelID not foundPush hotel first
RoomID not found / RateID not foundPush products first; check IDs match
PricingModel should be either 'guest' or 'unit'Use valid pricing model
rates.guests is required when pricing model is per 'guest'Add guests and ageCategory on guest model

Operational notes

  • No application rate limit is documented for ARI; push at least daily for active hotels.
  • Re-posting the same data re-applies updates (no idempotency key).
  • After changing webhook URLs or API keys, allow up to 5 minutes for cache refresh or retry after a service restart.
Body Params

Daily room availability, rates, and inventory.

Responses

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json