Skip to main content

Boardingpass API v1

Last updated: 03-Aug-2026
Recent changes: Merge branch 'feature/NSK-76937' into 'master' update api product values Closes NSK-76937 See merge request api-program/apigee/flight/newskies-apis/boardingpass!124

Code Examples

Authentication

Obtain an OAuth 2.0 access token using client credentials:

curl -X POST "https://oauth.api.tui/oauth/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

cURL

Get Boarding Passes

curl -X POST "https://test.api.tui/flight-newskies-boardingpass/bookings/ABC123/boardingpasses?lastname=Smith&outboundDate=20260815" \
  -H "Authorization: Bearer <access_token>" \
  -H "X-SourceMarket: uk"

Check Availability

curl -X GET "https://test.api.tui/flight-newskies-boardingpass/settings/availability/LGW/PMI/BY/20260815" \
  -H "Authorization: Bearer <access_token>" \
  -H "X-SourceMarket: uk"

Get Check-in Status

curl -X GET "https://test.api.tui/flight-newskies-boardingpass/bookings/ABC123/checkinstatus?segment=0" \
  -H "Authorization: Bearer <access_token>" \
  -H "X-SourceMarket: uk"

Generate PDF Boarding Pass

curl -X POST "https://test.api.tui/flight-newskies-boardingpass/bookings/ABC123/pdf?lastname=Smith&outboundDate=20260815&paxNo=0" \
  -H "Authorization: Bearer <access_token>" \
  -H "X-SourceMarket: uk" \
  --output boarding-pass.pdf

Generate Apple Wallet Pass

curl -X POST "https://test.api.tui/flight-newskies-boardingpass/bookings/ABC123/pkpass?lastname=Smith&outboundDate=20260815&segment=0&paxNo=0" \
  -H "Authorization: Bearer <access_token>" \
  -H "X-SourceMarket: uk" \
  --output boarding-pass.pkpass

Email Boarding Pass

curl -X POST "https://test.api.tui/flight-newskies-boardingpass/bookings/ABC123/email?lastname=Smith&outboundDate=20260815&recipient=passenger@example.com&attach=pdf" \
  -H "Authorization: Bearer <access_token>" \
  -H "X-SourceMarket: de"

Get Check-in Config

curl -X GET "https://test.api.tui/flight-newskies-boardingpass/settings/checkinconfig/BY?departureStation=LGW&arrivalStation=PMI" \
  -H "Authorization: Bearer <access_token>" \
  -H "X-SourceMarket: uk"

JavaScript / Node.js (Fetch)

const BASE_URL = 'https://test.api.tui/flight-newskies-boardingpass';

async function getBoardingPasses(bookingId, lastname, outboundDate, sourceMarket) {
  const params = new URLSearchParams({ lastname, outboundDate });
  const response = await fetch(
    `${BASE_URL}/bookings/${bookingId}/boardingpasses?${params}`,
    {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${accessToken}`,
        'X-SourceMarket': sourceMarket,
      },
    }
  );
  if (!response.ok) throw new Error(`HTTP ${response.status}`);
  return response.json();
}

async function checkAvailability(origin, destination, airline, date) {
  const response = await fetch(
    `${BASE_URL}/settings/availability/${origin}/${destination}/${airline}/${date}`,
    { headers: { 'Authorization': `Bearer ${accessToken}`, 'X-SourceMarket': 'uk' } }
  );
  return response.json();
}

C# / .NET

using System.Net.Http;
using System.Net.Http.Headers;

public class BoardingPassApiClient
{
    private readonly HttpClient _httpClient;

    public BoardingPassApiClient(string baseUrl, string accessToken, string sourceMarket)
    {
        _httpClient = new HttpClient { BaseAddress = new Uri(baseUrl) };
        _httpClient.DefaultRequestHeaders.Authorization =
            new AuthenticationHeaderValue("Bearer", accessToken);
        _httpClient.DefaultRequestHeaders.Add("X-SourceMarket", sourceMarket);
    }

    public async Task<string> GetCheckInStatusAsync(string bookingId)
    {
        var response = await _httpClient.GetAsync($"bookings/{bookingId}/checkinstatus");
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }

    public async Task<byte[]> GeneratePdfAsync(string bookingId, string lastname, string outboundDate)
    {
        var response = await _httpClient.PostAsync(
            $"bookings/{bookingId}/pdf?lastname={lastname}&outboundDate={outboundDate}", null);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsByteArrayAsync();
    }
}

Python

import requests

class BoardingPassClient:
    def __init__(self, base_url, access_token, source_market):
        self.base_url = base_url
        self.session = requests.Session()
        self.session.headers.update({
            "Authorization": f"Bearer {access_token}",
            "X-SourceMarket": source_market,
        })

    def get_boarding_passes(self, booking_id, lastname, outbound_date):
        response = self.session.post(
            f"{self.base_url}/bookings/{booking_id}/boardingpasses",
            params={"lastname": lastname, "outboundDate": outbound_date},
        )
        response.raise_for_status()
        return response.json()

    def check_availability(self, origin, destination, airline, date):
        response = self.session.get(
            f"{self.base_url}/settings/availability/{origin}/{destination}/{airline}/{date}"
        )
        response.raise_for_status()
        return response.json()

    def download_pdf(self, booking_id, lastname, outbound_date):
        response = self.session.post(
            f"{self.base_url}/bookings/{booking_id}/pdf",
            params={"lastname": lastname, "outboundDate": outbound_date},
        )
        response.raise_for_status()
        return response.content

Error Handling with Retry


async function callWithRetry(fn, maxRetries = 3) {
  for (let attempt = 1; attempt <= maxRetries; attempt++) {
    try {
      return await fn();
    } catch (error) {
      if (attempt === maxRetries) throw error;
      if (error.status === 429 || error.status >= 500) {
        await new Promise(r => setTimeout(r, Math.pow(2, attempt) * 1000));
      } else {
        throw error;
      }
    }
  }
}

About us

TUI is one of the world’s leading tourism groups. The broad portfolio gathered under the Group umbrella consists of strong tour operators, 1,600 travel agencies and leading online portals, five airlines with around 150 aircraft, over 400 hotels, 16 cruise liners and many incoming agencies in all major holiday destinations around the globe.

 

TUI Group logo

Contact

Login to your account