# API Reference

# The Metasearch Endpoint

Returns real-time pricing from multiple OTAs and direct channels for a specific hotel.

# Endpoint

GET /metasearch

# Base URL

https://api.hotel-universe.travel

# Required Parameters

Parameter Type Description
hotelId string Hotel identifier (can be Hotel Universe ID, Google Hotel ID, or other supported formats)
checkIn string Check-in date in YYYY-MM-DD format
nights number Number of nights to stay
adults number Number of adult guests
children number Number of child guests (use 0 if none)

# Optional Parameters

Parameter Type Default Options Description
hotelIdType string huId, googleHotelId, etc. Type of hotel identifier provided
rateType string cheapest cheapest, refundable Filter by rate type
currency string GBP Any ISO 4217 code Currency code (e.g., USD, EUR, GBP)
locale string us Any locale code Locale for localisation
deviceType string desktop desktop, mobile Device type

Defaults: If you omit optional parameters, the API uses the defaults above. For example, omitting currency will return prices in GBP.

# Example Requests

# Basic Request

curl --location 'https://api.hotel-universe.travel/metasearch?hotelId=07b7c69652&checkIn=2025-12-25&nights=2&adults=2&children=0' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Accept: application/json'

# With Optional Parameters

curl --location 'https://api.hotel-universe.travel/metasearch?hotelId=07b7c69652&checkIn=2025-12-25&nights=3&adults=2&children=0&rateType=refundable&currency=USD&locale=us&deviceType=desktop' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Accept: application/json'

# Using Different Hotel ID Types

# Using Google Hotel ID with explicit type
curl --location 'https://api.hotel-universe.travel/metasearch?hotelId=ChIJN1t_tDeuEmsRUsoyG83frY4&hotelIdType=googleHotelId&checkIn=2025-12-25&nights=2&adults=2&children=0' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Accept: application/json'

# Understanding the Response

The API returns an array of provider offers, each containing pricing and availability information.

# Core Fields (Always Present)

Field Type Description
advertiser object Provider information
advertiser.fullname string Full provider name (e.g., "Booking.com")
advertiser.shortname string Short provider name (e.g., "Booking")
advertiser.url string Booking URL for this offer
advertiser.isHotel boolean true if this is the hotel's direct site, false for OTAs
advertiser.isSponsored boolean Whether this is a sponsored placement
pricePerNight object Per-night pricing
pricePerNight.gross object Price including taxes (or net for pre-tax price)
pricePerNight.gross.text string Formatted price string (e.g., "£53")
pricePerNight.gross.value number Numeric price value (e.g., 52.87742)
totalPrice object Total stay pricing (same structure as pricePerNight)

# Optional Fields (May Be Present)

Field Type Description
cancellationDate string Cancellation deadline (e.g., "Nov 28")
rooms array Array of room offers with detailed rate information

# Room Details (When Available)

Each item in the rooms array contains:

Field Type Description
name string Room type name (e.g., "Standard Double Room")
imageUrls array Array of room image URLs
rates array Array of rate options for this room

Each rate contains:

Field Type Description
description string/null Rate description (e.g., "Free cancellation")
pricePerNight object Per-night price for this rate
totalPrice object Total price for this rate
refundable boolean Whether this rate is refundable (optional)
cancellationUntil string Cancellation deadline (optional)
breakfastIncluded boolean Whether breakfast is included (optional)

Important

Not all fields are guaranteed. Provider data completeness varies by region and hotel. Design your integration to handle missing fields gracefully.