Getting Started
This guide walks you through calling the Partner Package Live Search API, from obtaining an access token to running your first package search. All endpoints are served over HTTPS and return application/json.
To integrate, you will need:
- A Client ID and Client Secret, provided to you by TUI.
- An agent code, agreed with TUI. Use the same agent code for every request.
If you don't yet have credentials, contact the Meta Package Team to request access: pip.meta.packages@mail.tuigroup.com
Base URLs
| Environment | Base URL |
|---|---|
| Production | https://prod.api.tui/sales/pip-package/live-search/v1 |
| Pre-Production | https://pre-prod.api.tui/sales/pip-package/live-search/v1 |
Use the Pre-Production environment to build and test your integration before going live.
Authentication
The API uses the OAuth 2.0 Client Credentials flow. Before calling any endpoint, request an access token and then send it as a Bearer token on every request.
1. Request an access token
Send your Client ID and Client Secret as HTTP Basic credentials (base64(clientId:clientSecret)) to the token endpoint.
| Environment | Token URL |
|---|---|
| Production | https://prod.api.tui/oauth2/token |
| Pre-Production | https://pre-prod.api.tui/oauth2/token |
curl --request POST \
--url https://prod.api.tui/oauth2/token \
--header 'Accept: application/json' \
--header 'Authorization: Basic <base64(clientId:clientSecret)>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'grant_type=client_credentials'
The response contains an access_token. Reuse the token until it expires rather than requesting a new one per call. The token grants the read:sales-meta-package scope.
2. Call the API with the token
Send the token in the Authorization header:
--header 'Authorization: Bearer <access_token>'
Search Packages
GET /markets/{market}/packages
Returns available packages with live pricing and availability for the given market and search criteria.
Parameters
| Parameter | In | Required | Description |
|---|---|---|---|
market |
path | Yes | The source market code. North Region: dk, fi, no, se. Central Region: de. |
agent |
query | Yes | Your agent code. Use the same for every request. Example: tui. |
adults |
query | Yes | Number of adults in the request. Accepted values: 1 to 6. |
arrivaldatefrom |
query | Yes | Date of arrival from. ISO 8601 format. Example: 2035-01-31. |
arrivaldateto |
query | Yes | Date of arrival to. ISO 8601 format. Example: 2035-01-31. |
durations |
query | Yes | One or more stay durations (nights), comma-separated. Example: 3,5,7,14. |
childages |
query | No | Ages of children, comma-separated. Omit (or send childages=) if there are no children. Example: 5,7. Age ranges — infant: 0-1, child: 2-12, youth: 13-17. |
destinations |
query | No | G-code for each destination, comma-separated. Resolve these via the Content API Locations endpoint. Example: G-000000234,G-000000256. |
accommodations |
query | No | Accommodation identifiers, comma-separated. North Region: A-code or P-code. Central Region: giataId. Example: A0209663,P-500007731 or 16524,18033. |
airportcodes |
query | No | Departure airport codes, comma-separated. Example: ARN,GOT,CPH. |
limit |
query | No | Number of items to return. Default and maximum: 20. |
commercialProductType |
query | No | Holiday category. Defaults to SUN_AND_BEACH. Accepted values: SUN_AND_BEACH, LAKES_AND_MOUNTAINS, CITY. |
Examples
Basic search:
curl --location 'https://prod.api.tui/sales/pip-package/live-search/v1/markets/se/packages?agent=tui&adults=2&arrivaldatefrom=2035-01-31&arrivaldateto=2035-02-28&durations=7,14&limit=20' \
--header 'Authorization: Bearer <access_token>'
Search with optional filters (children, destinations, departure airports and product type):
curl --location 'https://prod.api.tui/sales/pip-package/live-search/v1/markets/se/packages?agent=tui&adults=2&childages=5,7&arrivaldatefrom=2035-01-31&arrivaldateto=2035-02-28&durations=7&destinations=G-000000234,G-000000256&airportcodes=ARN,GOT&commercialProductType=SUN_AND_BEACH' \
--header 'Authorization: Bearer <access_token>'
Tips
- The response includes
totalNumberOfItems,limitis capped at20per request. - Resolve destination G-codes with the Content API Locations endpoint before using the
destinationsfilter. - Narrow your search with
destinations,accommodations, orairportcodesto get faster, more relevant results.
Reference
- Interactive docs: https://prod.api.tui/sales/pip-package/live-search/docs/ — open to the internet, but requests require authentication.
- OpenAPI spec: https://prod.api.tui/sales/pip-package/live-search/docs/spec
