All airline tickets.
One clean API.

Norba normalizes fares, seats, bags, and ancillaries into a single standard — so you search once, compare everything, and book directly with airlines. No intermediaries, no extra integrations.

11 NDC operationsJSON over HTTPSNo intermediaries
AAAmerican AirlinesPNR X7K9M2
live
BCN
Barcelona · T1 · 11:15
Mon 15 Jun · 8h 45m
AA67
nonstop · B777-300ER
JFK
New York · T8 · 14:00
ReturnMon 22 Jun · AA66 · JFK → BCN · 7h 30m
Total · 2 pax
€542.10
Per adult
€271.05
Cabin
Economy
Bags
1 × 23 kg
Changes
€150 fee
Quality
0.92
# this offer, one API call
$ curl -X POST api.norba.io/v1/shopping/offers
Core features

Normalise once. Ship everywhere.

offer_id:"aa_offer-1234"
airline:"AA"
slices:[ 2 ]
origin:"BCN"
destination:"JFK"
segments:[ 1 ]
quality_score:0.92

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.

Slices
100%
Segments
100%
Fare basis
90%
Baggage
80%
Terminal
55%
Fare family
40%

Quality scoring

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

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.

Aviation Data API

More than booking. A full aviation data layer.

The same API key that books flights also unlocks a rich set of reference and operational data: airlines, airports and aircraft types — all normalised, all with source provenance.

GET/v1/aviation/airlines/{iata}
{
  "iata_code": "BA",
  "name": "British Airways",
  "country": "GB",
  "alliance": "Oneworld",
  "status": "active",
  "hubs": ["LHR", "LGW"]
}

Airlines reference

Look up any airline by IATA or ICAO code. Get full name, country, alliance membership, operational status and a fleet summary derived from the aircraft registry.

GET/v1/aviation/airports/{id}/arrivals
{
  "iata_code": "LHR",
  "name": "Heathrow Airport",
  "timezone": "Europe/London",
  "runways_count": 2,
  "scheduled_service": true
}

Airports

Rich airport records with coordinates, timezone, runway data and OurAirports provenance.

GET/v1/aviation/aircraft-types/{icao_type}
{
  "icao_type_code": "AC50",
  "faa_designator": "AC50",
  "manufacturer": "AERO",
  "model": "Aero Commander 500",
  "description": "Aero Commander 500 · Piston",
  "engine_count": 2,
  "engine_type": "piston",
  "aircraft_class": "regional",
  "wake_turbulence_category": "Light",
  "mtow_lb": 6000,
  "registration_count": 169
}

Aircraft types catalog

ICAO Doc 8643 type designators for 700+ aircraft. Engine type, wake turbulence category and class (narrowbody, widebody, regional) — all queryable by manufacturer or class.

Norba Engine

One engine. Every airline. One canonical output.

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

IBIberia
DLDelta
LHLufthansa
AFAir France
AAAmerican Airlines
UAUnited
EKEmirates
++ more
Norba Engine

norba.io

Search Engine

NDC 17.218.119.221.3
Processing live
OTA
Online travel agencies
Corporate
Business travel platforms
Metasearch
Fare comparison engines
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.

Legacy
Traditional GDS path
4 hops · stacking fees · filed fares only
1OTA / Agency
2GDS terminal+ subscription
3Aggregator+ per-segment
4Consolidator+ margin
5Airline CRS
Effective cost
€8.08 – €15.45
Direct
Norba · direct NDC
1 hop · airline price · live content
1OTA / Agency
2Norba€3.00 / order
3Airline NDC
Effective cost
flat €3.00

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

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.

Input·American Airlines · NDC 18.1 (XML)
Output·models.Offerquality 0.79
aa-air-shopping-rs.xmlXML
<AirShoppingRS xmlns="http://www.iata.org/IATA/EDIST/2018.1">
  <OffersGroup>
    <AirlineOffers>
      <AirlineOffer>
        <OfferID>AA_017742</OfferID>
        <TotalPrice Currency="USD" Amount="687.50" />
        <BaseFare Currency="USD" Amount="510.00" />
        <PaxJourneyRefID>JNY-1</PaxJourneyRefID>
        <PenaltyRefIDs>P-NR P-CHG150</PenaltyRefIDs>
        <FareComponent>
          <RBD>K</RBD>
          <FareBasisCode>KLA7N1B1</FareBasisCode>
        </FareComponent>
      </AirlineOffer>
    </AirlineOffers>
  </OffersGroup>
</AirShoppingRS>
models.OfferJSON
{
  "offer_id": "aa_offer-017742",
  "airline": "AA",
  "source": "ndc_direct",
  "source_version": "NDC-18.1",
  "total_price": { "amount": 687.50, "currency": "USD" },
  "base_fare": 510.00,
  "taxes_fees": 177.50,
  "cabin_class": "economy",
  "fare_rules": {
    "refundable": false,
    "changeable": true,
    "change_penalty": { "amount": 150, "currency": "USD" }
  },
  "slices": [ /* normalised, enriched, stop-counted */ ],
  "quality_score": 0.79
}
Benefits

