TUI Group Token API

The token API from TUI Group — 13 operation(s) for token.

Operations 20

POST /api/v1/token Creates the general access token that will grant access to the API. #
PUT /api/v1/token Keeps the active token alive. #
DELETE /api/v1/token Abandons the active token. #
GET /api/auth/v1/token Get the information about the short-lived JWT. #
PUT /api/auth/v1/token Updates the short-lived JWT. #
GET /api/nsk/v1/token Get the information about the current token. #
DELETE /api/nsk/v1/token Abandons the active token. #
POST /api/nsk/v2/token Creates the general access token that will grant access to the API. #
PUT /api/nsk/v2/token Given a non-null request, upgrades the current session's logged in user. Otherwise, keeps the active token alive. #
POST /api/auth/v1/token/anonymous Create a short-lived anonymous JWT. #
POST /api/nsk/v1/token/culture Sets the culture code for the lifetime of the token. #
POST /api/auth/v1/token/multifactor Register multi-factor authentication options. #
PUT /api/auth/v1/token/role Updates the short-lived JWT with new role permissions. #
POST /api/nsk/v1/token/serverTransfer Transfers the server context from NewSkies and returns a new token. #
POST /api/nsk/v1/token/singleSignOn Creates the general access token that will grant access to the API. #
PUT /api/nsk/v1/token/singleSignOn Given a non-null request, upgrades the current session's logged-in user. Otherwise, keeps the active token alive. #
POST /api/auth/v1/token/user Creates a short-lived JWT specific to a user. #
PUT /api/auth/v1/token/user Updates an anonymous short-lived JWT to login as a user. #
POST /api/nsk/v1/token/user/person/singleSignOn Creates a new user, links it with a provider, then logs in as the new user. #
GET /api/dcs/v1/token Gets token-based information about the current user that is commonly used by DCS applications. #

Documentation

📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/api-description
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/get-started
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/simple-workflow
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/advanced-workflow
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/creditcard-payments
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/backwards-compatibility
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/api-description
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/get-started
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/check-workflow
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/backwards-compatibility
📖
Documentation
https://developer.tui/api-catalog/newskies-payment-api/api-description
📖
Documentation
https://developer.tui/api-catalog/newskies-payment-api/booking-flow
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/description
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/api-details
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/code-examples
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/api-onepager
📖
Documentation
https://developer.tui/api-catalog/tui-newskies-pricefile-api/description
📖
Documentation
https://developer.tui/api-catalog/tui-newskies-pricefile-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/tui-newskies-pricefile-api/data-format
📖
Documentation
https://developer.tui/api-catalog/checkinhandler-service-api/api-description
📖
Documentation
https://developer.tui/api-catalog/checkinhandler-service-api/api-details
📖
Documentation
https://developer.tui/api-catalog/checkinhandler-service-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/tui-flight-ota-api/api-description
📖
Documentation
https://developer.tui/api-catalog/ota-content-api/api-description
📖
Documentation
https://developer.tui/api-catalog/ota-content-api/technical-details
📖
Documentation
https://developer.tui/api-catalog/ota-content-api/release-notes
📖
Documentation
https://developer.tui/api-catalog/walldy-api/api-description
📖
Documentation
https://developer.tui/api-catalog/walldy-api/api-details
📖
Documentation
https://developer.tui/api-catalog/walldy-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/walldy-api/api-onepager
📖
Documentation
https://developer.tui/api-catalog/walldy-api/release-notes
📖
Documentation
https://developer.tui/api-catalog/holidayofferscontroller-api/api-description
📖
Documentation
https://developer.tui/api-catalog/holidayofferscontroller-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/holidayofferscontroller-api/release-notes
📖
Documentation
https://developer.tui/api-catalog/meta-search-generic-api/api-description
📖
Documentation
https://developer.tui/api-catalog/partner-content-api/api-description
📖
Documentation
https://developer.tui/api-catalog/ship-content-api/api-description

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tui-group-token-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tui-group-token-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tui Group Token API
  version: '1.0'
  description: 'Operations tagged token across 2 of this provider''s published API definitions: tui-group-tui-newskies-digital-api-openapi.yml, tui-group-tui-newskies-gonow-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://prod.api.tui/flight/newskies/rest
  description: TUI Prod
