OpenTravelIndex
Lab test deployment at travel.lab.pinnacledigital.com. Demo hotels are fictional; no payments are taken. The name and namespace are provisional.

Search extension (<ns>.lodging.search)

UCP Lodging assumes properties and offers are "discovered from upper-funnel search" and leaves that search out of scope. This extension is that search, for producers that serve several properties (an index, a hosting platform, a chain) and for the OTI index itself.

Request (search-request.json)

FieldRequiredMeaning
locationone of location, place, query{ lat, lng, radius_km } (default 25 km, max 500)
placeFree text matched against locality, region and country
queryFree text matched against name, description and amenities
stay_datesyes{ start_date, end_date }, property-local
occupancyyes{ adults, children?, child_ages?, total }
roomsDefault 1, max 9
amenitiesEvery listed amenity must match
max_total{ amount, currency }: drop offers above it
limitDefault 20, max 50

Response (search-response.json)

results[]: each entry has the property summary (with provenance), distance_km when searching by location, availability (available, no_availability, unknown when the property publishes no live availability, error when it did not answer in time) and offers[] (availability-extension offers).

sponsored[]: paid placement, each with a label. It is never merged into results, and ranking of results never depends on payment.

Ordering

results are ordered by availability, then free domain verification, then conformance level, then distance, then text relevance. Tier, subscription and sponsorship are not inputs to ranking.