Guides · API Reference

Public REST API

Everything Norba exposes to travel agencies. JSON-over-HTTPS.

Base URL
api.norba.io
Version
v1
Protocol
HTTPS / JSON

Integrated Airlines

American Airlines is live in production, with real bookable inventory. It implements the full NDCConnector interface: AirShopping, OfferPrice, ServiceList, SeatAvailability, OrderCreate, OrderRetrieve, OrderChange, OrderCancel, OrderReShop, OrderQuote, and OrderCommit.

AirlineIATAHubCoverage
American AirlinesAADFWGlobal (350+ destinations)

1 airline live · 11 operations · 60+ planned on the IATA ARM Index Registry.

Conventions

ConventionDetails
Base path/v1/
AuthAuthorization: Bearer <api-key> on every authenticated endpoint.
TimesRFC 3339 UTC — 2026-06-15T10:00:00Z
Money{ "amount": 542.10, "currency": "GBP" } — ISO 4217 currency.
IDsULID for internal entities; opaque strings for airline-owned IDs.
Errors{ "error": "<code>", "message": "<human>", "request_id": "<ulid>" }

Public endpoints (no auth)

MethodPathDescription
GET/v1/healthLiveness probe. Returns 200 with { "status": "ok" }.

Aviation data

MethodPathDescription
GET/v1/airlinesList all airlines from refdata (OurAirports + OpenTravelData). Supports ?iata=BA and ?active=true filters.
GET/v1/airports?q=londAirport autocomplete. Returns IATA code, name, city, country, timezone, and coordinates.
GET/v1/aircraft-typesAircraft type lookup by IATA or ICAO code. Includes manufacturer, model, body type, and seat capacity ranges.

Shopping

MethodPathDescription
POST/v1/shopping/offersSearch flights across all connected airlines. Supports one-way and round-trip, multi-passenger, cabin class, currency, and airline filtering.
POST/v1/shopping/offers/pricePrice-lock a specific offer. Returns a PricedOffer with a validity window (typically 5–15 min).
POST/v1/shopping/servicesFetch ancillary catalogue for an offer — checked bags, carry-on, seats, meals, priority boarding, fast track, lounge, insurance, Wi‑Fi, sports equipment, pets, and upgrades.
POST/v1/shopping/seatsFetch seat map for a specific flight segment. Returns rows, seat numbers, availability, pricing, and features (window, aisle, exit row, extra legroom, etc.).

SearchRequest body

{
  "origin":         "MAD",
  "destination":    "LHR",
  "departure_date": "2026-06-15",
  "return_date":    "2026-06-22",
  "passengers":     [
    { "type": "ADT", "count": 2 },
    { "type": "CHD", "count": 1 }
  ],
  "cabin_class":    "economy",
  "currency":       "GBP",
  "airlines":       ["AA"]
}

Orders

MethodPathDescription
POST/v1/ordersCreate an order from a priced offer + passenger details + contact info. Returns the order with PNR, status, and tickets.
GET/v1/orders/{id}Retrieve the full current state of an order — passengers, tickets, slices, ancillaries, seats, payments, and audit history.
POST/v1/orders/{id}/paySubmit payment to ticket a pending order. Supports card, BSP, bank transfer, and wallet.
POST/v1/orders/{id}/changeModify an order — add ancillaries, change seats, update passenger data, or reissue tickets.
POST/v1/orders/{id}/reshopSearch for alternative flights for an existing booking (disruption or voluntary change). Returns new offers.
POST/v1/orders/{id}/refundRequest a refund. Returns a CancellationQuote with refund amount and any penalty.
DELETE/v1/orders/{id}Cancel an order (no refund). Status transitions to cancelled.
GET/v1/orders/{id}/historyFull audit trail — order events with timestamps, actors, and payloads.
GET/v1/ordersList all orders for the authenticated agency. Supports ?status=confirmed&limit=50 pagination.

Servicing

MethodPathDescription
POST/v1/orders/{id}/seatsAssign or change seats for passengers on specific segments.
POST/v1/orders/{id}/ancillariesAdd ancillaries — checked bags, carry-on, meals, lounges, Wi‑Fi, priority boarding, fast track, sports equipment, or pets.
POST/v1/orders/{id}/ssrsAdd Special Service Requests (wheelchair, meal preference, unaccompanied minor) and APIS passport data.

Error codes

HTTPError codeMeaning
400invalid_requestMissing or malformed field in the request body.
401unauthorizedMissing or invalid Bearer token.
403forbiddenToken valid but lacks permission for this resource.
404not_foundThe requested resource does not exist.
409offer_expiredThe OfferID is no longer valid — re-shop and try again.
422order_validation_failedPassenger data or payment data failed airline-side validation.
429rate_limitedYou have exceeded the rate limit. Retry-After header indicates when to retry.
502airline_errorThe upstream airline returned an error. The request_id is logged for diagnosis.
503circuit_openThe adapter for this airline is in open-circuit state. Retry after 30 s.
504airline_timeoutThe upstream airline did not respond within the aggregator timeout window.
API Reference · Norba Docs