- url: https://playground.api.tui/flight/newskies/rest
  description: TUI Playground
- url: https://prod.api.tui/flight/newskies/gonow
  description: TUI Prod
- url: https://playground.api.tui/flight/newskies/gonow
  description: TUI Playground
security:
- JWT: []
tags:
- name: token
paths:
  /api/v1/token:
    post:
      tags:
      - token
      summary: Creates the general access token that will grant access to the API.
      operationId: v1_token_post
      requestBody:
        x-name: request
        description: The token request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRequest'
            examples:
              Default:
                description: A request is optional. With no request you will get back the default anonymous token.
                value: {}
              Application Specific:
                description: When supplying an application name you will get the default anonymous token configured for that application (if available).
                value:
                  applicationName: WebApp
        x-position: 1
      responses:
        '201':
          description: The item was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfTokenResponse'
              examples:
                Created:
                  description: A successful token with the idle time out in minutes.
                  value:
                    data:
                      token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJVbmtub3duIiwianRpIjoiZjZmNmQwMTAtOTM4OC0zM2Q1LTEwOGItYTk0NDNmMzcxMDc4IiwiaXNzIjoiZG90UkVaIEFQSSJ9.43Wh_19jHPHzEIPNxTUWaJQtTPHSkB_WmEPL-xxxxxx
                      idleTimeoutInMinutes: 15
      deprecated: true
    put:
      tags:
      - token
      summary: Keeps the active token alive.
      description: 'GraphQL endpoint: tokenKeepAlive'
      operationId: v1_token_put
      responses:
        '440':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Timed out:
                  description: The token timed out, please get a new token.
                  value:
                    errors:
                    - id: null
                      code: core:Token:Timeout
                      message: null
                      type: Error
                      details: null
                      rawMessage: The provided token has timed out.
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Ok:
                  description: No content returned.
                  value:
                    data: null
      deprecated: true
    delete:
      tags:
      - token
      summary: Abandons the active token.
      description: 'GraphQL endpoint: tokenDelete'
      operationId: v1_token_delete
      responses:
        '440':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Timed out:
                  description: The token timed out, please get a new token.
                  value:
                    errors:
                    - id: null
                      code: core:Token:Timeout
                      message: null
                      type: Error
                      details: null
                      rawMessage: The provided token has timed out.
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Ok:
                  description: No content returned.
                  value:
                    data: null
      deprecated: true
    servers:
    - url: https://prod.api.tui/flight/newskies/rest
      description: TUI Prod
    - url: https://playground.api.tui/flight/newskies/rest
      description: TUI Playground
  /api/auth/v1/token:
    get:
      tags:
      - token
      summary: Get the information about the short-lived JWT.
      description: 'With custom application names (system type in NewSkies), because of the nature of the underlying system type, the

        `NskServer.SystemName` will always show as `UserDefined`.  To see the custom name, see the

        `ServerContext.ApplicationName`.


        GraphQL endpoint: jwtToken'
      operationId: auth_v1_token_get
      responses:
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfJwtDetailsResponse'
    put:
      tags:
      - token
      summary: Updates the short-lived JWT.
      description: Updates the short-lived JWT.
      operationId: auth_v1_token_put
      requestBody:
        x-name: request
        description: The refresh request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JwtRefreshRequest'
        x-position: 1
      responses:
        '201':
          description: The item was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfJwtResponse'
              examples:
                JWT token creation successful:
                  description: Successful token creation with valid user credentials.
                  value:
                    data:
                      token: '**JWT Token**'
                      cultureCode: en-US
                      currencyCode: USD
                      roleCode: AIR2
                      locationCode: HDQ
                      domainCode: DEF
                      organizationCode: '88888888'
                      expires: '2026-07-09T06:10:14.6420287+00:00'
                      userKey: NDEwMjQ-
                      personKey: NzE3MzI-
        '400':
          description: There was a problem with the request and it could not be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfString'
              examples:
                Agent not found:
                  description: For security unless in debug mode for testing servers the same error will be returned for multiple credential scenarios.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:Failed
                      message: nsk-server:Credentials:Failed
                      type: Error
                      details: null
                      rawMessage: No agent found for requested agent name DEF/authAppMFAUse.
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
                Invalid password:
                  description: For security unless in debug mode for testing servers the same error will be returned for multiple credential scenarios.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:Failed
                      message: nsk-server:Credentials:Failed
                      type: Error
                      details: null
                      rawMessage: The agent (DEF/authAppMFAUser) failed authentication.
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
                Invalid culture code:
                  description: The provided culture code in the request is an invalid culture identifier.
                  value:
                    errors:
                    - id: null
                      code: nsk:CultureCode:InvalidCultureCode
                      message: The culture code `asdf` is invalid.
                      type: Validation
                      details: null
                      rawMessage: The culture code `asdf` is invalid.
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    - id: null
                      code: nsk:Exceptions:OutOfRange
                      message: 'The value ''asdf'' is out of range for ''CultureCodeValidator.Culture Code''.\nExpected values: (en-US,de-DE,en-AU,en-CA,en-IE,es-ES,es-MX,eu-ES,fr-FR,hi-IN,id-ID,ja-JP,ko-KR,th-TH,zh-CN)'
                      type: Validation
                      details: null
                      rawMessage: null
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
                Culture code not configured:
                  description: The provided culture code in the request is not configured in the resources. For valid culture codes, see GET /api/nsk/v1/resources/cultures
                  value:
                    errors:
                    - id: null
                      code: nsk:Exceptions:OutOfRange
                      message: 'The value ''asdf'' is out of range for ''CultureCodeValidator.Culture Code''.\nExpected values: (en-US,de-DE,en-AU,en-CA,en-IE,es-ES,es-MX,eu-ES,fr-FR,hi-IN,id-ID,ja-JP,ko-KR,th-TH,zh-CN)'
                      type: Validation
                      details: null
                      rawMessage: null
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
        '401':
          description: Authentication is required for this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfJwtResponse'
    servers:
    - url: https://prod.api.tui/flight/newskies/rest
      description: TUI Prod
    - url: https://playground.api.tui/flight/newskies/rest
      description: TUI Playground
  /api/nsk/v1/token:
    get:
      tags:
      - token
      summary: Get the information about the current token.
      description: '- With custom application names (system type in NewSkies), because of the nature of the underlying system type, the

        `NskServer.SystemName` will always show as `UserDefined`.  To see the custom name, see the

        `ServerContext.ApplicationName`.

        - The values `IsVirtual` and `HasBookingInState` no longer apply if the NSK JWT token is being used.


        GraphQL endpoint: token'
      operationId: nsk_v1_token_get
      responses:
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfNskSessionContext'
      deprecated: true
    delete:
      tags:
      - token
      summary: Abandons the active token.
      operationId: nsk_v1_token_delete
      responses:
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
      deprecated: true
    servers:
    - url: https://prod.api.tui/flight/newskies/rest
      description: TUI Prod
    - url: https://playground.api.tui/flight/newskies/rest
      description: TUI Playground
  /api/nsk/v2/token:
    post:
      tags:
      - token
      summary: Creates the general access token that will grant access to the API.
      description: 'Security Note:

        This endpoint has the ability to log in as any role assigned to a user

        or that is allowed through impersonation settings. A user may still log

        into a role that is not assigned to them if the impersonation settings

        allow it.'
      operationId: nsk_v2_token_post
      requestBody:
        x-name: request
        description: The nsk token request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NskTokenRequestv2'
        x-position: 1
      responses:
        '201':
          description: The item was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfMultiFactorTokenResponse'
        '202':
          description: Accepted, continue multi-factor authentication.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfMultiFactorTokenResponse'
              examples:
                MFA registration required.:
                  description: This role requires multi-factor authentication. This user has not yet choose the preferred type of MFA and registered with it. See POST /token/multifactor
                  value:
                    messages:
                    - code: nsk-server:MFA:RegistrationRequired
                      type: Information
                      value: Multi-factor registration is required.
                      status: 0
                      details: null
                    data:
                      multiFactorRequired:
                        challengeId: null
                        requiresRegistration: true
                        requiresChallengeCode: false
                        types:
                        - 2
                        - 1
                        - 0
                      token: null
                      idleTimeoutInMinutes: 0
                MFA challenge required.:
                  description: This role requires multi-factor authentication. This user has already registered but needs to use their chosen registration method for the 2nd factor authentication.
                  value:
                    messages:
                    - code: nsk-server:MFA:ChallengeCodeRequired
                      type: Information
                      value: Multi-factor authentication required. Please check your second factor method and enter the challenge code.
                      status: 0
                      details: null
                    data:
                      multiFactorRequired:
                        challengeId: 01234567890123456789
                        requiresRegistration: false
                        requiresChallengeCode: true
                        types:
                        - 0
                      token: null
                      idleTimeoutInMinutes: 0
        '400':
          description: There was a problem with the request and it could not be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfString'
              examples:
                MFA registration required.:
                  description: This role requires multi-factor authentication. This user has not yet choose the preferred type of MFA and registered with it. See POST /token/multifactor
                  value:
                    errors:
                    - id: null
                      code: nsk-server:MFA-RegistrationRequired
                      message: Multi-factor registration is required.
                      type: Validation
                      details: null
                      rawMessage: null
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
                MFA challenge required.:
                  description: This role requires multi-factor authentication. This user has already registered but needs to use their chosen registration method for the 2nd factor authentication. The types returned represent the available types and not necessarily which type your 2FA was sent to.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:MFA-ChallengeCodeRequired
                      message: Multi-factor authentication required. Please check your second factor method and enter the challenge code.
                      type: Validation
                      details: null
                      rawMessage: null
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
      deprecated: true
    put:
      tags:
      - token
      summary: 'Given a non-null request, upgrades the current session''s logged in user.

        Otherwise, keeps the active token alive.'
      description: 'Security Note:

        This endpoint has the ability to log in as any role assigned to a user

        or that is allowed through impersonation settings. A user may still log

        into a role that is not assigned to them if the impersonation settings

        allow it.


        GraphQL endpoint: tokenUpgradev2'
      operationId: nsk_v2_token_put
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialsBase'
        x-position: 1
      responses:
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
        '201':
          description: The item was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
      deprecated: true
    servers:
    - url: https://prod.api.tui/flight/newskies/rest
      description: TUI Prod
    - url: https://playground.api.tui/flight/newskies/rest
      description: TUI Playground
  /api/auth/v1/token/anonymous:
    post:
      tags:
      - token
      summary: Create a short-lived anonymous JWT.
      description: 'Tokens have a set

        expiration time. Client applications should call the put endpoint to get a new token before this

        expiration time.'
      operationId: auth_v1_token_anonymous_post
      requestBody:
        x-name: request
        description: Get token request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JwtRefreshRequest'
            examples:
              Anonymous JWT Token Request:
                description: Example request for creating an anonymous JWT token.
                value:
                  applicationName: Digital API
                  cultureCode: en-US
                  newSession: true
              Empty Request:
                description: An empty anonymous JWT token request.
                value:
                  applicationName: null
                  cultureCode: null
                  newSession: false
        x-position: 1
      responses:
        '201':
          description: The item was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfJwtResponse'
              examples:
                JWT token creation successful:
                  description: Successful token creation with valid anonymous credentials.
                  value:
                    data:
                      token: '**JWT Token**'
                      cultureCode: en-US
                      currencyCode: USD
                      roleCode: TAW3
                      locationCode: WWW
                      domainCode: WW2
                      organizationCode: '88888888'
                      expires: '2026-07-09T06:10:14.6132458+00:00'
                      userKey: NDEwMjQ-
                      personKey: NzE3MzI-
        '400':
          description: There was a problem with the request and it could not be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfString'
              examples:
                Agent not found:
                  description: For security unless in debug mode for testing servers the same error will be returned for multiple credential scenarios.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:Failed
                      message: nsk-server:Credentials:Failed
                      type: Error
                      details: null
                      rawMessage: No agent found for requested agent name DEF/authAppMFAUse.
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
                Invalid password:
                  description: For security unless in debug mode for testing servers the same error will be returned for multiple credential scenarios.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:Failed
                      message: nsk-server:Credentials:Failed
                      type: Error
                      details: null
                      rawMessage: The agent (DEF/authAppMFAUser) failed authentication.
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
                Invalid culture code:
                  description: The provided culture code in the request is an invalid culture identifier.
                  value:
                    errors:
                    - id: null
                      code: nsk:CultureCode:InvalidCultureCode
                      message: The culture code `asdf` is invalid.
                      type: Validation
                      details: null
                      rawMessage: The culture code `asdf` is invalid.
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    - id: null
                      code: nsk:Exceptions:OutOfRange
                      message: 'The value ''asdf'' is out of range for ''CultureCodeValidator.Culture Code''.\nExpected values: (en-US,de-DE,en-AU,en-CA,en-IE,es-ES,es-MX,eu-ES,fr-FR,hi-IN,id-ID,ja-JP,ko-KR,th-TH,zh-CN)'
                      type: Validation
                      details: null
                      rawMessage: null
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
                Culture code not configured:
                  description: The provided culture code in the request is not configured in the resources. For valid culture codes, see GET /api/nsk/v1/resources/cultures
                  value:
                    errors:
                    - id: null
                      code: nsk:Exceptions:OutOfRange
                      message: 'The value ''asdf'' is out of range for ''CultureCodeValidator.Culture Code''.\nExpected values: (en-US,de-DE,en-AU,en-CA,en-IE,es-ES,es-MX,eu-ES,fr-FR,hi-IN,id-ID,ja-JP,ko-KR,th-TH,zh-CN)'
                      type: Validation
                      details: null
                      rawMessage: null
                      exception: null
                      debugMode: The API is currently running in debug mode. In production the 'rawMessage' and 'exception' nodes will not be returned. These are for troubleshooting development issues only.
                    data: null
    servers:
    - url: https://prod.api.tui/flight/newskies/rest
      description: TUI Prod
    - url: https://playground.api.tui/flight/newskies/rest
      description: TUI Playground
  /api/nsk/v1/token/culture:
    post:
      tags:
      - token
      summary: Sets the culture code for the lifetime of the token.
      description: 'Note there is middleware that looks for "Culture" on every request in the headers or query string parameters.

        These can be used if you want to set the culture for a single request only.


        GraphQL endpoint: tokenCultureSet'
      operationId: nsk_v1_token_culture_post
      parameters:
      - name: defaultCultureCode
        in: query
        description: The culture code to use as the default for the life of this token.
        schema:
          type:
          - string
          - 'null'
        x-position: 1
      responses:
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
      deprecated: true
    servers:
    - url: https://prod.api.tui/flight/newskies/rest
      description: TUI Prod
    - url: https://playground.api.tui/flight/newskies/rest
      description: TUI Playground
  /api/auth/v1/token/multifactor:
    post:
      tags:
      - token
      summary: Register multi-factor authentication options.
      description: 'Allows first time users to select their multifactor authentication method and will send a challenge code to that

        method.'
      operationId: auth_v1_token_multifactor_post
      requestBody:
        x-name: request
        description: The multi-factor registration request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiFactorRegisterRequest'
            examples:
              Register Email:
                description: Initial request to register an email.
                value:
                  credentials:
                    domain: DEF
                    username: agent123
                    password: '*******'
                  registration:
                    email: getChallengeCode@mfa.com
                    type: 0
              Verify:
                description: Second request to verify the challenge code with a challenge id.
                value:
                  credentials:
                    domain: DEF
                    username: agent123
                    password: '*******'
                  verify:
                    challengeCode: '012345'
                    challengeId: 01234567890123456789
              Register SMS:
                description: Initial request to register an phone number.
                value:
                  credentials:
                    domain: DEF
                    username: agent123
                    password: '*******'
                  registration:
                    phone: 123-123-1234
                    type: 1
              Register TOTP:
                description: Initial request to register an authenticator app.
                value:
                  credentials:
                    domain: DEF
                    username: agent123
                    password: '*******'
                  registration:
                    type: 2
        required: true
        x-position: 1
      responses:
        '201':
          description: The item was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfMultiFactorRegisterResponse'
              examples:
                Verified Example:
                  description: MFA registrations has been verified. This will only need to be done once and the user can now proceed to POST /token/user to restart the authentication process.
                  value:
                    data:
                      qrCodeUrl: null
                      challengeId: null
        '202':
          description: Waiting on additional data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfMultiFactorRegisterResponse'
              examples:
                TOTP Example:
                  description: This value can be used in websites or by devs using sites such as https://jaredwinick.github.io/base64-image-viewer/ and would be scanned by an authenticator app to provide the challenge code. Next please call this same endpoint to verify the MFA registration.
                  value:
                    data:
                      qrCodeUrl: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeoAAAHqAQAAAADjFjCXAAADHElEQVR42u2dW47bMAxFiXoBXpK27iV5AQY0jsyXkkE/Sg3QoscfRjLx+TEuSF2S0kivXIeAg4ODg4ODg4P/Tbjotd2f9uv53PsZt+1+dL+fa6c92gb+S0oX+P+Jq+qGhkJcQ3/t1F9vbW7dlLj1RKA68IrqXjGsDdVZ1LuvS24Rvm7Pc9fziGoS1YEvU90rmqm4Rq4doc9vqA7852LdI7grp1T/iurAf2Zd91Kd/k1SwGNdB75QdeFh2/n7Gx4WfJHq4noS6RGxzi3Ft4UX3jx4Idbtl7kJK5WY4DzNiqRHiHXgi1Q3hLR3tRRuaR/9jcrJuzp58+A1D6sGdajOiiaRYaNoEpYC1YHX3IQXQ9yvapod2dS6ZONvsepDdeAVN+Gxrr3bh6Gwy3sTkn9FdeAlDxvOQaskGtckGwmtJndiHfgC1anCNi8Va/c1yica8KJyh+rAyx72s936fntUNyBUB77Ew+bGgzVjtWkRHtZqKFSJwRdl2Nzun0La5DCiaYHqwIuqs7yqpToLeI+5PcSdawxDoTrwBR5Wy3KpD3uZ6vyrKhHVga9Y180GNc3X9SkINs+/qA58Raz7GC05dW499u2kLgXrOvD6us4bD7KlCc6pLbGlHgaqAy9nWN+ek6fqXj+32JlocjQlojrwaoY16c2xztLsN19RHXhVdWEQRD9Z+U7kY6MObgJ8iYe1PWIW5kTSRp1m4yY2c8csMfiidZ2VSnLjPy3z9IcthUNUB17zsHNbbBqos/l2l97Oug58SawTV9Pl6zorEHupzvplVE7AV6jOuq+mv9wRy7HO139kWPC66vp0sIlMFeFD8hkBOTHz5sGrGVYk+YU8jOKbEseVjhjjzYP/uZuY9/5PW2G1XxaTJqzrwBefc5I7/aeelZiNrO/lQXXgVdW11POaZtmj8X/4aLFWjlEdeFF1KbjFCXXXNH3X3eayCxt8reraXDRuKeGq4OhNgC8/q3PeN+GH7cT2MOp14IvXdTHLno6/TjsohF3Y4OvP6oy5zWOfqiQ97eWhDwteVx3/IAYcHBwcHBwc/F/HvwBzCfzfcRsB9wAAAABJRU5ErkJggg==
                      challengeId: 01234567890123456789
                Email or SMS Example:
                  description: An email will be sent that provides a challenge code. Next please call this same endpoint to verify the MFA registration. If registration is not verified then it will timeout after 10 minutes and will be required again in future authentication calls.
                  value:
                    data:
                      qrCodeUrl: null
                      challengeId: 012345678901234567

# --- truncated at 32 KB (127 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tui-group/refs/heads/main/openapi/tui-group-token-api-openapi.yml