Skip to content
Skip to main content
OnArrival

Find hotels, cities and landmarks as customers type.

Add autocomplete, location search and hotel matching to your booking flow. The standalone places API also works with booking systems outside OnArrival.

Illustration: a traveller types on a phone at a bright cafe table while a column of small location pins above the screen resolves into one warm glowing pin
bookable properties, canonical IDs
2M+
median typeahead response
45ms
query languages, typo-tolerant
30+
Inventory

One index. Four entity types.

A hotel, a neighbourhood, an airport and a landmark are different things to a map. To a traveller they are all "where I want to stay". The index treats them that way.

HOTELS

Bookable properties

The 2M+ deduplicated properties from the Hotels catalog, each carrying its canonical ID. A hotel result is not a pin with a phone number: it is the exact entity your booking flow consumes.

2M+ canonical entities
GEO

Cities, areas, airports

Cities, neighbourhoods and every airport with scheduled service, with the containment geometry to answer "hotels in Shoreditch" differently from "hotels in London".

Neighbourhood-level precision
POI

Landmarks travellers use

"Near the Eiffel Tower", "walking distance from Bandra station": the anchors real hotel queries hang on, indexed with the geometry to rank results around them.

250k+ landmarks indexed
RESOLVE

Entity resolution

Free text, coordinates or a supplier’s own code in; one canonical, typed entity out. The cross-walk that lets a search result, a booking record and an analytics row agree on which hotel they mean.

Real-time + batch
How it works

Suggest, search, resolve.

Three endpoints. Suggest powers the search box with ranked, typo-tolerant completions per keystroke. Search takes a resolved entity or a landmark and returns bookable properties around it. Resolve turns free text, coordinates or foreign codes into one canonical entity. Every response carries the same typed IDs, whatever the query looked like.

GET /v1/places/suggest?q=grnd+hyat+dubay

200 OK
{ "suggestions": [ {
    "type": "hotel",
    "entity_id": "prop_9f2c81",
    "name": "Grand Hyatt Dubai",
    "city": "Dubai",
    "bookable": true,
    "score": 0.97 } ] }
In depth

Find the hotel. Keep its booking ID.

Help travellers search by hotel name, neighbourhood or landmark. Return a property ID your booking flow can use, even when the name is misspelt.

01

Bookable entities, not POIs

Every hotel result carries the canonical property ID from our mapping pipeline, with geo, type and bookability attached. What comes back from the search box is the same entity a booking flow consumes, so there is no fragile name-matching step between search and checkout.

Results
02

From search result to hotel rates

A hotel result includes the property ID used by the booking flow. Use that ID to request rates without matching the hotel name again. City and landmark results help travellers narrow the location.

Position
03

Misspelt, multilingual, still found

"Grnd Hyat Dubay" and the same hotel typed in Cyrillic, Arabic or Devanagari resolve to one property. Fuzzy matching and transliteration across 30+ query languages, tuned on real travel search behaviour rather than a generic spell-checker.

Queries
04

Landmark-anchored search

Travellers do not search by latitude. "Hotels near the Blue Mosque" and "close to Churchgate station" are first-class queries: 250k+ landmarks with walking-distance geometry decide what near means, and results rank by it.

Geo
05

Pricing by monthly query volume

Choose a monthly query tier for your expected search traffic. Your agreement sets the included volume, throughput limits and any overage terms.

Pricing
06

Standalone by design

This is an independent service, not a feature of our booking stack. Put it in front of any inventory: the resolution API cross-walks our canonical IDs to your own supplier codes, and nothing obliges you to book a single room through OnArrival.

Standalone
Capabilities

Places Search API capabilities

Search
  • Typeahead autocomplete
  • Geo + radius search
  • Landmark + POI anchors
  • Typo tolerance built in
  • Transliteration, 30+ languages
Resolve
  • Canonical entity IDs
  • Free text to entity
  • Coordinates to property
  • Supplier code cross-walk
  • Batch resolution
Coverage
  • 2M+ mapped properties
  • Cities + neighbourhoods
  • Airports with scheduled service
  • 250k+ landmarks and POIs
  • Continuously re-verified
Integrate
  • REST + drop-in typeahead widget
  • Flat pricing, no sessions
  • Throughput scoped to your plan
  • Works with any booking stack
  • Same IDs as the Hotels catalog
The point

A hotel suggestion should lead to the right property. A city or landmark should help the traveller find nearby stays. Each result tells your app which type it is.

— search that ends in a booking, not a pin
Bookable properties indexed2M+
Median typeahead response45ms
Query languages30+
Who it's for

Who uses Places Search?

OTA & meta

Travel sellers

Replace the generic places dependency in the box that starts every session: hotel matching that lands on the right property, landmark queries that convert, and a bill that stops scaling with keystrokes.

EXAMPLE WORKFLOWResolve a hotel name to its property ID.
Fintech & super-apps

Embedded travel

A travel tab is only as good as its first input. Ship typeahead that understands travel from day one, without building a places index or negotiating a maps contract.

EXAMPLE WORKFLOWAdd destination search to a travel tab.
AI agents

Agentic booking

LLMs produce place names, not IDs. The resolution endpoint turns "that hotel near the Trevi Fountain" into a canonical bookable entity an agent can act on in one call.

EXAMPLE WORKFLOWTurn an agent’s place name into a typed result.
Questions

Places Search: common questions

Something we haven’t covered? Talk to the team. We can help you work through your integration.

Illustration: a concierge points out one precise spot on a large wall map for two travellers, a single warm pin marking the place
Is this a standalone product, or do I have to book through OnArrival?

Standalone. Places Search is an independent service with its own key and flat pricing, and it works in front of any booking stack. The resolution API cross-walks our canonical IDs to your own supplier codes, so you can search with us and book anywhere.

How is this different from a generic places API?

Generic places APIs return points of interest: pins, addresses, phone numbers. Places Search returns canonical travel entities: hotels with bookability, cities, airports and landmarks, deduplicated and typed, ready to hand to a booking flow without a name-matching step.

What does the pricing model look like?

Plans use monthly query-volume tiers. Confirm included usage, throughput and overage terms during onboarding so the plan matches your expected autocomplete traffic.

Which languages and scripts are supported?

30+ query languages with transliteration across Latin, Cyrillic, Arabic, Devanagari and CJK scripts. Typo tolerance is tuned on travel search behaviour, so misspelt hotel names and phonetic spellings still resolve to the right property.

Do the IDs match the rest of the OnArrival platform?

Yes. A hotel entity from Places Search carries the same canonical property ID as the Hotels catalog, produced by the same mapping pipeline that keeps duplicates under 0.1%. Resolve once and every downstream call agrees on which hotel you mean.

How fast is it, and are there rate limits?

Typeahead uses edge-cached indexes, with a published median response of 45ms. Your plan sets throughput limits; size them for expected traffic and agree on handling for bursts.

Related reading

All field notes →
Start building
Try Places Search with sandbox access.