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-KeyModern 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 upgradesEach 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-KeystringRequiredOpaque 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_idstringRequiredOffer ID from a shopping or priced-offer response.
Example:
aa_offer-abc123Response fields
service_idstringRequiredUnique service identifier.
typestringRequiredAncillary type: bag_checked, bag_carry_on, seat, meal, lounge, fast_track, priority_boarding, insurance, upgrade, pet, sport_equipment, extra_legroom, wifi, other.
namestringRequiredHuman-readable name.
descriptionstringDetailed description of the service.
price.amountnumberService price. 0 if included.
price.currencystringISO 4217 currency code.
segment_refsarray<string>Segment IDs this service applies to.