TUI Group Persons API

The persons API from TUI Group — 41 operation(s) for persons.

Operations 96

POST /api/nsk/v1/persons Creates a new person record (used by agents). #
GET /api/nsk/v2/persons Search person records. #
GET /api/nsk/v1/persons/{personKey} Retrieves a specific person by key. #
PUT /api/nsk/v1/persons/{personKey} Updates the person record basic information. #
PATCH /api/nsk/v1/persons/{personKey} Patches the person record basic information. #
DELETE /api/nsk/v1/persons/{personKey} Deletes a person by setting the record to terminated. #
GET /api/nsk/v1/persons/{personKey}/account Retrieves the person account and credits based on the person key. #
POST /api/nsk/v1/persons/{personKey}/account Creates the person account based on the person key and data in the request. #
POST /api/nsk/v1/persons/{personKey}/account/collection Creates an account collection based on the person key and data in the request. #
GET /api/nsk/v1/persons/{personKey}/account/collection/{accountCollectionKey}/transactions Retrieves the person account collection transactions based on the person key, the account collection key, and data in the request. #
POST /api/nsk/v1/persons/{personKey}/account/collection/{accountCollectionKey}/transactions Creates an account collection transaction based on the person key, the account collection key, and data in the request. #
GET /api/nsk/v2/persons/{personKey}/account/collection/{accountCollectionKey}/transactions Retrieves the person account collection transactions based on the person key, the account collection key, and data in the request. #
PUT /api/nsk/v1/persons/{personKey}/account/status Updates the person account status. #
GET /api/nsk/v1/persons/{personKey}/account/transactions Retrieves all transactions for every collection. #
GET /api/nsk/v2/persons/{personKey}/account/transactions Retrieves all persons account transactions. #
GET /api/nsk/v1/persons/{personKey}/addresses Gets the collection of addresses for a specific person. #
POST /api/nsk/v1/persons/{personKey}/addresses Creates a new address for a specific person. #
GET /api/nsk/v1/persons/{personKey}/addresses/{personAddressKey} Gets a specific address for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/addresses/{personAddressKey} Updates a specific address for a specific person. #
PATCH /api/nsk/v1/persons/{personKey}/addresses/{personAddressKey} Patches a specific address for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/addresses/{personAddressKey} Deletes a specific address for a specific person. #
GET /api/nsk/v1/persons/{personKey}/affiliations Gets all affiliations for a specific person. #
POST /api/nsk/v1/persons/{personKey}/affiliations Creates a new affiliation for a specific person. #
GET /api/nsk/v1/persons/{personKey}/affiliations/{personAffiliationKey} Gets a specific affiliation for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/affiliations/{personAffiliationKey} Updates a specific affiliation for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/affiliations/{personAffiliationKey} Deletes a specific affiliation for a specific person. #
GET /api/nsk/v1/persons/{personKey}/aliases Gets the collection of aliases for a specific person. #
POST /api/nsk/v1/persons/{personKey}/aliases Creates a new alias for a specific person. #
GET /api/nsk/v1/persons/{personKey}/aliases/{personAliasKey} Gets a specific alias for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/aliases/{personAliasKey} Updates a specific alias for a specific person. #
PATCH /api/nsk/v1/persons/{personKey}/aliases/{personAliasKey} Patches a specific alias for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/aliases/{personAliasKey} Deletes a specific alias for a specific person. #
GET /api/nsk/v1/persons/{personKey}/comments Gets the collection of comments for a specific person. #
POST /api/nsk/v1/persons/{personKey}/comments Creates a new comment for a specific person. #
GET /api/nsk/v1/persons/{personKey}/comments/{personCommentKey} Gets a specific comment for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/comments/{personCommentKey} Updates a specific comment for a specific person. #
PATCH /api/nsk/v1/persons/{personKey}/comments/{personCommentKey} Patches a specific comment for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/comments/{personCommentKey} Deletes a specific comment for a specific person. #
GET /api/nsk/v1/persons/{personKey}/emails Gets the collection of email addresses for a specific person. #
POST /api/nsk/v1/persons/{personKey}/emails Creates a new email address for a specific person. #
GET /api/nsk/v1/persons/{personKey}/emails/{personEmailAddressKey} Gets a specific email address for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/emails/{personEmailAddressKey} Updates a specific email address for a specific person. #
PATCH /api/nsk/v1/persons/{personKey}/emails/{personEmailAddressKey} Patches a specific email address for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/emails/{personEmailAddressKey} Deletes a specific email address for a specific person. #
GET /api/nsk/v1/persons/{personKey}/information Gets all information for a specific person. #
POST /api/nsk/v1/persons/{personKey}/information Creates new information for a specific person. #
GET /api/nsk/v1/persons/{personKey}/information/{personInformationKey} Gets specific information for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/information/{personInformationKey} Updates specific information for a specific person. #
PATCH /api/nsk/v1/persons/{personKey}/information/{personInformationKey} Patches specific information for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/information/{personInformationKey} Deletes specific information for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/merge Updates a person by merging the PNRs associated, account information and optionally the customer programs. #
GET /api/nsk/v1/persons/{personKey}/phoneNumbers Gets the collection of phone numbers for a specific person. #
POST /api/nsk/v1/persons/{personKey}/phoneNumbers Creates a new phone number for a specific person. #
GET /api/nsk/v1/persons/{personKey}/phoneNumbers/{personPhoneNumberKey} Gets a specific phone number for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/phoneNumbers/{personPhoneNumberKey} Updates a specific phone number for a specific person. #
PATCH /api/nsk/v1/persons/{personKey}/phoneNumbers/{personPhoneNumberKey} Patches a specific phone number for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/phoneNumbers/{personPhoneNumberKey} Deletes a specific phone number for a specific person. #
GET /api/nsk/v1/persons/{personKey}/preferences Gets all preferences for a specific person. #
POST /api/nsk/v1/persons/{personKey}/preferences Creates a new preference for a specific person. #
GET /api/nsk/v1/persons/{personKey}/preferences/{personPreferenceKey} Gets a specific preference for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/preferences/{personPreferenceKey} Updates a specific preference for a specific person. #
PATCH /api/nsk/v1/persons/{personKey}/preferences/{personPreferenceKey} Patches a specific preference for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/preferences/{personPreferenceKey} Deletes a specific preference for a specific person. #
GET /api/nsk/v1/persons/{personKey}/programs Gets the collection of programs for a specific person. #
POST /api/nsk/v1/persons/{personKey}/programs Creates a new program for a specific person. #
GET /api/nsk/v1/persons/{personKey}/programs/{personProgramKey} Gets a specific program for a specific person. #
PUT /api/nsk/v1/persons/{personKey}/programs/{personProgramKey} Updates a specific program for a specific person. #
PATCH /api/nsk/v1/persons/{personKey}/programs/{personProgramKey} Patches a specific program for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/programs/{personProgramKey} Deletes a specific program for a specific person. #
GET /api/nsk/v1/persons/{personKey}/storedPayments Gets the collection of stored payments for a specific person. #
POST /api/nsk/v1/persons/{personKey}/storedPayments Creates a new stored payment for a specific person. #
GET /api/nsk/v1/persons/{personKey}/storedPayments/{personStoredPaymentKey} Gets a specific stored payment for a specific person. #
PATCH /api/nsk/v1/persons/{personKey}/storedPayments/{personStoredPaymentKey} Patches a specific stored payment for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/storedPayments/{personStoredPaymentKey} Deletes a specific stored payment for a specific person. #
PUT /api/nsk/v2/persons/{personKey}/storedPayments/{personStoredPaymentKey} Updates a specific stored payment for a specific person. #
GET /api/nsk/v1/persons/{personKey}/travelDocuments Gets the collection of travel documents for a specific person. #
POST /api/nsk/v1/persons/{personKey}/travelDocuments Creates a new travel document for a specific person. Note: Gender and Date of Birth on the Travel Document will overwrite the values on the related person object. This is by design #
GET /api/nsk/v1/persons/{personKey}/travelDocuments/{personTravelDocumentKey} Gets a specific travel document for a specific person. #
DELETE /api/nsk/v1/persons/{personKey}/travelDocuments/{personTravelDocumentKey} Deletes a specific travel document for a specific person. #
PUT /api/nsk/v2/persons/{personKey}/travelDocuments/{personTravelDocumentKey} Updates a specific travel document for a specific person. #
PATCH /api/nsk/v2/persons/{personKey}/travelDocuments/{personTravelDocumentKey} Patches a specific travel document for a specific person. #
GET /api/nsk/v1/persons/{personKey}/travelNotifications Gets person travel notifications for a person. #
POST /api/nsk/v1/persons/{personKey}/travelNotifications Creates a person travel notification for a person. #
GET /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey} Gets a person travel notification for a person. #
PUT /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey} Updates a person travel notification for a person. #
PATCH /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey} Patches a person travel notification for a person. #
DELETE /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey} Deletes a person travel notification for a person. #
GET /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey}/events Gets notification events for a person travel notification for a person. #
POST /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey}/events Creates a notification event for a person travel notification for a person. #
GET /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey}/events/{eventType} Gets a notification event for a person travel notification for a person. #
DELETE /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey}/events/{eventType} Deletes a notification event from a person travel notification for a person. #
GET /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey}/timedEvents Gets notification timed events for a person travel notification for a person. #
POST /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey}/timedEvents Creates a notification timed event for a person travel notification for a person. #
GET /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey}/timedEvents/{timedEventType} Gets a notification timed event for a person travel notification for a person. #
PUT /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey}/timedEvents/{timedEventType} Updates a notification timed event for a person travel notification for a person. #
DELETE /api/nsk/v1/persons/{personKey}/travelNotifications/{travelNotificationKey}/timedEvents/{timedEventType} Deletes a notification timed event from a person travel notification for a person. #

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-persons-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-persons-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NewSkies-Digital-Api Persons 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
security:
- JWT: []
tags:
- name: persons
paths:
  /api/nsk/v1/persons:
    post:
      tags:
      - persons
      summary: Creates a new person record (used by agents).
      description: 'This endpoint requires agent permissions.


        GraphQL endpoint: personAdd'
      operationId: nsk_v1_persons_post
      requestBody:
        x-name: request
        description: The person create request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PersonCreateRequest'
        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'
        '403':
          description: Role permissions are not met.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
  /api/nsk/v2/persons:
    get:
      tags:
      - persons
      summary: Search person records.
      description: 'GraphQL endpoint: personSearchv2'
      operationId: nsk_v2_persons_get
      parameters:
      - name: LastIndex
        in: query
        description: "The index of the last paged item.  This can be found on the\nresponse from the previous set of paged results.\n            "
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 1
      - name: Username
        in: query
        description: "The person user name to search by.\n            "
        schema:
          type:
          - string
          - 'null'
        x-position: 2
      - name: FirstName
        in: query
        description: "The person's first name to search by.\n            "
        schema:
          type:
          - string
          - 'null'
        x-position: 3
      - name: LastName
        in: query
        description: "The person's last name to search by.\n            "
        schema:
          type:
          - string
          - 'null'
        x-position: 4
      - name: FirstNameMatching
        in: query
        description: "The matching criteria for the person's first name.\n             \nEnumeration values: 0 = StartsWith, 1 = EndsWith, 2 = Contains, 3 = ExactMatch"
        schema:
          $ref: '#/components/schemas/MatchCriteria'
        x-position: 5
      - name: CustomerNumber
        in: query
        description: "The person's customer number.\n            "
        schema:
          type:
          - string
          - 'null'
        x-position: 6
      - name: PhoneNumber
        in: query
        description: "The phone number to search by.\n            "
        schema:
          type:
          - string
          - 'null'
        x-position: 7
      - name: EmailAddress
        in: query
        description: "The email address to search by.\n            "
        schema:
          type:
          - string
          - 'null'
        x-position: 8
      - name: ProgramNumber
        in: query
        description: "The program number to search by.\n            "
        schema:
          type:
          - string
          - 'null'
        x-position: 9
      - name: ProgramCode
        in: query
        description: "The program code to search by.\n            "
        schema:
          type:
          - string
          - 'null'
        x-position: 10
      - name: Type
        in: query
        description: "The person type to search by.\n             \nEnumeration values: 0 = None, 1 = Customer, 2 = Agent"
        schema:
          $ref: '#/components/schemas/PersonType'
        x-position: 11
      - name: NationalIdNumber
        in: query
        description: "The national ID number to search by.\n            "
        schema:
          type:
          - string
          - 'null'
        x-position: 12
      - name: NationalIdNumberMatching
        in: query
        description: "The matching criteria for the national ID number.\n             \nEnumeration values: 0 = StartsWith, 1 = EndsWith, 2 = Contains, 3 = ExactMatch"
        schema:
          $ref: '#/components/schemas/MatchCriteria'
        x-position: 13
      - name: ReturnCount
        in: query
        description: "The number of results to return.\n            "
        schema:
          type:
          - integer
          - 'null'
        x-position: 14
      - name: ActiveOnly
        in: query
        description: "Include active person records only.\n            "
        schema:
          type: boolean
        x-position: 15
      responses:
        '404':
          description: The item was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfPersonRecordsResponse'
  /api/nsk/v1/persons/{personKey}:
    get:
      tags:
      - persons
      summary: Retrieves a specific person by key.
      description: 'GraphQL endpoint: person'
      operationId: nsk_v1_persons_personKey_get
      parameters:
      - name: personKey
        in: path
        required: true
        description: The unique person key.
        schema:
          type: string
        x-position: 1
      responses:
        '404':
          description: The item was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfPerson'
    put:
      tags:
      - persons
      summary: Updates the person record basic information.
      description: 'GraphQL endpoint: personSet'
      operationId: nsk_v1_persons_personKey_put
      parameters:
      - name: personKey
        in: path
        required: true
        description: The unique person key.
        schema:
          type: string
        x-position: 1
      requestBody:
        x-name: request
        description: The person edit request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PersonEditRequest'
            examples:
              Person Edit Request:
                description: Example request for updating person's basic information.
                value:
                  name:
                    first: John
                    middle: Cee
                    last: Doe
                    title: Mr.
                    suffix: null
                  type: 1
                  status: 0
                  details:
                    gender: 1
                    dateOfBirth: '2006-07-09T05:55:16.0597472+00:00'
                    nationality: US
                    residentCountry: US
                    passengerType: ADT
                    preferredCultureCode: en-US
                    preferredCurrencyCode: USD
                    nationalIdNumber: null
                    declaredGender: null
                  notificationPreference: 0
        required: true
        x-position: 2
      responses:
        '200':
          description: OK. Request completed 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:
                With Invalid Person Key:
                  description: The person key is not valid or does not exist.
                  value:
                    errors:
                    - id: null
                      code: nsk:Exceptions:InvalidKey
                      message: The identifier 'personKey' with value 'MTW' is invalid.
                      type: Validation
                      details:
                        personKey: MTW
                      rawMessage: The identifier 'personKey' with value 'MTW' 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.
                With Invalid Preferred Culture Code:
                  description: The provided culture code in the request is an invalid culture identifier.
                  value:
                    errors:
                    - id: null
                      code: nsk:Person:InvalidPreferredCulture
                      message: nsk:Person:InvalidPreferredCulture
                      type: Validation
                      details: null
                      rawMessage: The preferred culture code 'ZZZ' 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.
                With Invalid Preferred Currency Code:
                  description: The provided currency code in the request is not valid or does not exist.
                  value:
                    errors:
                    - id: null
                      code: nsk:Person:InvalidPreferredCurrency
                      message: nsk:Person:InvalidPreferredCurrency
                      type: Validation
                      details: null
                      rawMessage: The preferred currency code 'ZZZ' 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.
                With Invalid First Name:
                  description: The provided first name in the request starts with a numerical or special character.
                  value:
                    errors:
                    - id: null
                      code: nsk:Validation:InvalidFirstNameCharacters
                      message: 'A first name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>0123456789.'
                      type: Validation
                      details: null
                      rawMessage: 'A first name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>0123456789.'
                      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.
                With Invalid Middle Name:
                  description: The provided middle name in the request starts with a special character.
                  value:
                    errors:
                    - id: null
                      code: nsk:Validation:InvalidMiddleNameCharacters
                      message: 'A middle name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>.'
                      type: Validation
                      details: null
                      rawMessage: 'A middle name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>.'
                      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.
                With Invalid Last Name:
                  description: The provided last name in the request starts with a numerical or special character.
                  value:
                    errors:
                    - id: null
                      code: nsk:Validation:InvalidLastNameCharacters
                      message: 'A last name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>0123456789.'
                      type: Validation
                      details: null
                      rawMessage: 'A last name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>0123456789.'
                      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.
                Update Status Not Allowed:
                  description: The logged-in user is not allowed to update the person's status.
                  value:
                    errors:
                    - id: null
                      code: nsk:Person:StatusUpdateNotAllowed
                      message: nsk:Person:StatusUpdateNotAllowed
                      type: Validation
                      details: null
                      rawMessage: The logged-in user is not allowed to update their status.
                      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.
                Update Type Not Allowed:
                  description: The logged-in user is not allowed to update the person's type.
                  value:
                    errors:
                    - id: null
                      code: nsk:Person:TypeUpdateNotAllowed
                      message: nsk:Person:TypeUpdateNotAllowed
                      type: Validation
                      details: null
                      rawMessage: The logged-in user is not allowed to update their type.
                      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.
        '401':
          description: Authorization Not Allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
        '500':
          description: A server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
    patch:
      tags:
      - persons
      summary: Patches the person record basic information.
      description: 'Only need to send in the data that is being requested to be updated.


        GraphQL endpoint: personModify'
      operationId: nsk_v1_persons_personKey_patch
      parameters:
      - name: personKey
        in: path
        required: true
        description: The unique person key.
        schema:
          type: string
        x-position: 1
      requestBody:
        x-name: request
        description: The person patch request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeltaMapperOfPersonEditRequest'
            examples:
              Person Edit Request:
                description: Example request for updating person's basic information.
                value:
                  name:
                    first: John
                    middle: Cee
                    last: Doe
                    title: Mr.
                    suffix: null
                  type: 1
                  status: 0
                  details:
                    gender: 1
                    dateOfBirth: '2006-07-09T05:55:16.06105+00:00'
                    nationality: US
                    residentCountry: US
                    passengerType: ADT
                    preferredCultureCode: en-US
                    preferredCurrencyCode: USD
                    nationalIdNumber: null
                    declaredGender: null
                  notificationPreference: 0
        required: true
        x-position: 2
      responses:
        '200':
          description: OK. Request completed 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:
                With Invalid Person Key:
                  description: The person key is not valid or does not exist.
                  value:
                    errors:
                    - id: null
                      code: nsk:Exceptions:InvalidKey
                      message: The identifier 'personKey' with value 'MTW' is invalid.
                      type: Validation
                      details:
                        personKey: MTW
                      rawMessage: The identifier 'personKey' with value 'MTW' 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.
                With Invalid Preferred Culture Code:
                  description: The provided culture code in the request is an invalid culture identifier.
                  value:
                    errors:
                    - id: null
                      code: nsk:Person:InvalidPreferredCulture
                      message: nsk:Person:InvalidPreferredCulture
                      type: Validation
                      details: null
                      rawMessage: The preferred culture code 'ZZZ' 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.
                With Invalid Preferred Currency Code:
                  description: The provided currency code in the request is not valid or does not exist.
                  value:
                    errors:
                    - id: null
                      code: nsk:Person:InvalidPreferredCurrency
                      message: nsk:Person:InvalidPreferredCurrency
                      type: Validation
                      details: null
                      rawMessage: The preferred currency code 'ZZZ' 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.
                With Invalid First Name:
                  description: The provided first name in the request starts with a numerical or special character.
                  value:
                    errors:
                    - id: null
                      code: nsk:Validation:InvalidFirstNameCharacters
                      message: 'A first name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>0123456789.'
                      type: Validation
                      details: null
                      rawMessage: 'A first name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>0123456789.'
                      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.
                With Invalid Middle Name:
                  description: The provided middle name in the request starts with a special character.
                  value:
                    errors:
                    - id: null
                      code: nsk:Validation:InvalidMiddleNameCharacters
                      message: 'A middle name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>.'
                      type: Validation
                      details: null
                      rawMessage: 'A middle name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>.'
                      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.
                With Invalid Last Name:
                  description: The provided last name in the request starts with a numerical or special character.
                  value:
                    errors:
                    - id: null
                      code: nsk:Validation:InvalidLastNameCharacters
                      message: 'A last name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>0123456789.'
                      type: Validation
                      details: null
                      rawMessage: 'A last name may not begin with any of these characters: :@#$%&_+*-=~^`“"''‘,.:;!?|/\(){}[]<>0123456789.'
                      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.
                Update Status Not Allowed:
                  description: The logged-in user is not allowed to update the person's status.
                  value:
                    errors:
                    - id: null
                      code: nsk:Person:StatusUpdateNotAllowed
                      message: nsk:Person:StatusUpdateNotAllowed
                      type: Validation
                      details: null
                      rawMessage: The logged-in user is not allowed to update their status.
                      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.
                Update Type Not Allowed:
                  description: The logged-in user is not allowed to update the person's type.
                  value:
                    errors:
                    - id: null
                      code: nsk:Person:TypeUpdateNotAllowed
                      message: nsk:Person:TypeUpdateNotAllowed
                      type: Validation
                      details: null
                      rawMessage: The logged-in user is not allowed to update their type.
                      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.
                With Null Request:
                  description: Example response when attempting to call the endpoint with a null request
                  value:
                    errors:
                    - id: null
                      code: core:Validation:NullRequest
                      message: The request is null or couldn't be converted to the expected data type.
                      type: Error
                      details: null
                      rawMessage: The request is null or couldn't be converted to the expected data type.
                      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.
        '401':
          description: Authorization Not Allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
        '500':
          description: A server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
    delete:
      tags:
      - persons
      summary: Deletes a person by setting the record to terminated.
      description: 'This endpoint requires agent permissions.


        GraphQL endpoint: personDelete'
      operationId: nsk_v1_persons_personKey_delete
      parameters:
      - name: personKey
        in: path
        required: true
        description: The unique person key.
        schema:
          type: string
        x-position: 1
      responses:
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
  /api/nsk/v1/persons/{personKey}/account:
    get:
      tags:
      - persons
      summary: Retrieves the person account and credits based on the person key.
      description: 'If the currency code is not provided it will default to the currency code associated to the account.


        GraphQL endpoint: personsAccount'
      operationId: nsk_v1_persons_personKey_account_get
      parameters:
      - name: personKey
        in: path
        required: true
        description: The person key.
        schema:
          type: string
        x-position: 1
      - name: currencyCode
        in: query
        description: The currency code. This is optional.
        schema:
          type:
          - string
          - 'null'
        x-position: 2
      responses:
        '404':
          description: The item was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponse'
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfAccount'
    post:
      tags:
      - persons
      summary: 'Creates the person account based on the person key and

        data in the request.'
      description: 'GraphQL endpoint: personsAccountAdd'
      operationId: nsk_v1_persons_personKey_account_post
      parameters:
      - name: personKey
        in: path
        required: true
        description: The person key.
        schema:
          type: string
        x-position: 1
      requestBody:
        x-name: request
        description: The create account request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAccountRequest'
        required: true
        x-position: 2
      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'
  /api/nsk/v1/persons/{personKey}/account/collection:
    post:
      tags:
      - persons
      summary: Creates an account collection based on the person key and data in the request.
      description: 'This endpoint will create a new account collection and a transaction if no account

        transaction exists or no matching collection is found.  An account collection is unique

        based on the transaction code and the expiration date.  If a matching account collection

        is found, a transaction for that collection is generated and the account collection will

        be updated.

        See /api/nsk/v1/resources/accountTransactionCodes for a list of available account transaction

        codes.


        GraphQL endpoint: personsAccountCollectionsAdd'
      operationId: nsk_v1_persons_personKey_account_collection_post
      parameters:
      - name: personKey
        in: path
        required: true
        description: The person key.
        schema:
          type: string
        x-position: 1
      requestBody:
        x-name: request
        description: The create account collection request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountCollectionRequest'
        required: true
        x-position: 2
      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'
  /api/nsk/v1/persons/{personKey}/account/collection/{accountCollectionKey}/transactions:
    get:
      tags:
      - persons
      summary: 'Retrieves the person account collection transactions based on the person key,

        the account collection key, and data in the request.'
      description: 'GraphQL endpoint: personsAccountTransactions'
      operationId: nsk_v1_persons_personKey_account_collection_accountCollectionKey_transactions_get
      parameters:
      - name: personKey
        in: path
        required: true
        description: The person key.
        schema:
          type: string
        x-position: 1
      - name: accountCollectionKey
        in: path
        required: true
        description: The account collection key.
        schema:
          type: string
        x-position: 2
      - name: StartTime
        in: query
        description: "The starting date and time of the date range to search in.\n            "
        schema:
          type:
          - string
          - 'null'
          format: date-time
        x-position: 3
      - name: EndTime
        in: query
        description: "The end date and time of the date range to search in.\n            "
        schema:
          type:
          - string
          - 'null'
          format: date-time
        x-position: 4
      - name: SortByNewest
        in: query
        description: "Optional filter to sort results by newest.\n            "
        schema:
          type: boolean
        x-position: 5
      - name: PageSize
        in: query
        description: "Used to specify the number of records to return.\n            "
        schema:
          type:
          - integer
          - 'null'
          maximum: 5000.0
          minimum: 10.0
        x-position: 6
      - name: PageIndex
        in: query
        description: "Represents the index of the requested paged item.\n            "
        schema:
          type:
          - integer
          - 'null'
          format: int64
        x-position: 7
      responses:
        '200':
          description: OK. Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IJsonResponseOfIListOfTransaction'
              examples:
                Retrieve Transactions Response:
                  description: Example response for retrieving transactions.
                  value:
                    data:
                    - accountTransactionCode: null
                      recordLocator: null
                      accountReference: null
                      transactionKey: MSExITEwMjA4OCJsJNQxATUzMyEhUURRNUZ
                      amount: -2.42
                      createdDate: '2026-07-09T05:55:16.3678462Z'
   

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