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. You must be a registered developer on the developer.tui portal; register for the API product flight-ndc-gateway-navitaire. Once approved, the API key is available under your App's Consumer Key.
- New Skies agent credentials. These are provided by your TUI business partner. For questions or resets, contact api.flightproduction@tui.com.
- IP whitelist (production only). Production access requires the caller's 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 the application. Required on every request. - JWT token (
Authorizationheader): authenticates the New Skies agent session. Obtained via the Auth endpoint.
To obtain a JWT token, send a POST request to the Auth endpoint with the New Skies credentials encoded as Basic authentication.
How to encode your credentials:
Combine the 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-encoded to 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; it is required for all subsequent requests.
Step 2 — Make your first NDC request
With a valid token, any NDC endpoint can be called. 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
With authentication and flight search working, continue to the NDC Workflow page for the full booking flow, from searching flights to creating and modifying orders.
Summary
- Register on developer.tui to obtain an API key.
- Obtain New Skies agent credentials.
- Call
POST /Authwith Basic authentication to obtain a JWT token. - Include the token and API key on all subsequent requests.
- Start with AirShopping to search for flights.
Need help?
- API key or portal issues: register at developer.tui. See the Getting started guide for the full registration and onboarding steps.
- New Skies credentials: contact api.flightproduction@tui.com.
- IP whitelist requests (production): contact api.flightproduction@tui.com.
For any other support requests, contact api.flightproduction@tui.com.
