Skip to main content

Hotels Catalog

The hotels endpoint provides access to hotel catalog data including names, descriptions, amenities, images, and location information.

Endpoint

POST /content/hotels/v1/hotels

Use Cases

Get Hotel Details

{
"query": {
"hotelCodes": ["12345"]
}
}

List Hotels by Destination

{
"query": {
"destinationCodes": ["BCN"],
"maxSize": 100
}
}

Filter by Connection

{
"query": {
"connectionCode": "CONN_1",
"maxSize": 50
}
}

Response Structure

{
"hotels": {
"hotels": [
{
"code": "12345",
"hotelName": "Example Hotel Barcelona",
"descriptions": [
{
"text": "A beautiful hotel in the heart of Barcelona",
"language": "en"
}
],
"location": {
"city": "Barcelona",
"countryCode": "ES",
"latitude": 41.3851,
"longitude": 2.1734
},
"amenities": [
{ "code": "WIFI", "name": "Free WiFi" },
{ "code": "POOL", "name": "Swimming Pool" }
],
"media": [
{
"url": "https://example.com/hotel-image.jpg",
"mediaType": "IMAGE",
"isPrimary": true
}
],
"starRating": 4,
"boardCodes": ["RO", "BB", "HB"]
}
],
"count": 1,
"token": null
}
}

Key Fields

  • code - Bundleport hotel code (use in search)
  • hotelName - Hotel name
  • descriptions - Multi-language descriptions
  • location - Address and coordinates
  • amenities - Available amenities
  • media - Images and videos
  • starRating - Hotel star rating (1-5)
  • boardCodes - Available meal plans

Pagination

Use tokens for large result sets:

let token = null;
let allHotels = [];

do {
const result = await getHotels({
query: { maxSize: 1000 },
token,
});

allHotels.push(...result.hotels.hotels);
token = result.hotels.token;
} while (token);

Next Steps