# Hotel Search and Autocomplete API | OnArrival

> Search hotels, cities and landmarks with autocomplete and location matching. Use the standalone places API with your existing booking system.

Source: https://www.onarrival.com/places

---

# Find hotels, cities and landmarks as customers type.

Help people find where they are going as they type: hotels, cities and landmarks, matched to real bookable places. It works with OnArrival booking or with the booking system you already run.

[Request a key](https://www.onarrival.com/signup) [Read the docs](https://docs.onarrival.com/)

bookable properties, shared IDs

2M+

median typeahead response

45ms

query languages, typo-tolerant

30+

In short

## Places Search, in four steps.

The search box is where every trip starts. Places Search turns what people type into a real, bookable place.

1. Type A traveller starts typing, typos and all.
2. Suggest Hotels, cities, airports and landmarks appear as they type.
3. Pick Each result says what kind of place it is and carries its own ID.
4. Book A hotel’s ID goes straight to rates, with no name matching.

What is indexed

## One index. Four kinds of place.

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

HOTELS

### Bookable properties

The 2M+ deduplicated properties from the Hotels catalog, each with its shared ID. A hotel result is not just a pin with a phone number: it is the exact record your booking flow uses.

2M+ bookable properties

GEO

### Cities, areas, airports

Cities, neighbourhoods and every airport with scheduled service, with the boundaries 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 searches use, indexed with the shapes needed to rank results around them.

250k+ landmarks indexed

RESOLVE

### Entity resolution

Free text, coordinates or a supplier’s own code in; one typed place with a shared ID out. So 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 fills the search box with ranked, typo-tolerant suggestions as people type. Search takes a place or landmark and returns bookable hotels around it. Resolve turns free text, coordinates or other companies’ codes into one place with a shared ID. Every response uses the same typed IDs, whatever the query looked like.

[Read the reference](https://docs.onarrival.com/)

Example · a traveller types

grnd hyat dub45ms median

HotelGrand Hyatt Dubaiprop_9f2c81 · bookable

CityDubaiUnited Arab Emirates

AirportDubai InternationalDXB

Traveller picks

Grand Hyatt Dubai

same ID

Rates request

prop_9f2c81

No second name-matching step between the search box and checkout.

**See the API call**

```
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 places, not map pins

Every hotel result carries the shared hotel ID from our mapping pipeline, plus location, type and whether it can be booked. What comes out of the search box is what your booking flow uses, so there is no fragile name-matching step before checkout.

Results

02

### From search result to hotel rates

A hotel result includes the property ID used by the booking flow. Request rates with that ID, without matching the hotel name again. City and landmark results help travellers narrow down the location.

Position

03

### Misspelt, multilingual, still found

"Grnd Hyat Dubay" and the same hotel typed in Cyrillic, Arabic or Devanagari all lead to one property. Fuzzy matching and transliteration (reading one alphabet as another) across 30+ query languages, tuned on real travel searches 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 real queries: 250k+ landmarks with walking-distance shapes 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

Places Search is an independent service, not a feature of our booking stack. Put it in front of any inventory: the resolve API maps our IDs to your own supplier codes, and nothing obliges you to book a single room through OnArrival.

Standalone

@media (prefers-reduced-motion: no-preference){ .plc-ring{opacity:0; transform-box:fill-box; transform-origin:center;} .oa-illo-in .plc-ring{animation:plcRing .7s cubic-bezier(.2,.7,.2,1) forwards;} .plc-hotel, .plc-row, .plc-stamp, .plc-lbl{opacity:0;} .oa-illo-in .plc-hotel, .oa-illo-in .plc-row, .oa-illo-in .plc-lbl{animation:plcFade .45s ease-out forwards;} .oa-illo-in .plc-stamp{animation:plcFade .6s 2.3s ease-out forwards;} .plc-ping{opacity:0; transform-box:fill-box; transform-origin:center;} .oa-illo-in .plc-ping{animation:plcPing 2.8s 2.2s ease-out infinite;} } @keyframes plcRing{from{opacity:0; transform:scale(.6)} to{opacity:1; transform:scale(1)}} /* opacity-only on text and groups. */ @keyframes plcFade{from{opacity:0} to{opacity:1}} @keyframes plcPing{0%{opacity:.55; transform:scale(1)} 45%{opacity:0; transform:scale(2.6)} 100%{opacity:0; transform:scale(2.6)}} LANDMARK SEARCH · WHAT NEAR MEANShotels near the Blue Mosque5 min10 min15 mintoo far to walkBlue MosqueABCRANKED BY WALKING TIME1AHotel A4 min walk2BHotel B8 min walk3CHotel C13 min walknear, measured on foot

Capabilities

## Places Search API capabilities

Search

- Typeahead autocomplete
- Location + radius search
- Landmark anchors
- Typo tolerance built in
- Transliteration, 30+ languages

Resolve

- Shared place IDs
- Free text to place
- 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 service in the box that starts every session. Hotel matches land on the right property, landmark searches convert, and the bill stops growing with every keystroke.

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 search 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

AI models produce place names, not IDs. The resolve endpoint turns "that hotel near the Trevi Fountain" into a bookable place 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](https://www.onarrival.com/company#contact). We can help you work through your integration.

**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 resolve API maps our 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 travel places: bookable hotels, cities, airports and landmarks, deduplicated and labelled by type, 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 searches, so misspelt hotel names and phonetic spellings still lead to the right property.

**Do the IDs match the rest of the OnArrival platform?**

Yes. A hotel from Places Search carries the same shared property ID as the Hotels catalog, produced by the same mapping pipeline that keeps duplicates under 0.1%. Resolve once and every later 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 how bursts are handled.

Pairs well with

## Build the rest of the trip.

[Product Hotels Hotel booking with property and room mapping built in.](https://www.onarrival.com/hotels) [Product Flights Search, book and manage flights through one API.](https://www.onarrival.com/flights) [Product Bundles Book flights, hotels and activities as one trip.](https://www.onarrival.com/bundles)

## Related reading

[All field notes →](https://www.onarrival.com/blog)

[Data and supply · 11 min Hotel mapping: why one property appears five times Different suppliers can list the same hotel under different names. Hotel mapping joins those records while keeping room types, rate conditions and booking references distinct. **Pranav Upadhyay**](https://www.onarrival.com/blog/hotel-mapping-deduplication) [Data and supply · 11 min How we built our hotel and room mapping pipeline Our mapping pipeline compares supplier records, checks room attributes and sends uncertain matches for review. The key is keeping the evidence behind each decision. **Pranav Upadhyay**](https://www.onarrival.com/blog/how-we-solved-room-mapping)

Start building

Try Places Search with sandbox access.

[Request a key](https://www.onarrival.com/signup) [Read the docs](https://docs.onarrival.com/)
