A quick demo might save your team weeks of engineering work.
Resources
Free Tools
Map a hotel name to its canonical page on Booking, Agoda, Expedia, TripAdvisor, Priceline, Trip.com and others — discover every link a property has, geocode any place, and turn matched pages into IDs you can pull rates, reviews and photos with.
curl "https://api.stayapi.com/v1/meta/match" \ -G \ -H "x-api-key: $STAYAPI_KEY" \ -d "name=conrad tokyo" \ -d "platform=booking"
curl "https://api.stayapi.com/v1/meta/search" \ -G \ -H "x-api-key: $STAYAPI_KEY" \ -d "hotel_name=Conrad Tokyo" \ -d "location=Tokyo"
curl "https://api.stayapi.com/v1/meta/coordinates-lookup" \ -G \ -H "x-api-key: $STAYAPI_KEY" \ -d "term=Shiodome, Tokyo"
{
"success": true,
"query": {
"name": "conrad tokyo",
"platform": "booking"
},
"match": {
"title": "Conrad Tokyo",
"url": "https://www.booking.com/hotel/jp/conrad-tokyo.html"
}
}
{
"success": true,
"hotel_name": "Conrad Tokyo",
"location": "Tokyo",
"links": {
"booking_com": "https://booking.com/hotel/jp/conrad-tokyo.html",
"expedia": "https://expedia.com/Tokyo-Hotels-Conrad-Tokyo.h1199553",
"tripadvisor": "https://tripadvisor.com/Hotel_Review-d508158",
"agoda": "https://agoda.com/conrad-tokyo/hotel/tokyo-jp.html",
"official_website": "https://hilton.com/en/hotels/tyocici-conrad-tokyo/"
},
"metadata": { "total_results_found": 8 }
}
{
"success": true,
"query": "shiodome, tokyo",
"total": 1,
"locations": [
{
"name": "Shiodome, Minato City, Tokyo, Japan",
"type": "neighborhood",
"latitude": 35.6626,
"longitude": 139.7591,
"country": "JP"
}
]
}
Trusted by teams at
Legal names, trade names, rebrands, diacritics, transliterations. "Hôtel Le Grand" on one OTA is "Le Grand Hotel Paris" on the next — and a fuzzy string compare calls them different properties.
Booking's 123456 has nothing to do with Expedia's 78901234, and an ID that means one hotel on one OTA can mean a different hotel on another. Without namespacing, collisions are silent.
Rate comparisons against the wrong property. Review rollups mixing two hotels. Every downstream number inherits the identity error, and nobody notices until a customer does.
Onboarding a new supplier or portfolio means someone eyeballing spreadsheets, property by property. Fine at 50 hotels. A quarter of lost weekends at 5,000.
Give /v1/meta/match a hotel name and a platform; get the canonical hotel page back, validated against strict URL patterns and cleaned of SEO noise.
One /v1/meta/search call fans out across the major OTAs, the big chains — and the property's own official website.
City, neighborhood or landmark into /v1/meta/coordinates-lookup; name, type, country and lat/lng out — ready for StayAPI's geo-search endpoints.
Booking, Agoda and VRBO converters turn a matched URL into the platform's own ID — the key that unlocks rates, reviews, rooms and photos on every data endpoint.
Feed the match endpoints the names you already have — PMS exports, supplier CSVs, CRM records. Back comes the canonical page per OTA, cleaned and validated. No confident match? An explicit no-match, never a guess.
id_204;CONRAD TOKYO HOTEL;;JP bkg-1199553;Conrad Tokyo;booking;JP EXP_90482;CONRAD TOKYO (SHIODOME);expedia; ta_d508158;Conrad Tokyo Hotel;tripadvisor;JP id_982;Conrad, Tokyo Shiodome;;JP agd_44720;Conrad Tokyo, Minato;agoda;JP id_413;コンラッド東京;Minato-ku;JP id_764;Conrad Tokyo (ex. Shiodome);;JP
{
"name": "Conrad Tokyo",
"links": {
"booking_com": "…/hotel/jp/conrad-tokyo.html",
"expedia": "…h1199553",
"tripadvisor": "…d508158",
"agoda": "…/conrad-tokyo/hotel/tokyo-jp.html",
"official_website": "hilton.com/…conrad-tokyo/"
}
}
Matched links and IDs are plain JSON — pipe them into Google Sheets, BigQuery, Power BI, Snowflake, Postgres or straight into the property records of your CRM. REST in, any language out.
Sheets
Snowflake
Postgres
Trusted by teams at
Name-to-URL matching covers Booking.com, Agoda, TripAdvisor, Expedia, Priceline, Trip.com and others. Link discovery casts a wider net — Hotels.com, Kayak, Marriott, Hilton, IHG, Hyatt and the property's own website.
We resolve the hotel name against each OTA's public pages, then validate the result against strict per-platform URL patterns — a Booking match must be a real Booking hotel page, not a city landing page or a blog post. Titles are cleaned of SEO noise before they come back to you.
You get an explicit no-match response, not a guess. A wrong mapping silently poisons every downstream join — we'd rather tell you we don't know.
That's the point. Feed a matched Booking or Agoda URL into the URL-to-ID converters, then use the ID with any StayAPI data endpoint — details, reviews, rooms, photos, prices. One key, one schema, end to end.
The API is self-serve at any volume. For bigger projects — large inventories, custom crosswalks, ongoing feeds — book a call and we'll scope the right setup together.
Mapping calls use the same per-request credits as every other StayAPI endpoint. Keys land in your account on signup, with free requests to start. Volume pricing for large inventories is quoted on a call.
Pick the path that matches what you're shipping.
Create an account and your API keys are ready immediately, with free requests to test. Everything else is in the docs.
Sign up, get keysLarge inventory, custom crosswalks, an ongoing feed — if it's more than a few calls a day, we'll scope the right setup together.