One ID.
Seven truths.
Zero fallout.
Iternode is the canonical data layer behind global travel tech — one source of truth across every supplier, every hotel, every rate. Always fresh.
Built for OTAs, meta-search, channel managers and corporate travel platforms who stopped accepting reconciliation as a feature.
Every hotel exists
seven times.
None agree.
Every supplier runs its own taxonomy, its own IDs, its own photos, its own room codes. Travel teams burn months reconciling data that should already be one thing.
Seven IDs for the same building.
The same physical building ends up with a different ID in every major supplier database. Map it once — break weekly.
Photos from 2019. Prices from yesterday.
Content updated quarterly. Prices expire in minutes. You fight two clocks with one team, and the clocks don’t agree either.
3% of bookings fail at checkout.
Wrong ID. Wrong room. Wrong rate. Your map says one thing, the supplier says another, and the customer walks.
Three modules.
One truth.
Start with the index. Add orchestration when you’re ready. Ship inventory when the moment comes. Each module stands alone — they compound together.
One canonical ID per hotel, mapped across every major supplier. Rich unified content — amenities, photos, policies, coordinates — normalized and kept fresh.
- INDEX2.6M HOTELS
- SUPPLIERS47 MAPPED
- ACCURACY99.97%
- INTERFACEREST / GRAPHQL
Bring your own supplier credentials. We handle parallel fetch, dedup, normalization, caching — and stream unified availability back to you under 100ms p95.
- MODELBYOC
- LATENCY P5042MS
- LATENCY P9591MS
- TRANSPORTSSE / WS
When you’re ready to sell, plug into our licensed aggregator. One contract instead of twelve. Net rates, unified rules, and a single reconciliation pipeline.
- LICENSEOTA-GRADE
- RATESNET ACCESS
- BOOKINGINSTANT
- RECONCILIATIONUNIFIED
Five lines.
Every hotel.
Paste your API key. Resolve in seconds. No XML. No SOAP. No sales call before sandbox access. This is what modern travel infrastructure looks like.
Read the docs →import { Iternode } from '@iternode/sdk' const node = new Iternode({ apiKey: process.env.ITERNODE_KEY }) // One canonical ID across every supplier. const hotel = await node.registry.resolve({ name: 'Copacabana Palace', city: 'Rio de Janeiro', country: 'BR', }) hotel.id // → itn_7k9m2p hotel.suppliers // → { <9 supplier refs, redacted> } hotel.lastFresh // → 2026-04-24T14:47:22Z