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.
| Airline | IATA | Hub | Coverage |
|---|---|---|---|
| American Airlines | AA | DFW | Global (350+ destinations) |
1 airline live · 11 operations · 60+ planned on the IATA ARM Index Registry.
Conventions
| Convention | Details |
|---|---|
| Base path | /v1/ |
| Auth | Authorization: Bearer <api-key> on every authenticated endpoint. |
| Times | RFC 3339 UTC — 2026-06-15T10:00:00Z |
| Money | { "amount": 542.10, "currency": "GBP" } — ISO 4217 currency. |
| IDs | ULID for internal entities; opaque strings for airline-owned IDs. |
| Errors | { "error": "<code>", "message": "<human>", "request_id": "<ulid>" } |
Public endpoints (no auth)
| Method | Path | Description |
|---|---|---|
| GET | /v1/health | Liveness probe. Returns 200 with { "status": "ok" }. |
Aviation data
| Method | Path | Description |
|---|---|---|
| GET | /v1/airlines | List all airlines from refdata (OurAirports + OpenTravelData). Supports ?iata=BA and ?active=true filters. |
| GET | /v1/airports?q=lond | Airport autocomplete. Returns IATA code, name, city, country, timezone, and coordinates. |
| GET | /v1/aircraft-types | Aircraft type lookup by IATA or ICAO code. Includes manufacturer, model, body type, and seat capacity ranges. |
Shopping
| Method | Path | Description |
|---|---|---|
| POST | /v1/shopping/offers | Search flights across all connected airlines. Supports one-way and round-trip, multi-passenger, cabin class, currency, and airline filtering. |
| POST | /v1/shopping/offers/price | Price-lock a specific offer. Returns a PricedOffer with a validity window (typically 5–15 min). |
| POST | /v1/shopping/services | Fetch 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/seats | Fetch 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
| Method | Path | Description |
|---|---|---|
| POST | /v1/orders | Create 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}/pay | Submit payment to ticket a pending order. Supports card, BSP, bank transfer, and wallet. |
| POST | /v1/orders/{id}/change | Modify an order — add ancillaries, change seats, update passenger data, or reissue tickets. |
| POST | /v1/orders/{id}/reshop | Search for alternative flights for an existing booking (disruption or voluntary change). Returns new offers. |
| POST | /v1/orders/{id}/refund | Request 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}/history | Full audit trail — order events with timestamps, actors, and payloads. |
| GET | /v1/orders | List all orders for the authenticated agency. Supports ?status=confirmed&limit=50 pagination. |
Servicing
| Method | Path | Description |
|---|---|---|
| POST | /v1/orders/{id}/seats | Assign or change seats for passengers on specific segments. |
| POST | /v1/orders/{id}/ancillaries | Add ancillaries — checked bags, carry-on, meals, lounges, Wi‑Fi, priority boarding, fast track, sports equipment, or pets. |
| POST | /v1/orders/{id}/ssrs | Add Special Service Requests (wheelchair, meal preference, unaccompanied minor) and APIS passport data. |
Error codes
| HTTP | Error code | Meaning |
|---|---|---|
| 400 | invalid_request | Missing or malformed field in the request body. |
| 401 | unauthorized | Missing or invalid Bearer token. |
| 403 | forbidden | Token valid but lacks permission for this resource. |
| 404 | not_found | The requested resource does not exist. |
| 409 | offer_expired | The OfferID is no longer valid — re-shop and try again. |
| 422 | order_validation_failed | Passenger data or payment data failed airline-side validation. |
| 429 | rate_limited | You have exceeded the rate limit. Retry-After header indicates when to retry. |
| 502 | airline_error | The upstream airline returned an error. The request_id is logged for diagnosis. |
| 503 | circuit_open | The adapter for this airline is in open-circuit state. Retry after 30 s. |
| 504 | airline_timeout | The upstream airline did not respond within the aggregator timeout window. |