Bedbanks & wholesalers
HotelBeds, WebBeds, TBO and RateHawk-class pools: high-volume feeds where the same independent hotel hides behind a dozen supplier codes and creative spellings.
The mapping engine behind our Hotels product, sold as an independent API. Send any supplier’s hotel and room feed; get back one canonical property and room identity with confidence scores attached. Book through us, or through anyone else entirely.

The same property arrives from bedbanks, chains and channel managers under different names, IDs, room types and rate descriptions. Whatever the source, it leaves as one canonical record.
HotelBeds, WebBeds, TBO and RateHawk-class pools: high-volume feeds where the same independent hotel hides behind a dozen supplier codes and creative spellings.
Marriott, Accor, Hilton and IHG feeds carry the cleanest content in the graph. Chain-direct fields win the merge when sources disagree.
Room-type and rate-plan codes straight from the property’s own systems: the ground truth that anchors room mapping across the long tail of independents.
Direct contracts, extranet loads and static rate files run through the same pipeline as everything else, resolved against the same canonical graph and flagged as yours.
Post a supplier’s property and room payload; the response carries the canonical property ID, the mapped room type and rate plan, and a confidence score per match. High-confidence records resolve inline; the uncertain tail routes to a human-review queue and returns by webhook. Nothing about the call requires a booking, ever.
POST /v1/mapping/resolve
{ "supplier": "hotelbeds",
"property": { "code": "HB-88121",
"name": "Grand Hyatt - Dubai DXB" },
"room": { "code": "DBL-GV-1",
"name": "Garden Facing Standard" } }
200 OK
{ "property_id": "prop_9f2c81",
"room_id": "room_51b7",
"confidence": 0.98,
"status": "resolved" }Fuzzy string matching gets you to 80% and a support queue full of wrong-room complaints. The last mile is signals, scores and a human tail, and that is the product.
Every listing is reconciled to a canonical property ID using geo, address, phone and content signals. Three suppliers send "Grand Hyatt Dubai", "Hyatt Grand, Dubai" and "Grand Hyatt - Dubai DXB"; the API returns one ID for all three. Two million properties, continuously re-verified: under 0.1% ever surface twice.
"Garden View Double", "Garden Facing Standard" and "Garden Twin" are the same physical room from three suppliers. We map at room level, parsing bedding, view, occupancy and size, so a booking made on one feed lands the room described on another.
Board basis, refundability, payment timing and inclusions normalise into one plan schema, so "RO-FLEX-NET" and "Room Only, free cancellation" stop looking like different products and start competing on price.
Descriptions, photos and amenities merge from the most authoritative source per field, onto a 300+ amenity taxonomy in 14 languages. Chain-direct descriptions beat bedbank stubs; high-res photos dedupe against thumbnails.
Every match carries a score and the evidence behind it. You set the threshold per use case: auto-merge high for display, hold for review on anything that touches a booking. Nothing merges silently below your line.
The roughly 3% the model cannot settle goes to a review queue worked by our supply team, with an SLA and a webhook when each record resolves. Every decision feeds the matcher, so the tail keeps shrinking.
You aggregate bedbanks yourself and keep your own booking path. We settle which listings are the same hotel and which rooms are the same room, so your results page stops fighting itself.
Clean the catalog before your buyers see it: dedupe incoming hotel supply, normalise rooms and rate plans, and stop refunding stays that were mapped to the wrong room.
Content from one system, negotiated rates from another, market rates from a third: resolve all of it to one property card so travellers compare rates, not spellings.
Something we haven’t covered? Talk to the team. A real engineer answers, never a bot.

String similarity gets the two cases that matter exactly backwards: it merges the rooms that must never merge and splits the ones that must. This is the pipeline we built instead, stage by stage, including the part everyone tries to automate away.
Signing another hotel supplier grows the listing count on day one. Whether it grew the catalogue depends entirely on work nobody has scheduled yet: deciding which of those listings are hotels you already had.