post
https://ari-dev.thehotelplanet.com/v1/push/products
Push room and rate product catalog per hotel. Requires hotelId from hotels list. Use the same roomId and rateId in ARI pushes.
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
Hotel rooms & rates
POST /push/products
Create or update rooms, rate plans, and supplier mappings for one hotel. Required before POST /push/ari for that property.
Runnable example: Quick start — Step 2
Try it (curl)
Run after Step 1 (hotel TEST001 exists):
curl -sS -X POST "https://ari-dev.thehotelplanet.com/v1/push/products" \
-H "x-api-key: YOUR_SANDBOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"hotelId":"TEST001","products":[{"roomId":"R1","roomType":"double","rateId":"BAR","isAvailable":true,"roomName":"Test Double","rateName":"BAR","occupancy":{"maxOccupancy":2}}]}'Prerequisites
hotelIdalready pushed via Hotels list- Valid
x-api-keyheader
Request
Single JSON object:
| Field | Required | Description |
|---|---|---|
hotelId | Yes | Supplier hotel code |
products | Yes | Array of room + rate rows (min 1) |
Each product row
| Field | Required | Description |
|---|---|---|
roomId | Yes | Supplier room code |
roomType | Yes | Must match a Nuitee Cloud room type name (e.g. double) |
rateId | Yes | Supplier rate code |
roomName, rateName | Yes | Display names |
isAvailable | Yes | false archives / discontinues the room |
mealPlan | No | Code from reference data (e.g. BB, RO) |
occupancy.maxOccupancy | Yes | Must be non-zero |
occupancy.maxAdult, occupancy.maxChild | No | Occupancy limits |
cancelPolicies | No | Cancellation rules when supported |
channelManagerIdin the request body is ignored — the gateway sets it from your API key.
Example
{
"hotelId": "HOTEL_001",
"products": [
{
"roomId": "DBL",
"roomType": "double",
"rateId": "BAR",
"isAvailable": true,
"roomName": "Double Room",
"rateName": "Best Available",
"mealPlan": "BB",
"occupancy": { "maxOccupancy": 2, "maxAdult": 2, "maxChild": 0 }
}
]
}Success response
{ "code": "200", "message": "Hotel rates & rooms saved successfully" }Lifecycle
| Action | How |
|---|---|
| Add room/rate | New roomId or rateId in products |
| Update | Re-post with same ids |
| Discontinue | isAvailable: false on the product row |
Link to ARI
ARI must use the same hotelId, roomId, and rateId strings. Unknown ids return RoomID not found or RateID not found.
Common errors
| Message | Fix |
|---|---|
Hotel ID is not found | Push hotel first |
RoomType is not valid | Use a supported room type or contact onboarding |
MealPlan is not valid | Use a supported meal plan code |