Get Started
This guide walks you through the steps to make your first request to the NDC Gateway API.
Prerequisites
Before you begin, make sure you have:
- An API key — Register on the developer.tui portal for the API product flight-ndc-gateway-navitaire. Once approved, your API key will be available under your App's Consumer Key.
- New Skies agent credentials — Provided by your TUI business partner. For questions or resets, contact api.flightproduction@tui.com.
- IP whitelist (production only) — Production access requires your IP to be whitelisted. See the API Description for details.
For a complete overview of the enrollment process, see the API Description page.
API URLs
| Environment | Base URL | Notes |
|---|---|---|
| Playground | https://playground.api.tui/flight/ndc |
Non-production. No IP whitelist required. |
| Production | https://prod.api.tui/flight/ndc |
IP whitelist required. |
Both environments require an API key and JWT token authentication.
Step 1 — Authenticate
The NDC Gateway uses two layers of authentication:
- API key (
x-apikeyheader) — Identifies your application. Required on every request. - JWT token (
Authorizationheader) — Authenticates your New Skies agent session. Obtained via the Auth endpoint.
To obtain a JWT token, send a POST request to the Auth endpoint with your New Skies credentials encoded as Basic authentication.
How to encode your credentials:
Combine your credentials in the format <domain>\<username>:<password> and Base64-encode the result.
For example, with domain EXT, agent MyAgent, and password MyPassword:
EXT\MyAgent:MyPassword → Base64 → RVhUXE15QWdlbnQ6TXlQYXNzd29yZA==
Authentication request:
curl --location 'https://playground.api.tui/flight/ndc/x3/ndc/api/Selling/r3.x/Auth' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'x-apikey: {YourApiKey}' \
--header 'Authorization: Basic {Base64EncodedCredentials}' \
--data '{
"grant_type": "client_credentials"
}'
Response (simplified):
{
"token": "eyJhbGciOiJSUzI1NiIs...",
"expires": "2026-04-21T14:30:00Z",
"roleCode": "NDCB",
"organizationCode": "X3",
"domainCode": "EXT"
}
Save the token value — you will need it for all subsequent requests.
Step 2 — Make your first NDC request
With your token, you can now call any NDC endpoint. A good starting point is AirShopping, which searches for available flights.
All requests after authentication must include these headers:
| Header | Value | Description |
|---|---|---|
x-apikey |
{YourApiKey} |
Your API key from the developer portal |
Authorization |
Bearer {token} |
The JWT token from Step 1 |
Content-Type |
application/json |
Request body format |
Example — Search for flights (AirShopping):
curl --location 'https://playground.api.tui/flight/ndc/x3/ndc/api/Shopping/r3.x/v21.3/AirShopping' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'x-apikey: {YourApiKey}' \
--header 'Authorization: Bearer {token}' \
--data '{
...your AirShopping request body...
}'
For the full request/response schema, see the Reference documentation.
Step 3 — Explore the NDC workflow
Now that you can authenticate and search for flights, continue to the NDC Workflow page to learn the full booking flow — from searching flights to creating and modifying orders.
Summary
┌─────────────────────────────────────────────────────────┐
│ 1. Register on developer.tui → get API key │
│ 2. Obtain New Skies agent credentials │
│ 3. POST /Auth with Basic auth → get JWT token │
│ 4. Use token + API key on all subsequent requests │
│ 5. Start with AirShopping to search for flights │
└─────────────────────────────────────────────────────────┘
Need help?
- API key or portal issues: Register at developer.tui
- New Skies credentials: Contact api.flightproduction@tui.com
- IP whitelist requests (production): Contact api.flightproduction@tui.com
