TUI New Skies Digital API

JSON API onto the Navitaire New Skies passenger service system, used to create and maintain flight bookings and perform operational tasks such as retrieving flight manifests. The set of permitted operations varies by New Skies agent role. Authentication is handled by the New Skies platform itself via a session token issued from /api/auth/v1/token/user; the TUI API key is a consumer identification layer on top.

OpenAPI Specification

tui-group-tui-newskies-digital-api-openapi.yml Raw ↑
x-generator: NSwag v14.6.3.0 (NJsonSchema v11.5.2.0 (Newtonsoft.Json v13.0.0.0))
openapi: 3.0.0
info:
  title: NewSkies-Digital-Api
  version: 4.8.6.23
  description: Navitaire Digital Api
servers:
- url: https://prod.api.tui/flight/newskies/rest
  description: TUI Prod
- url: https://playground.api.tui/flight/newskies/rest
  description: TUI Playground
paths:
  /api/nsk/v1/account/password/challenge:
    post:
      tags:
      - account
      summary: Sends a challenge code for agents' reset password flow.
      description: 'This is the first step in the reset password flow to generate
        a challenge code. The challenge

        code is sent to the user''s email and/or phone number based on the domain
        configuration.

        To configure this flow, see the Reset Password tab in the `Edit Domain` window
        in `Management Console`.


        Related Endpoints:

        - POST /api/nsk/v1/account/password/challenge/verify: The optional step to
        verify the challenge code.

        - PUT /api/nsk/v1/account/password/challenge/reset: The second step to verify
        the challenge code and reset the

        password.


        Unrelated Endpoints:

        - POST /api/auth/v1/token/multifactor: MFA relies on separate configuration
        and is for login flows vs reset

        password flows.


        If the domain is not configured for the new password flow, the following endpoints
        should be used.

        - POST /api/nsk/v3/account/password/change: Expired password change using
        the anonymous login

        - POST api/nsk/v1/account/password/reset: Forgot password change using the
        anonymous login.

        - POST api/nsk/v3/user/password/change: Password change for the current login
        user.

        - POST api/nsk/v1/users/{userKey}/password/change: Password change for a specific
        user.

        - POST api/nsk/v1/users/{userKey}/password/reset: Forgot password change for
        a specific user.


        GraphQL endpoint: accountPasswordChallenge'
      operationId: nsk_v1_account_password_challenge_post
      requestBody:
        x-name: request
        description: The account password challenge request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountPasswordChallengeRequest'
            examples:
              With both phone number and email:
                description: Example request with both phone number and email.
                value:
                  domain: EXT
                  username: agent
                  phoneNumber: '+11111111111'
                  email: agent@mail.com
              With a phone number only:
                description: Example request with a phone number only.
                value:
                  domain: EXT
                  username: agent
                  phoneNumber: '+11111111111'
                  email: null
              With an email only:
                description: Example request with an email only.
                value:
                  domain: EXT
                  username: agent
                  phoneNumber: null
                  email: agent@mail.com
        required: true
        x-position: 1
      responses:
        '202':
          description: Accepted, a challenge code was generated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfString'
              examples:
                Challenge code generated:
                  description: Example response when a challenge code was successfully
                    generated. Please check the user's email and/or phone number for
                    the challenge code.
                  value:
                    data: null
        '400':
          description: There was a problem with the request and it could not be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Domain configuration does not allow agents to use the new reset password flow:
                  description: Example when the domain configuration does not allow
                    agents to use the new reset password flow. Check the UseNewResetPasswordFlow
                    property in /resources/Domains.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:UseOldResetPasswordFlow
                      message: Current carrier settings for your domain EXT do not
                        allow agents to reset their own password.
                      type: Error
                      details:
                        errorNumber: '1667'
                        sessionException: UseOldResetPasswordFlow
                      rawMessage: Current carrier settings for your domain EXT do
                        not allow agents to reset their own password.
                      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
                Agent does not exist:
                  description: Example when the agent does not exist.
                  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 EXT/agent.
                      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
                Agent exceeded maximum allowed attempts in the reset password flow:
                  description: Example when the agent exceeded maximum allowed attempts
                    in the reset password flow.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:RateLimited
                      message: The agent (EXT/agent) has exceeded challenge code,
                        and contact method match attempts in the password reset flow.
                      type: Error
                      details:
                        errorNumber: '1622'
                        sessionException: PasswordResetDisabled
                      rawMessage: The agent (EXT/agent) has exceeded challenge code,
                        and contact method match attempts in the password reset flow.
                      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
                Agent attempts the reset password flow after exceeding the maximum allowed attempts:
                  description: Example when the agent attempts the reset password
                    flow after exceeding the maximum allowed attempts.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:RateLimited
                      message: The agent (EXT/agent) attempted a password reset step
                        while the password reset flow was disabled.
                      type: Error
                      details:
                        errorNumber: '1650'
                        sessionException: AttemptWhilePasswordResetDisabled
                      rawMessage: The agent (EXT/agent) attempted a password reset
                        step while the password reset flow was disabled.
                      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
                Phone number or email is a required contact method but is null, empty, or invalid in the request:
                  description: Example when the phone number or email is a required
                    contact method but is null, empty, or invalid in the request.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:Failed
                      message: nsk-server:Credentials:Failed
                      type: Error
                      details: null
                      rawMessage: The agent (EXT/agent) 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
        '401':
          description: Authorization Not Allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Authentication token is missing or invalid:
                  description: Example when the authentication token is missing or
                    invalid.
                  value: null
  /api/nsk/v1/account/password/challenge/reset:
    put:
      tags:
      - account
      summary: Resets the password for agents using challenge code authentication.
      description: 'This is the second step in the reset password flow. To configure
        this flow, see the Reset Password tab in

        the `Edit Domain` window in `Management Console`.


        Related Endpoints:

        - POST /api/nsk/v1/account/password/challenge: The first step to generate
        the challenge code.

        - POST /api/nsk/v1/account/password/challenge/verify: The optional step to
        verify the challenge code.


        Unrelated Endpoints:

        - POST /api/auth/v1/token/multifactor: MFA relies on separate configuration
        and is for login flows vs reset

        password flows.


        If the domain is not configured for the new password flow, the following endpoints
        should be used.

        - POST /api/nsk/v3/account/password/change: Expired password change using
        the anonymous login

        - POST api/nsk/v1/account/password/reset: Forgot password change using the
        anonymous login.

        - POST api/nsk/v3/user/password/change: Password change for the current login
        user.

        - POST api/nsk/v1/users/{userKey}/password/change: Password change for a specific
        user.

        - POST api/nsk/v1/users/{userKey}/password/reset: Forgot password change for
        a specific user.


        GraphQL endpoint: accountPasswordChallengeReset'
      operationId: nsk_v1_account_password_challenge_reset_put
      requestBody:
        x-name: request
        description: The account password challenge reset request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountPasswordChallengeResetRequest'
            examples:
              Valid request:
                description: Example request for resetting a password.
                value:
                  domain: EXT
                  username: agent
                  challengeCode: '123456'
                  newPassword: NewPass
        required: true
        x-position: 1
      responses:
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Password is reset:
                  description: Example response for a successful password reset.
                  value:
                    data: null
        '400':
          description: There was a problem with the request and it could not be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Domain configuration does not allow agents to use the new reset password flow:
                  description: Example when the domain configuration does not allow
                    agents to use the new reset password flow. Check the UseNewResetPasswordFlow
                    property in /resources/Domains.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:UseOldResetPasswordFlow
                      message: Current carrier settings for your domain EXT do not
                        allow agents to reset their own password.
                      type: Error
                      details:
                        errorNumber: '1667'
                        sessionException: UseOldResetPasswordFlow
                      rawMessage: Current carrier settings for your domain EXT do
                        not allow agents to reset their own password.
                      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
                Agent does not exist:
                  description: Example when the agent does not exist.
                  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 EXT/agent.
                      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
                Agent exceeded maximum allowed attempts in the reset password flow:
                  description: Example when the agent exceeded maximum allowed attempts
                    in the reset password flow.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:RateLimited
                      message: The agent (EXT/agent) has exceeded challenge code,
                        and contact method match attempts in the password reset flow.
                      type: Error
                      details:
                        errorNumber: '1622'
                        sessionException: PasswordResetDisabled
                      rawMessage: The agent (EXT/agent) has exceeded challenge code,
                        and contact method match attempts in the password reset flow.
                      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
                Agent attempts the reset password flow after exceeding the maximum allowed attempts:
                  description: Example when the agent attempts the reset password
                    flow after exceeding the maximum allowed attempts.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:RateLimited
                      message: The agent (EXT/agent) attempted a password reset step
                        while the password reset flow was disabled.
                      type: Error
                      details:
                        errorNumber: '1650'
                        sessionException: AttemptWhilePasswordResetDisabled
                      rawMessage: The agent (EXT/agent) attempted a password reset
                        step while the password reset flow was disabled.
                      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
                Challenge code is invalid or expired:
                  description: Example when the challenge code is invalid or expired.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:Failed
                      message: nsk-server:Credentials:Failed
                      type: Error
                      details: null
                      rawMessage: Challenge code entered does not match for agent
                        or is expired (EXT/agent).
                      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: Authorization Not Allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Authentication token is missing or invalid:
                  description: Example when the authentication token is missing or
                    invalid.
                  value: null
  /api/nsk/v1/account/password/challenge/verify:
    post:
      tags:
      - account
      summary: Verifies the challenge code for agents' reset password flow.
      description: 'This is an optional step between creating a challenge code and
        resetting the password. To configure this flow,

        see the Reset Password tab in the `Edit Domain` window in `Management Console`.


        Related Endpoints:

        - POST /api/nsk/v1/account/password/challenge: The first step to generate
        the challenge code.

        - PUT /api/nsk/v1/account/password/challenge/reset: The second step to verify
        the challenge code and reset the

        password.


        Unrelated Endpoints:

        - POST /api/auth/v1/token/multifactor: MFA relies on separate configuration
        and is for login flows vs reset

        password flows.


        If the domain is not configured for the new password flow, the following endpoints
        should be used.

        - POST /api/nsk/v3/account/password/change: Expired password change using
        the anonymous login

        - POST api/nsk/v1/account/password/reset: Forgot password change using the
        anonymous login.

        - POST api/nsk/v3/user/password/change: Password change for the current login
        user.

        - POST api/nsk/v1/users/{userKey}/password/change: Password change for a specific
        user.

        - POST api/nsk/v1/users/{userKey}/password/reset: Forgot password change for
        a specific user.


        GraphQL endpoint: accountPasswordChallengeVerify'
      operationId: nsk_v1_account_password_challenge_verify_post
      requestBody:
        x-name: request
        description: The account password challenge verify request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountPasswordChallengeVerifyRequest'
            examples:
              Valid request:
                description: Example request of verifying the challenge code.
                value:
                  domain: EXT
                  username: agent
                  challengeCode: '123456'
        required: true
        x-position: 1
      responses:
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Challenge code is verified:
                  description: Example when the challenge code is verified.
                  value:
                    data: null
        '400':
          description: There was a problem with the request and it could not be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Domain configuration does not allow agents to use the new reset password flow:
                  description: Example when the domain configuration does not allow
                    agents to use the new reset password flow. Check the UseNewResetPasswordFlow
                    property in /resources/Domains.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:UseOldResetPasswordFlow
                      message: Current carrier settings for your domain EXT do not
                        allow agents to reset their own password.
                      type: Error
                      details:
                        errorNumber: '1667'
                        sessionException: UseOldResetPasswordFlow
                      rawMessage: Current carrier settings for your domain EXT do
                        not allow agents to reset their own password.
                      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
                Agent does not exist:
                  description: Example when the agent does not exist.
                  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 EXT/agent.
                      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
                Agent exceeded maximum allowed attempts in the reset password flow:
                  description: Example when the agent exceeded maximum allowed attempts
                    in the reset password flow.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:RateLimited
                      message: The agent (EXT/agent) has exceeded challenge code,
                        and contact method match attempts in the password reset flow.
                      type: Error
                      details:
                        errorNumber: '1622'
                        sessionException: PasswordResetDisabled
                      rawMessage: The agent (EXT/agent) has exceeded challenge code,
                        and contact method match attempts in the password reset flow.
                      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
                Agent attempts the reset password flow after exceeding the maximum allowed attempts:
                  description: Example when the agent attempts the reset password
                    flow after exceeding the maximum allowed attempts.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:RateLimited
                      message: The agent (EXT/agent) attempted a password reset step
                        while the password reset flow was disabled.
                      type: Error
                      details:
                        errorNumber: '1650'
                        sessionException: AttemptWhilePasswordResetDisabled
                      rawMessage: The agent (EXT/agent) attempted a password reset
                        step while the password reset flow was disabled.
                      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
                Challenge code is invalid or expired:
                  description: Example when the challenge code is invalid or expired.
                  value:
                    errors:
                    - id: null
                      code: nsk-server:Credentials:Failed
                      message: nsk-server:Credentials:Failed
                      type: Error
                      details: null
                      rawMessage: Challenge code entered does not match for agent
                        or is expired (EXT/agent).
                      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: Authorization Not Allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Authentication token is missing or invalid:
                  description: Example when the authentication token is missing or
                    invalid.
                  value: null
  /api/nsk/v3/account/password/change:
    post:
      tags:
      - account
      summary: Changes the accounts password.
      description: 'This endpoint is recommended for a user who has an expired password.

        This endpoint is restricted to the anonymous user only

        and remains as the anonymous user even if the change password operation completed.

        For changing the password of a logged-in user, please use /api/nsk/v3/user/password/change.

        This follows domain level restrictions and could result in a failed change
        if there is a minimum time

        requirement between password changes, invalid password length, or invalid
        character.


        GraphQL endpoint: accountPasswordChangev3'
      operationId: nsk_v3_account_password_change_post
      requestBody:
        x-name: request
        description: The change password request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountChangePasswordRequestv2'
            examples:
              Request with username:
                description: Validates the provided credentials then updates that
                  user's password with the provided new one.
                value:
                  credentials:
                    username: agentUsername123
                    alternateIdentifier: null
                    password: OldPassword123!
                    domain: WWW
                    location: WWW
                    loginRole: WWWA
                  newPassword: NewPassword123!
              Request with alternate ID:
                description: Functionally the same, but uses alternate IDs such as
                  customer number.
                value:
                  credentials:
                    username: null
                    alternateIdentifier: '12345678'
                    password: OldPassword123!
                    domain: WWW
                    location: WWW
                    loginRole: WWWA
                  newPassword: NewPassword123!
        required: true
        x-position: 1
      responses:
        '201':
          description: The item was created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
        '400':
          description: There was a problem with the request and it could not be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
              examples:
                Error response for incorrect domain, username, or password.:
                  description: Only returns raw message in debug mode.
                  value:
                    errors:
                    - id: null
                      code: nsk:PasswordChange:Failed
                      message: null
                      type: Error
                      details: null
                      rawMessage: 'nsk-server:AgentAuthentication: The agent (WWW/ABC123)
                        was not authenticated'
                      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
                Error response for a locked account.:
                  description: Only returns raw message in debug mode.
                  value:
                    errors:
                    - id: null
                      code: nsk:PasswordChange:Failed
                      message: null
                      type: Error
                      details: null
                      rawMessage: 'nsk-server:AgentLocked: The agent (WWW/ABC123)
                        is locked.'
                      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
                Error response for minimum password time.:
                  description: Only returns raw message in debug mode. Minimum time
                    is determined by domain configuration.
                  value:
                    errors:
                    - id: null
                      code: nsk:PasswordChange:Failed
                      message: null
                      type: Error
                      details: null
                      rawMessage: 'nsk-server:PasswordMinimumTime: The agent (WWW/ABC123)
                        cannot change their password before the Minimum Time is up.'
                      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
                Error response for password policy violation.:
                  description: Only returns raw message in debug mode. Password policy
                    is configurable and determined by the domain.
                  value:
                    errors:
                    - id: null
                      code: nsk:PasswordC

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