New airline integrations added continuously

All airline tickets.
One clean API.

Norba is one API to search and book flights direct with the airline — fares, seats, bags and ancillaries normalised into a single standard, so you integrate once instead of per carrier.

N-101
Sample data36+44.000 TowerAA 69 · B787-9MAD → MIA · 19 Jun 12:30Cabin · seat mapGET /v1/offers/{id}/seatsHold · bags 1 × 23 kgGET /v1/offers/{id}/servicesGate B22 · ticketedPOST /v1/orders/{id}/commitTerminal 1Direct with the airlineN

Airlines we are integrating

Available in the sandbox today. Production availability is announced per airline.

  • In integration
  • In integration
  • In integration
  • In integration
  • In integration
  • In integration
  • In integration
  • In integration

[ 01 of 09 ] · METRICS

By the numbers

What one integration replaces.

11

NDC operations

Shopping, pricing, seats, services, ordering and servicing — the same eleven per airline.

4

NDC versions

17.2, 18.1, 19.2 and 21.3 collapse into one models.Offer.

1

Canonical shape

Offers, orders and ancillaries arrive identical whichever carrier answered.

0

Intermediaries

Prices come straight from the airline. No GDS markup, no segment fees.

[ 02 of 09 ] · FEATURES

Core features

Normalise once. Ship everywhere.

models.Offer
offer_id"aa_offer-0X9PTK"
source_version"21.3"
validating_carrier"AA"
slices[ 2 ]
quality_score0.92
price.total542.10

Canonical schema

Offers, orders and ancillaries arrive in one Slice-based shape — whether they came from NDC 17.2, 18.1, 19.2 or 21.3.

quality_score · 0.92
Slices100%
Segments100%
Fare basis90%
Baggage80%
Terminal55%
Fare family40%

Quality scoring

Every offer is scored 0.0–1.0 for completeness. Missing baggage allowance? Terminal? You'll know before you render.

circuit breakers
American Airlinesclosed
Iberiaclosed
Deltahalf-open
Lufthansaopen

Circuit breakers built-in

Fan-out to every connector in parallel. One airline's outage never cascades — degraded carriers are skipped automatically.

[ 03 of 09 ] · BENEFITS

Benefits

We keep the connectors. You keep shipping.

Norba is an NDC aggregator for online travel agencies. We maintain the airline integrations — you call one REST API and get live fares, ancillaries and booking in a single, consistent response.

same itinerary · two paths
via GDS€842.00
via Norba€719.50
GDS segment fee+ €12.00 / pax
Norba fee1.99% of the base fare, capped

Direct airline pricing

Prices come straight from the airline's NDC API — no GDS markup, no segment fees, no per-booking surcharges.

POST /v1/shopping/offers
origin"LHR"
destination"JFK"
adults1
AAIBDLLHAFKLTKUA

One endpoint, every carrier

A single REST endpoint for every airline we support. No per-airline XML schemas to learn — we handle the translation.

cache-aside · ttl = offer life
MISS → carrier fanout380 ms
HIT ← Redis L24 ms
HIT ← Redis L23 ms
HIT ← Redis L22 ms

Repeat searches come from cache

The same search twice returns instantly, without spending an airline's API quota on it.

probe · every 60 s
American Airlinesup
Iberiaup
Deltadegraded
Lufthansadown

Delivery monitoring

Every webhook attempt, retry and failure is on the record — so a broken integration is a lookup, not an investigation.

slice model
trip_type"return"
slice 0
origin "LHR" → destination "JFK"
slice 1
origin "JFK" → destination "LHR"

Real-time health monitoring

Every airline connector is probed every 60 s. Degraded or down connectors are flagged automatically so you never serve stale availability.

itinerary shapes
ReturnLHR → JFK → LHR
Open-jawLHR → JFK | EWR → LHR
Multi-cityLHR → JFK → LAX → LHR

Slice-based offer model

Multi-city, open-jaw and return trips modelled as slices from day one. No flat-segment workarounds or post-processing glue code.

We add and maintain airline integrations on our end. Your team ships features, not connector code.

[ 04 of 09 ] · USE CASES

Use cases

Search, book, service. One integration.

Search

