Shopping endpoints in development

The Shopping API endpoints are currently under active development. Request/response shapes may change.

Shopping

Service list

Browse all extras available for a flight — bags, seats, meals, lounge access, and more.

POST/v1/shopping/servicesRequires X-API-Key
Modern airline retail is about more than just the seat. This endpoint returns the full ancillary catalogue for a specific offer.Available services:
- bag_checked — Checked baggage (various weight tiers)

- bag_carry_on — Carry-on allowance

- seat — Standard seat selection

- extra_legroom — Extra legroom seats

- meal — In-flight meals (including special meals)

- priority_boarding — Board before general groups

- fast_track — Express security lane access

- lounge — Airport lounge access

- insurance — Travel insurance

- wifi — On-board Wi‑Fi

- sport_equipment — Sports equipment carriage

- pet — Pet in cabin or hold

- upgrade — Cabin class upgrades
Each service includes a unique service_id, human-readable name, description, type, and price. Present these as optional add-ons in your booking flow to increase revenue per passenger. Call this after price-locking and before creating the order.

Request example

curl --request POST \
  --url https://api.norba.io/v1/shopping/services \
  --header "X-API-Key: $NORBA_KEY" \
  --header "Content-Type: application/json" \
  --data '{ "offer_id": "aa_offer-abc123" }'

Response example

Response example
{
  "services": [
    {
      "service_id": "svc-checked-bag-23kg",
      "type": "bag_checked",
      "name": "Checked Baggage 23kg",
      "description": "One piece of checked baggage up to 23kg",
      "price": {
        "amount": 45,
        "currency": "EUR"
      }
    },
    {
      "service_id": "svc-seat-extra-legroom",
      "type": "extra_legroom",
      "name": "Extra Legroom Seat",
      "description": "Seat with additional legroom in rows 1-5",
      "price": {
        "amount": 25,
        "currency": "EUR"
      }
    },
    {
      "service_id": "svc-priority-boarding",
      "type": "priority_boarding",
      "name": "Priority Boarding",
      "description": "Board before general boarding groups",
      "price": {
        "amount": 12,
        "currency": "EUR"
      }
    }
  ]
}

Authorization

X-API-KeystringRequired
Opaque API key issued from the Norba dashboard. Sent on every request as the X-API-Key HTTP header. Missing or invalid keys are rejected with 401 Unauthorized.

Request body

offer_idstringRequired
Offer ID from a shopping or priced-offer response.
Example: aa_offer-abc123

Response fields

service_idstringRequired
Unique service identifier.
typestringRequired
Ancillary type: bag_checked, bag_carry_on, seat, meal, lounge, fast_track, priority_boarding, insurance, upgrade, pet, sport_equipment, extra_legroom, wifi, other.
namestringRequired
Human-readable name.
descriptionstring
Detailed description of the service.
price.amountnumber
Service price. 0 if included.
price.currencystring
ISO 4217 currency code.
segment_refsarray<string>
Segment IDs this service applies to.
Service list · Norba API