Skip to main content

Aviation Crew Roster Data API 1.3.0

Aviation Crew Roster Data API

Last updated: 13-Aug-2026
Recent changes: Merge branch 'OASUP-1359-developer-portal-docs' into 'main' docs(apidocs): add developer portal documentation See merge request api-program/apigee/aviation/aviation-apis/aviation-crew-roster!8

Architecture overview

Client → Apigee X → Lambda (Quarkus) → PostgreSQL (crew roster materialized views)

Requests are received by Apigee X, which handles authentication and CORS, then forwards the request to an AWS Lambda function built with Quarkus. The Lambda queries PostgreSQL materialized views that are populated from the TUI crew tracking system. For large result sets, the Lambda writes the response to S3 and returns a pre-signed download URL instead of the JSON body directly.

Base URLs

Environment Base URL
Development https://dev.api.tui/aviation-crew-roster
SIT / Test https://test.api.tui/aviation-crew-roster
Production https://prod.api.tui/aviation-crew-roster

Authentication

This API uses OAuth 2.0 Client Credentials. Request a token from the appropriate token URL using your client ID and secret, then send it as a Bearer token on subsequent requests.

Token URLs:

Available scopes: aviation-crew-roster.all, aviation-crew-roster.read, aviation-crew-roster.write.

Requesting a token:

curl -X POST "https://test.api.tui/oauth2/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "scope=aviation-crew-roster.read"

Calling the API with the token:

curl -X GET \
  "https://test.api.tui/aviation-crew-roster/crews-roster-duties?owner=TUI&startDate=2023-01-01&endDate=2023-01-31" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Rate limits

No rate limits are currently enforced on this API.

Large response handling

If the JSON response would exceed roughly 5 MB, or if the responseFile query parameter is explicitly set to true, the Lambda writes the result to S3 instead of returning it inline. The response body then contains a message with a pre-signed URL to download the file. The pre-signed URL is valid for 1 hour.

Data freshness and date range

Roster data is sourced from materialized views that are refreshed from the TUI crew tracking system approximately every five minutes. There is no enforced limit on the date range you can query, but narrower ranges will return faster and are recommended for back-office polling use cases.

Correlation ID

Requests can include an X-Correlation-Id header. When a response is stored on S3 because it is too large, this correlation ID is used to name the stored files, which makes it easier to trace a specific request end to end.

Error handling

Status Meaning
200 Success
204 No content, no matching duties found for the given parameters
400 Bad request, invalid or missing parameters
401 Unauthorized, the access token is missing or invalid
403 Forbidden, the token does not have the required scope
500 Internal server error
504 Gateway timeout

See the interactive OpenAPI spec for the full response schemas and examples per endpoint.

Requesting access

Request access through https://tui-air-links.com. Include the environment and scopes you need so the request can be provisioned correctly.

Support

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