Tripadvisor · Schema
Tripadvisor Hotel Availability Response
The response payload returned by a partner's availability endpoint when Tripadvisor checks hotel pricing and room availability in real-time via the Hotel Availability Check (HAC) API v8.
AttractionsHotelsHospitalityRestaurantsReviewsTravel
Properties
| Name | Type | Description |
|---|---|---|
| api_version | integer | The API version number of this response. |
| hotels | array | Array of hotel availability results, one per requested hotel. |
| errors | array | Array of errors encountered during the availability check. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://developer-tripadvisor.com/schemas/tripadvisor/hotel-availability.json",
"title": "Tripadvisor Hotel Availability Response",
"description": "The response payload returned by a partner's availability endpoint when Tripadvisor checks hotel pricing and room availability in real-time via the Hotel Availability Check (HAC) API v8.",
"type": "object",
"required": ["api_version", "hotels"],
"properties": {
"api_version": {
"type": "integer",
"description": "The API version number of this response.",
"const": 8
},
"hotels": {
"type": "array",
"description": "Array of hotel availability results, one per requested hotel.",
"items": {
"$ref": "#/$defs/HotelAvailability"
}
},
"errors": {
"type": "array",
"description": "Array of errors encountered during the availability check.",
"items": {
"$ref": "#/$defs/AvailabilityError"
}
}
},
"$defs": {
"HotelAvailability": {
"type": "object",
"description": "Availability and pricing information for a single hotel property.",
"required": ["hotel_id", "availability"],
"properties": {
"hotel_id": {
"type": "string",
"description": "The partner's internal hotel ID matching the request."
},
"availability": {
"type": "string",
"description": "The availability status for this hotel.",
"enum": ["available", "unavailable", "error"]
},
"room_types": {
"type": "object",
"description": "Map from room type keys to room type objects. Must include an entry for every unique room_type_key used in room_rates.",
"additionalProperties": {
"$ref": "#/$defs/RoomType"
}
},
"room_rates": {
"type": "object",
"description": "Map from room rate keys to room rate objects containing pricing details.",
"additionalProperties": {
"$ref": "#/$defs/RoomRate"
}
},
"url": {
"type": "string",
"format": "uri",
"description": "Deep link URL to the partner's booking page for this hotel."
}
}
},
"RoomType": {
"type": "object",
"description": "A room type available at the hotel.",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Deep link URL to the booking page for this room type."
},
"description": {
"type": "string",
"description": "A description of the room type."
},
"room_type_code": {
"type": "string",
"description": "Persistent room type code that identifies this room type across requests."
},
"photos": {
"type": "array",
"description": "Array of photos for this room type.",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "URL of the room type photo."
},
"caption": {
"type": "string",
"description": "Caption for the room type photo."
}
}
}
},
"amenities": {
"type": "array",
"description": "Array of amenity names available in this room type.",
"items": {
"type": "string"
}
},
"max_occupancy": {
"type": "integer",
"description": "The maximum number of guests for this room type.",
"minimum": 1
},
"bed_types": {
"type": "array",
"description": "Array of bed type descriptions.",
"items": {
"type": "string"
}
}
}
},
"RoomRate": {
"type": "object",
"description": "Pricing details for a specific room rate.",
"required": ["room_type_key", "line_items"],
"properties": {
"room_type_key": {
"type": "string",
"description": "Key referencing the room type this rate applies to."
},
"rate_plan_code": {
"type": "string",
"description": "Persistent rate plan code identifying this rate across requests."
},
"rate_plan_description": {
"type": "string",
"description": "Description of the rate plan."
},
"url": {
"type": "string",
"format": "uri",
"description": "Deep link URL to book at this rate."
},
"line_items": {
"type": "array",
"description": "Array of line item objects for rate, tax, and fee breakdowns.",
"items": {
"$ref": "#/$defs/LineItem"
},
"minItems": 1
},
"cancellation_rules": {
"$ref": "#/$defs/CancellationRules"
},
"occupancy": {
"type": "integer",
"description": "The number of guests this rate is for.",
"minimum": 1
},
"is_refundable": {
"type": "boolean",
"description": "Whether this rate is refundable."
},
"meal_plan": {
"type": "string",
"description": "The meal plan included with this rate.",
"enum": ["none", "breakfast", "half_board", "full_board", "all_inclusive"]
}
}
},
"LineItem": {
"type": "object",
"description": "A pricing line item representing a rate, tax, or fee component.",
"required": ["type", "price", "currency"],
"properties": {
"type": {
"type": "string",
"description": "The line item type.",
"enum": ["rate", "tax", "fee"]
},
"sub_type": {
"type": "string",
"description": "The sub-type providing more detail about the line item."
},
"price": {
"type": "number",
"description": "The monetary amount for this line item.",
"minimum": 0
},
"currency": {
"type": "string",
"description": "The three-letter ISO 4217 currency code.",
"minLength": 3,
"maxLength": 3
},
"paid_at_checkout": {
"type": "boolean",
"description": "Whether this amount is paid at checkout rather than at booking time."
}
}
},
"CancellationRules": {
"type": "object",
"description": "Cancellation policy rules for a room rate with time-windowed penalties.",
"properties": {
"free_cancellation": {
"type": "boolean",
"description": "Whether free cancellation is available."
},
"rules": {
"type": "array",
"description": "Array of cancellation rule periods with associated penalties.",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"format": "date-time",
"description": "The start date-time of this cancellation policy window."
},
"end": {
"type": "string",
"format": "date-time",
"description": "The end date-time of this cancellation policy window."
},
"penalty_amount": {
"type": "number",
"description": "The penalty amount charged if cancelled during this period.",
"minimum": 0
},
"penalty_currency": {
"type": "string",
"description": "The currency of the penalty amount.",
"minLength": 3,
"maxLength": 3
},
"penalty_type": {
"type": "string",
"description": "The type of penalty applied.",
"enum": ["amount", "percentage", "nights"]
}
}
}
}
}
},
"AvailabilityError": {
"type": "object",
"description": "An error encountered for a specific hotel during the availability check.",
"required": ["hotel_id"],
"properties": {
"hotel_id": {
"type": "string",
"description": "The partner hotel ID that experienced the error."
},
"error_type": {
"type": "string",
"description": "The classification of the error."
},
"message": {
"type": "string",
"description": "A human-readable error message describing what went wrong."
}
}
}
}
}