One canonical payload fans out to every healthy connector in parallel.

  • Offers sorted by price
  • Quality score per offer
  • Degraded carriers skipped
N-110
AA · American Airlines312 ms 18 offersIB · Iberia266 ms 11 offersDL · Delta · SkippedDegraded, so not askedLH · Lufthansa404 ms 9 offers

Book

Price the offer, then order it. The airline holds the seat under its own deadline.

  • Bookable offer IDs
  • Seats and bags at checkout
  • Payment time limit surfaced
N-111
GATE B22ON HOLD · PAY BY 23:59ZOrder ord_8HK2LQPNR X7K9M2Seats 14A · 14BChosen at checkoutTicket001-2340117742Payment time limit23:59Z held by the airline

Service

Changes, cancellations and refunds against the order you already hold.

  • Refund eligibility
  • Cancel and change quotes
  • Full order history
N-112
ReshopPOST /reshop · 3 optionsRetrieveGET /v1/orders/{id}Cancel · refundPOST /cancel · refund eligibleChange · quotePOST /change · €150.00

[ 05 of 09 ] · ENGINE

Norba Engine

One engine. Every airline in, one JSON out.

Norba sits between your application and every airline's NDC API — normalizing, caching, and routing in real time so you never touch XML.

Input

  • OTA

    Online travel agencies

  • Corporate

    Business travel platforms

  • Metasearch

    Fare comparison engines

Search Engine

Processing live
  • 01ValidateOne canonical request shape
  • 02Fan outEvery healthy connector, in parallel
  • 03NormaliseDialects collapse into models.Offer
  • 04ScoreCompleteness 0.0 – 1.0 per offer
  • 05MergeSorted, deduplicated, cached while offers hold

Airlines · NDC

  • AAAmerican Airlines
  • IBIberia
  • LHLufthansa
  • AFAir France
  • KLKLM
  • TKTurkish Airlines
  • UAUnited

In integration

How the engine processes every request

Search Request

POST /v1/shopping/offers

Norba Engine

validate · fan-out · normalise · score

Canonical JSON Response

200 OK · models.Offer[]

No XML. No per-airline schemas. Just one REST endpoint — consistent across every carrier we support.

[ 06 of 09 ] · NORMALIZATION

Normalization in action

Every airline, a different format. One canonical schema.

Every airline ships a different NDC dialect — different schema versions, custom extensions, free-text fare rules, inconsistent price elements. Pick a carrier and watch it collapse into one canonical offer.

LH · raw AirShoppingRS

<AirShoppingRS xmlns=".../EDIST/2021.3">
  <PricedOffer>
    <OfferID Owner="LH">LH-OFFER-1234</OfferID>
    <TotalPrice>
      <DetailCurrencyPrice>
        <Total Code="EUR">542.10</Total>
        <Taxes><Total Code="EUR">132.10</Total></Taxes>
      </DetailCurrencyPrice>
    </TotalPrice>
    <Penalties>
      <Penalty type="Cancel">
        <Description>CHANGE FEE EUR 150</Description>
      </Penalty>
    </Penalties>
  </PricedOffer>
</AirShoppingRS>

models.Offer · canonical

{
  "offer_id": "lh_offer-1234",
  "airline": "LH",
  "source": "ndc_direct",
  "source_version": "21.3",
  "total_price": { "amount": 542.10, "currency": "EUR" },
  "base_fare": 410.00,
  "taxes_fees": 132.10,
  "cabin_class": "economy",
  "fare_rules": {
    "refundable": false,
    "changeable": true,
    "change_penalty": { "amount": 150.00, "currency": "EUR" }
  },
  "quality_score": 0.92
}

One schema, four NDC versions

17.2, 18.1, 19.2 and 21.3 all collapse into the same models.Offer.

Free-text fare rules parsed

"NONREFUNDABLE / CHANGE FEE EUR 150" becomes structured FareRules with extracted money amounts.

Reference data joined

Airport timezones, airline alliance and aircraft body type are injected before you see the offer.

[ 07 of 09 ] · COMPARISON

How a booking actually flows

Cut the middlemen. Keep the margin.

A traditional GDS booking passes through four intermediaries — each one adding a fee, a markup, or a layer of legacy XML. Norba connects you straight to the airline's NDC API.