Ditch the GDS. Connect airlines directly.

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

10×
Faster integrations vs. direct NDC
1
Canonical schema across airlines
0.92
Average offer quality score
90s
From sign-up to first booking
via GDS€842.00
via Norba€719.50
GDS segment fee+ €12.00 / pax
Norba feeflat rate

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"
departure_date:"2026-08-10"
adults:1
American AirlinesIberiaDeltaLufthansa

One API. All airlines.

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

MISS → BA fanout380 ms
HIT ← Redis L24 ms
HIT ← Redis L23 ms
HIT ← Redis L22 ms
TTL 90 s · cache-aside pattern

Sub-second cached search

Redis cache-aside with a 90-second TTL. Repeat searches return instantly without burning airline API quotas.

American Airlines
up
Iberia
up
Delta
degraded
Lufthansa
down

Operational monitoring

Health checks, connector probing and delivery visibility for reliability.

trip_type:"return"
slices:[ 2 ]
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.

ReturnLHR → JFK → LHR
Open-jawLHR → JFK | EWR → LHR
Multi-cityLHR → JFK → LAX → LHR
All trips modelled as slices from day one

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.

Pricing

Pay only for what you need.

The API costs nothing to integrate. You only pay when you complete a booking, add a seat, or sell an ancillary. We earn when you earn — no monthly subscription.

Pay as you go

APIs to components — everything you need to start selling flights. Zero up-front costs, pay only for completed transactions.

Start now →

Key features

  • Start selling instantly
  • No upfront fees
  • Full API access — all endpoints
  • Canonical schema + quality scoring
  • Community support

Enterprise

Built for agencies who want to scale quickly with confidence. Volume discounts, dedicated infrastructure, and custom SLAs.

Contact sales →

Key features

  • Volume discounts on transaction fees
  • Self-hosted deployment option
  • Dedicated connector engineering
  • SSO / SAML
  • Dedicated SLA & priority support
  • Use your own IATA accreditation
Transaction typeWhat triggers the feePrice
Completed bookingOrderCreate — when an order is confirmed and ticketed.€3.00per booking
Seat selectionSeat assignment during booking or post-booking servicing.€0.80per seat
Ancillary addedBaggage, meals, lounge access, or any extra service sold through the API.€0.50per ancillary
L2B overageShopping calls exceeding a 1000:1 look-to-book ratio in a billing period.€0.02per excess call
Search without bookingShopping calls beyond 500 without any completed booking in a 30-day window.€0.05per excess call
Data API
Information lookupAirlines, fleet, airports, routes, schedules, and reference data.€0.01per request
All fees are billed monthly in arrears via Stripe. No charges until you complete your first booking. The first 50 data API requests each month are free.

Still have questions?

That's no problem! Enterprise customers can use their own IATA or ARC accreditation. Contact our sales team to discuss pricing and next steps. Alternatively, you can use our accreditation — no additional forms or up-front capital required.

The look-to-book (L2B) overage ensures you maintain a healthy search-to-book ratio. This fee covers the costs of processing excessive searches and protects airline relationships. For example: if you make 10 bookings in a month, you're allowed 10,000 searches free of charge (1000:1). If you made 15,000 searches, you'd pay (15,000 − 10,000) × €0.02 = €100.

If you're an existing travel seller processing high volumes and wish to discuss volume discounts, dedicated infrastructure, or custom SLAs, please contact our sales team at hello@norba.io.

Questions? hello@norba.io

FAQ

Questions? We've got answers.

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.
Norba handles 17.2, 18.1, 19.2 and 21.3. The VersionDetector reads the XML namespace before any parsing, so version-specific handling is applied automatically.
Contact our team to request a new airline integration. We continuously expand our connector network based on customer demand.
You pay per request for data lookups (€0.01/request, first 50 free each month) and transaction fees when bookings, seats, or ancillaries are completed. We monitor your look-to-book (L2B) ratio — if it exceeds 1000:1, a small overage fee of €0.02 per excess shopping call applies. Similarly, if you make more than 500 shopping calls in a 30-day window without any booking, a €0.05 per-call search-abuse fee kicks in. These safeguards protect airline relationships.
Yes. Postgres row-level security is enabled on all multi-tenant tables. Each agency has its own API key and rate limits.
All traffic uses HTTPS and API keys. Verify TLS on both sides and keep your API keys confidential.

One API. Every airline. No middleware.

Free sandbox, no credit card required. Live connectors in minutes.

Norba — One API to Search & Book Flights from All Airlines | NDC Aggregation