ITERNODE / v0.1.0 / en-US
LAT −23.5505LNG −46.6333COV 1.3M+ HOTELS · 3 SUPPLIERS

Plug 10 suppliers.
Reconcile 10 schemas.
Paste, search, ship.

Canonical B2B layer for hotel data. 1.3M properties cross-mapped across RateHawk, Expedia and Hotelbeds — without your team burning 6 months normalizing IDs, photos and room codes.

The search orchestrator collapses fan-out: ten responses become one. 10× smaller payload, NDJSON streaming, your server stops crashing under peak load. Plug in 5 lines. No sales call.

§ 02
Hotels matched
1.3M
→ canonical, cross-supplier
Suppliers integrated
3
→ RateHawk · Expedia · Hotelbeds
Pieces normalized
30M
→ photos, amenities, rooms, policies
Countries covered
50+
→ partitioned · horizontal scale
§ 03

Every hotel exists
ten times.
None agree.

Different ID per supplier. Different photo. Different room code. Your team burns 6 months reconciling what should already be one field. And when the server falls over at 2pm on a Friday, your dev loses the night.

P-001 / FRAGCRIT

Ten IDs. One building.

Map it Monday, breaks Friday. Supplier rotates internal IDs and tells you via release note — if they send one. Every integration is a candle waiting for the wind.

P-002 / STALEHIGH

Photos from 2019. Prices from 30 seconds ago.

Content updates quarterly. Prices expire in seconds. Two opposite clocks. One team. The customer closes the tab while you fight cache invalidation.

P-003 / CHECKOUTCRIT

Search returns 50MB. Server crashes.

10 suppliers × 2,000 hotels × 30 rooms = 600,000 entries in a single response. Server can’t deserialize. Agency sees timeout. Customer leaves. You’re selling zero — and you find out Monday.

§ 04

Three modules.
One truth.

Start with Registry — the canonical ID that kills duplicates. Add Stream when you need live pricing with dedup. Sell direct via Market when your roadmap calls for it. Each runs alone. Together they’re a platform.

M-01 / FOUNDATIONALGA
Registry
Master DB + supplier crosswalk

One canonical ID per real hotel, cross-mapped across every integrated supplier. Unified content: amenities, photos, policies, coordinates — deduped, normalized, always fresh. Stop reconciling. Start searching.

  • INDEX1.3M HOTELS
  • SUPPLIERS3 LIVE
  • COVERAGE50+ COUNTRIES
  • INTERFACEREST / NDJSON
M-02 / OPERATIONALBETA
Stream
Search · rate · booking · BYOC

Bring your credentials. Parallel fan-out, dedup by canonical hotel, group rooms by signature, stream a single NDJSON response. Your server stops waving the white flag at peak load.

  • MODELBYOC
  • PAYLOAD10× SMALLER
  • RESPONSESTREAMING
  • TRANSPORTNDJSON / SSE
M-03 / COMMERCIALQ4 2026
Market
Licensed inventory · instant booking

When selling direct hits your roadmap, plug into our licensed aggregator. One contract instead of twelve. Net rates, unified rules, single reconciliation pipeline.

  • LICENSEOTA-GRADE
  • RATESNET ACCESS
  • BOOKINGINSTANT
  • RECONCILIATIONUNIFIED
§ 05

Five lines.
Every hotel.

Paste your API key. Resolve in seconds. No XML, no SOAP, no sales call before sandbox. No ‘talk to our team for pricing’. This is what modern travel infra looks like.

Read the API docs →
resolve.ts · typescript
ITN-SDK v0.1
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
§ 06ENGINEER?30 SEC SANDBOX

Sandbox.
Sales call.
30 seconds.

SYSTEMS / NOMINAL
API · OKEDGE · OKCACHE · HIT 94%
BUILD 0001-a47
Iternode — Hotel data infra for B2B travel tech