Quickstart
Get started with the Norba API — authenticate, search flights across all connected airlines, and create your first booking in minutes.
Norba is a production-grade NDC aggregation platform that normalizes multi-airline NDC responses into a single canonical JSON schema. Whether you're building a travel agency, an OTA, or automating corporate travel — Norba gives you one API to access every connected airline.
Base URL: https://api.norba.io/v1
No SDK Required
The Norba API is plain JSON over HTTPS — no SDK, no dependencies. Use any HTTP client in any language:
# No SDK required — use any HTTP client
# The Norba API is plain JSON over HTTPS
# Base URL: https://api.norba.io/v1Authentication
All API requests require an API key. Pass it as the X-API-Key header on every request.
Getting Your API Key
- Sign up at norba.io
- Go to Dashboard → API Keys
- Click Create API Key
- Copy the key immediately — you won't be able to see it again
Set Up the Client
curl --request GET \
--url https://api.norba.io/v1/health \
--header "X-API-Key: $NORBA_KEY"Key format: nbr_live_ prefix + 64 hex characters (74 total). Keys are stored as SHA-256 hashes — they're only shown once at creation.
Security tips: Use environment variables, create separate keys per app, and rotate periodically. You can also manage keys via the API.
Key Concepts
- Shopping — Stateless search that returns transient flight offers. Nothing is reserved until you create an order.
- Orders — Stateful bookings that persist at the airline. Includes passenger data, payment, and ticketing.
- Servicing — Post-booking operations: seat assignment, baggage, ancillaries, SSRs, APIS data.
- Aviation Data — Reference catalog: airports, airlines, aircraft types, and runway data — all accessible via the API.
Step 1: Get Your API Key
Sign up for a Norba account in under a minute. No credit card required. Your API key is available instantly from the dashboard.
Step 2: Search for Flights
Send a single JSON request and get back ranked offers from every connected airline. Filter by cabin, airline, or max stops.
curl --request POST \
--url https://api.norba.io/v1/shopping/offers \
--header "X-API-Key: $NORBA_KEY" \
--header "Content-Type: application/json" \
--data '{
"origin": "LHR",
"destination": "JFK",
"departure_date": "2026-07-15",
"adults": 1
}'Save the offer_id value — you'll need it for the next step.
Searching Multiple Airlines
Target specific carriers with the airlines array. Omit it to search all connected airlines simultaneously.
curl --request POST \
--url https://api.norba.io/v1/shopping/offers \
--header "X-API-Key: $NORBA_KEY" \
--header "Content-Type: application/json" \
--data '{
"origin": "LHR",
"destination": "JFK",
"departure_date": "2026-07-15",
"adults": 1,
"airlines": ["AA", "LH", "DL"]
}'Supported Airlines
Replace the airline codes with any of these:
| Airline | Code | Status |
|---|---|---|
| American Airlines | AA | Live |
| Lufthansa | LH | Coming soon |
| Air France-KLM | AF | Coming soon |
| Emirates | EK | Coming soon |
| Delta Air Lines | DL | Coming soon |
| United Airlines | UA | Coming soon |
| Singapore Airlines | SQ | Coming soon |
| Qatar Airways | QR | Coming soon |
| Iberia | IB | Coming soon |
| Virgin Atlantic | VS | Coming soon |
| Qantas | QF | Coming soon |
Step 3: Create Your First Order
Pick an offer, add passenger details, and create a booking. You'll receive a canonical PNR and OrderID in one response.
curl --request POST \
--url https://api.norba.io/v1/orders \
--header "X-API-Key: $NORBA_KEY" \
--header "Content-Type: application/json" \
--data '{
"offer_id": "AA_offer_abc123",
"passengers": [
{
"type": "ADT",
"title": "MR",
"first_name": "John",
"last_name": "Doe",
"gender": "M"
}
]
}'Your booking is now created. Save the order_id — you'll need it for servicing operations like seat assignment, adding baggage, and cancellations.
Paying Immediately
To pay for an order right away instead of holding it, use the POST /orders/{order_id}/pay endpoint:
curl --request POST \
--url https://api.norba.io/v1/orders/ord_abc123/pay \
--header "X-API-Key: $NORBA_KEY" \
--header "Content-Type: application/json" \
--data '{
"payment_method": "card",
"card_token": "tok_visa_4242"
}'Creating a Hold
To hold an order without immediate payment, omit the payment_method field. You can pay later before the hold expires:
curl --request POST \
--url https://api.norba.io/v1/orders \
--header "X-API-Key: $NORBA_KEY" \
--header "Content-Type: application/json" \
--data '{
"offer_id": "AA_offer_abc123",
"passengers": [
{
"type": "ADT",
"title": "MR",
"first_name": "John",
"last_name": "Doe"
}
]
}'What's Next?
- Airline Integrations — Learn airline-specific features, auth schemes, and quirks
- Servicing guide — Add seats, bags, and ancillaries to existing orders
- Orders lifecycle — Understand the full order state machine
- Quality scores — Track how complete each offer's data is
- Architecture — Understand the end-to-end booking flow
- API Reference — Full endpoint reference with request/response schemas