Traditional GDS path

4 hops · stacking fees · filed fares only

  • 01OTA / Agency
  • 02GDS terminal+ subscription
  • 03Aggregator+ per-segment fee
  • 04Consolidator+ margin
  • 05Airline CRSfiled fares only

Cost per booking

€8.08 – €15.45 per booking

Norba · direct NDC

1 hop · airline price · live content

  • 01OTA / Agency
  • 02Norba1.99% of the base fare, capped
  • 03Airline NDClive fares & ancillaries

Cost per booking

1.99% of the base fare · capped at €25.00 · no markup

Indicative industry figures. Actual GDS fees vary by carrier, region and contract — but the structural difference doesn't.

[ 08 of 09 ] · PRICING

Pricing

A share of what you sell.

Nothing to integrate, no subscription, no minimum. You pay 1.99% of the base fare when a booking is confirmed — never less than €2.00, never more than 2.5% of the fare, and never more than €25.00 — and the rate falls to 1.29% as your monthly volume grows. Extras are priced the same way. Every API call counts as a request, and the first 500 requests of the account are free — once, not every month.

Pay as you go

Most popular

Everything you need to start selling flights. No up-front cost and no monthly fee — you pay a share of each booking you make, and a small price per API call once your 500 free requests are spent.

1.99%/ of the base fare, per confirmed booking

Min €2.00 — never above 2.5% of the fare · Max €25.00 · No subscription

Key features

  • Start selling instantly
  • No up-front fee, no monthly fee, no minimum
  • Full API access — all endpoints
  • 500 free API requests, once for the life of the account — every endpoint counts
  • Cancel within 24h and every fee on the booking is credited back
  • Volume discount from your 251st booking — down to 1.29%

Enterprise

For agencies at scale. A negotiated rate from your first booking, with dedicated infrastructure and custom SLAs.

1.29%/ negotiated, from the first booking

Volume terms · dedicated SLA · your own IATA accreditation

Key features

  • 1.29% from your first order — the ladder's bottom rung
  • Self-hosted deployment option
  • Dedicated connector engineering
  • SSO / SAML
  • Dedicated SLA & priority support
  • Use your own IATA accreditation

The full fee schedule, the volume ladder and the pricing questions.

Questions? hello@norba.io

[ 09 of 09 ] · FAQ

FAQ

Questions? Answers, in plain terms.

  • NDC (New Distribution Capability) is IATA's XML messaging standard for selling airline products. Every airline implements it differently — different schema versions, custom extensions, proprietary codes. An aggregator gives you one integration that handles all those quirks.

  • Whichever version each connected airline runs — Norba speaks it to the airline, and you never see the difference: every answer comes back in the same JSON schema. The source_version field on each offer says which NDC version produced it.

  • Contact our team to request a new airline integration. We continuously expand our connector network based on customer demand.

  • Searches and data lookups share one allowance of 500 free requests — granted once, for the life of the account, not each month. Past that, a search is €0.005 per call and a data lookup €0.0025, from then on. Bookings themselves are charged as a share of what they sold: 1.99% of the base fare, minimum €2.00 but never more than 2.5% of the fare, capped at €25.00, falling to 1.29% with monthly volume.

  • Every airline caps how many searches it serves per booking in its own contract — its look-to-book ratio. We never refuse or throttle your searches for being over it. Instead, while your ratio with that airline is above what it allows, each request to that airline costs €0.01 on top of the call. It applies only to the airline you are over with, never below 1,000 searches with it, and it stops the moment a booking brings the ratio back inside. Your ratio, the limit and anything charged are all on the Airlines page of your dashboard.

  • Yes. Each agency has its own API keys, and every request is scoped to the agency behind the key and to the key's environment: an agency can only read or act on its own orders, keys and data, and another agency's order id answers 404 as if it did not exist.

  • All traffic uses HTTPS and API keys. Verify TLS on both sides and keep your API keys confidential.

Get API key

Your first booking is 4 API calls away.

Free sandbox, no credit card required. Your first call in minutes.

N-102
Sample dataAN-102Seat 19D · chosenPriced with the fare, held with the orderGalleyMeals and other extrasHold · AKE containerChecked bags, booked as a service
Norba — One Flight Booking API for Every Airline