> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spott.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk create client contacts

> Create up to 10 client contacts in one request. Each item carries its own clientId, so a single batch can target several clients. The batch is all-or-nothing: if any item is rejected, no client contacts are created and the batch must be retried in full. Results are returned in request order. This endpoint is rate limited to 50 requests per hour per tenant, and returns 429 once that limit is reached.



## OpenAPI

````yaml /api-reference/openapi.json post /clients/contacts/_bulk
openapi: 3.1.0
info:
  title: Spott API Reference
  version: '0.1'
servers:
  - url: https://api.gospott.com
security: []
tags: []
paths:
  /clients/contacts/_bulk:
    post:
      tags:
        - Client Contacts
      summary: Bulk create client contacts
      description: >-
        Create up to 10 client contacts in one request. Each item carries its
        own clientId, so a single batch can target several clients. The batch is
        all-or-nothing: if any item is rejected, no client contacts are created
        and the batch must be retried in full. Results are returned in request
        order. This endpoint is rate limited to 50 requests per hour per tenant,
        and returns 429 once that limit is reached.
      operationId: bulkCreateClientContacts
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkCreateClientContactsDto'
      responses:
        '201':
          description: >-
            Client contacts created successfully. Returns the client contact ID
            and the linked candidate ID of each item, in request order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkCreateClientContactsResponseDto'
        '400':
          description: >-
            Bad request - invalid client contact data on one of the items, an
            unknown custom attribute definition, or a candidate that is already
            an active contact at the referenced client
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '401':
          description: Unauthorized - invalid or missing authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '404':
          description: A client referenced by one of the items does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '409':
          description: >-
            A contact identifier on one of the items is already in use by
            another candidate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '412':
          description: >-
            The tenant's client pipeline strategy conflicts with the stageId on
            one of the items: stageId must be omitted when the strategy is
            'client', and is required when it is 'clientContact'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '429':
          description: Too many requests - rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '500':
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
      security:
        - x-api-key: []
components:
  schemas:
    BulkCreateClientContactsDto:
      type: object
      properties:
        items:
          minItems: 1
          maxItems: 10
          type: array
          items:
            $ref: '#/components/schemas/BulkCreateClientContactDto'
      required:
        - items
      id: PrivateBulkCreateClientContactsDto
    BulkCreateClientContactsResponseDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/CreateClientContactResponseDto'
      required:
        - items
      id: PrivateBulkCreateClientContactsResponseDto
    ExceptionBaseDto:
      type: object
      properties:
        status:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        message:
          type: string
        requestId:
          type: string
      required:
        - status
        - message
        - requestId
      id: ExceptionBaseDto
    BulkCreateClientContactDto:
      type: object
      properties:
        firstName:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^(?=.*\p{L})[\p{L}\p{M} '’.-]+$
        lastName:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^(?=.*\p{L})[\p{L}\p{M} '’.-]+$
        gender:
          anyOf:
            - type: string
              enum:
                - male
                - female
                - x
            - type: 'null'
        nationality:
          type: array
          items:
            $ref: '#/components/schemas/DmCandidateNationality'
        status:
          type: array
          items:
            type: string
            enum:
              - actively_looking
              - approachable_but_not_actively_looking
              - do_not_contact
              - do_not_poach
              - not_actively_looking
        emails:
          type: array
          items:
            $ref: '#/components/schemas/CreateClientContactEmailDto'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/CreateClientContactPhoneNumberDto'
        locations:
          type: array
          items:
            $ref: '#/components/schemas/LocationInputDto'
        dateOfBirth:
          anyOf:
            - $ref: '#/components/schemas/DateISO'
            - type: 'null'
        socialMedia:
          type: array
          items:
            type: object
            properties:
              url:
                format: uri
                type: string
              type:
                type: string
                enum:
                  - LINKEDIN
                  - TWITTER
                  - FACEBOOK
                  - INSTAGRAM
              isPrimary:
                type: boolean
            required:
              - url
              - type
        education:
          type: array
          items:
            $ref: '#/components/schemas/CreateCandidateEducationDto'
        workExperiences:
          type: array
          items:
            $ref: '#/components/schemas/CreateCandidateWorkExperienceDto'
        customAttributes:
          maxItems: 100
          type: array
          items:
            $ref: '#/components/schemas/UpdateAttributeValueDto'
        languages:
          type: array
          items:
            $ref: '#/components/schemas/LanguageDto'
        compensation:
          anyOf:
            - $ref: '#/components/schemas/CompensationDto'
            - type: 'null'
        role:
          type: string
        department:
          type: string
        startDate:
          $ref: '#/components/schemas/DateISO'
        endDate:
          $ref: '#/components/schemas/DateISO'
        stageId:
          type: string
        keepShowingAsCandidate:
          type: boolean
        clientId:
          type: string
          minLength: 1
      required:
        - firstName
        - lastName
        - clientId
      id: PrivateBulkCreateClientContactDto
    CreateClientContactResponseDto:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          description: ID of the client contact record
        candidateId:
          type: string
          minLength: 1
          description: ID of the linked candidate record
      required:
        - id
        - candidateId
      id: PrivateCreateClientContactResponseDto
    DmCandidateNationality:
      type: string
      enum:
        - Afghan
        - Albanian
        - Algerian
        - American
        - Andorran
        - Angolan
        - Antiguan
        - Argentinean
        - Armenian
        - Australian
        - Austrian
        - Azerbaijani
        - Bahamian
        - Bahraini
        - Bangladeshi
        - Barbadian
        - Barbudan
        - Batswana
        - Belarusian
        - Belgian
        - Belizean
        - Beninese
        - Bhutanese
        - Bolivian
        - Bosnian
        - Brazilian
        - British
        - Bruneian
        - Bulgarian
        - Burkinabe
        - Burmese
        - Burundian
        - Cambodian
        - Cameroonian
        - Canadian
        - Cape Verdean
        - Central African
        - Chadian
        - Chilean
        - Chinese
        - Colombian
        - Comoran
        - Congolese
        - Costa Rican
        - Croatian
        - Cuban
        - Cypriot
        - Czech
        - Danish
        - Djibouti
        - Dominican
        - Dutch
        - East Timorese
        - Ecuadorean
        - Egyptian
        - Emirian
        - Equatorial Guinean
        - Eritrean
        - Estonian
        - Ethiopian
        - Fijian
        - Filipino
        - Finnish
        - French
        - Gabonese
        - Gambian
        - Georgian
        - German
        - Ghanaian
        - Greek
        - Grenadian
        - Guatemalan
        - Guinea-Bissauan
        - Guinean
        - Guyanese
        - Haitian
        - Herzegovinian
        - Honduran
        - Hungarian
        - I-Kiribati
        - Icelander
        - Indian
        - Indonesian
        - Iranian
        - Iraqi
        - Irish
        - Israeli
        - Italian
        - Ivorian
        - Jamaican
        - Japanese
        - Jordanian
        - Kazakhstani
        - Kenyan
        - Kittian and Nevisian
        - Kosovar
        - Kuwaiti
        - Kyrgyz
        - Laotian
        - Latvian
        - Lebanese
        - Liberian
        - Libyan
        - Liechtensteiner
        - Lithuanian
        - Luxembourger
        - Macedonian
        - Malagasy
        - Malawian
        - Malaysian
        - Maldivian
        - Malian
        - Maltese
        - Marshallese
        - Mauritanian
        - Mauritian
        - Mexican
        - Micronesian
        - Moldovan
        - Monacan
        - Mongolian
        - Moroccan
        - Mosotho
        - Motswana
        - Mozambican
        - Namibian
        - Nauruan
        - Nepalese
        - New Zealander
        - Ni-Vanuatu
        - Nicaraguan
        - Nigerian
        - Nigerien
        - North Korean
        - Northern Irish
        - Norwegian
        - Omani
        - Pakistani
        - Palauan
        - Panamanian
        - Papua New Guinean
        - Paraguayan
        - Peruvian
        - Polish
        - Portuguese
        - Qatari
        - Romanian
        - Russian
        - Rwandan
        - Saint Lucian
        - Salvadoran
        - Samoan
        - San Marinese
        - Sao Tomean
        - Saudi
        - Scottish
        - Senegalese
        - Serbian
        - Seychellois
        - Sierra Leonean
        - Singaporean
        - Slovakian
        - Slovenian
        - Solomon Islander
        - Somali
        - South African
        - South Korean
        - Spanish
        - Sri Lankan
        - Sudanese
        - Surinamer
        - Swazi
        - Swedish
        - Swiss
        - Syrian
        - Taiwanese
        - Tajik
        - Tanzanian
        - Thai
        - Togolese
        - Tongan
        - Trinidadian or Tobagonian
        - Tunisian
        - Turkish
        - Turkmenistani
        - Tuvaluan
        - Ugandan
        - Ukrainian
        - Uruguayan
        - Uzbekistani
        - Venezuelan
        - Vietnamese
        - Welsh
        - Yemenite
        - Zambian
        - Zimbabwean
      id: DmCandidateNationality
    CreateClientContactEmailDto:
      type: object
      properties:
        email:
          type: string
          format: email
          pattern: >-
            ^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
        purpose:
          anyOf:
            - type: string
              enum:
                - personal
                - work
            - type: 'null'
        isPrimary:
          type: boolean
      required:
        - email
        - purpose
      id: PrivateCreateClientContactEmailDto
    CreateClientContactPhoneNumberDto:
      type: object
      properties:
        phoneNumber:
          $ref: '#/components/schemas/PhoneNumber'
        purpose:
          anyOf:
            - type: string
              enum:
                - personal
                - work
            - type: 'null'
        isPrimary:
          type: boolean
      required:
        - phoneNumber
        - purpose
      id: PrivateCreateClientContactPhoneNumberDto
    LocationInputDto:
      type: object
      properties:
        street1:
          anyOf:
            - type: string
            - type: 'null'
        street2:
          anyOf:
            - type: string
            - type: 'null'
        postalCode:
          anyOf:
            - type: string
            - type: 'null'
        city:
          anyOf:
            - type: string
            - type: 'null'
        region:
          anyOf:
            - type: string
            - type: 'null'
        state:
          anyOf:
            - type: string
            - type: 'null'
        country:
          deprecated: true
          description: >-
            Deprecated: use `countryCode` instead. When omitted, the country
            name is derived from `countryCode`.
          anyOf:
            - type: string
            - type: 'null'
        countryCode:
          anyOf:
            - $ref: '#/components/schemas/CountryCode'
            - type: 'null'
        latitude:
          anyOf:
            - type: number
              minimum: -90
              maximum: 90
            - type: 'null'
        longitude:
          anyOf:
            - type: number
              minimum: -180
              maximum: 180
            - type: 'null'
        type:
          anyOf:
            - $ref: '#/components/schemas/LocationType'
            - type: 'null'
        rawCityCountry:
          deprecated: true
          description: >-
            Deprecated: this value is derived from the address fields and should
            not be sent.
          anyOf:
            - type: string
            - type: 'null'
        formattedAddress:
          deprecated: true
          description: >-
            Deprecated: this value is derived from the address fields and should
            not be sent.
          anyOf:
            - type: string
            - type: 'null'
      id: PrivateLocationInputDto
    DateISO:
      id: DateISO
      format: date-time
      anyOf:
        - type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        - type: string
          format: date
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
    CreateCandidateEducationDto:
      anyOf:
        - type: object
          properties:
            degree:
              anyOf:
                - type: string
                  enum:
                    - High School
                    - Certificate
                    - Diploma
                    - Associate
                    - Professional
                    - Vocational
                    - Bachelor
                    - Master
                    - Postgraduate Diploma
                    - MBA
                    - LLM
                    - PhD
                    - Postdoctoral
                - type: 'null'
            fieldOfStudy:
              anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
            grade:
              anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
            description:
              anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
            startDate:
              anyOf:
                - $ref: '#/components/schemas/DateISO'
                - type: 'null'
            endDate:
              anyOf:
                - $ref: '#/components/schemas/DateISO'
                - type: 'null'
            companyId:
              type: string
              minLength: 1
          required:
            - degree
            - fieldOfStudy
            - grade
            - description
            - startDate
            - endDate
            - companyId
        - type: object
          properties:
            degree:
              anyOf:
                - type: string
                  enum:
                    - High School
                    - Certificate
                    - Diploma
                    - Associate
                    - Professional
                    - Vocational
                    - Bachelor
                    - Master
                    - Postgraduate Diploma
                    - MBA
                    - LLM
                    - PhD
                    - Postdoctoral
                - type: 'null'
            fieldOfStudy:
              anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
            grade:
              anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
            description:
              anyOf:
                - type: string
                  minLength: 1
                - type: 'null'
            startDate:
              anyOf:
                - $ref: '#/components/schemas/DateISO'
                - type: 'null'
            endDate:
              anyOf:
                - $ref: '#/components/schemas/DateISO'
                - type: 'null'
            company:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
              required:
                - name
          required:
            - degree
            - fieldOfStudy
            - grade
            - description
            - startDate
            - endDate
            - company
      id: PrivateCreateCandidateEducationDto
    CreateCandidateWorkExperienceDto:
      anyOf:
        - type: object
          properties:
            jobTitle:
              type: string
              minLength: 1
            location:
              anyOf:
                - $ref: '#/components/schemas/LocationInputDto'
                - type: 'null'
            description:
              anyOf:
                - type: string
                - type: 'null'
            startDate:
              anyOf:
                - $ref: '#/components/schemas/DateISO'
                - type: 'null'
            endDate:
              anyOf:
                - $ref: '#/components/schemas/DateISO'
                - type: 'null'
            companyId:
              type: string
              minLength: 1
          required:
            - jobTitle
            - location
            - description
            - startDate
            - endDate
            - companyId
        - type: object
          properties:
            jobTitle:
              type: string
              minLength: 1
            location:
              anyOf:
                - $ref: '#/components/schemas/LocationInputDto'
                - type: 'null'
            description:
              anyOf:
                - type: string
                - type: 'null'
            startDate:
              anyOf:
                - $ref: '#/components/schemas/DateISO'
                - type: 'null'
            endDate:
              anyOf:
                - $ref: '#/components/schemas/DateISO'
                - type: 'null'
            company:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
              required:
                - name
          required:
            - jobTitle
            - location
            - description
            - startDate
            - endDate
            - company
      id: PrivateCreateCandidateWorkExperienceDto
    UpdateAttributeValueDto:
      type: object
      properties:
        attributeDefinitionId:
          type: string
          minLength: 1
        value:
          $ref: '#/components/schemas/SharedCustomAttributeTypeDto'
      required:
        - attributeDefinitionId
        - value
      id: PrivateUpdateAttributeValueDto
    LanguageDto:
      type: object
      properties:
        id:
          type: string
          minLength: 1
        language:
          $ref: '#/components/schemas/CandidateLanguage'
        fluency:
          $ref: '#/components/schemas/CandidateFluency'
      required:
        - language
      id: PrivateLanguageDto
    CompensationDto:
      type: object
      properties:
        id:
          type: string
          minLength: 1
        currency:
          $ref: '#/components/schemas/CandidateCurrency'
        totalCompensation:
          anyOf:
            - type: number
            - type: 'null'
        baseCompensation:
          anyOf:
            - type: number
            - type: 'null'
      required:
        - currency
      id: PrivateCompensationDto
    PhoneNumber:
      id: PhoneNumber
      description: Phone number in E.164 format
      type: string
    CountryCode:
      type: string
      enum:
        - AF
        - AX
        - AL
        - DZ
        - AS
        - AD
        - AO
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - AZ
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BQ
        - BA
        - BW
        - BV
        - BR
        - IO
        - BN
        - BG
        - BF
        - BI
        - KH
        - CM
        - CA
        - CV
        - KY
        - CF
        - TD
        - CL
        - CN
        - CX
        - CC
        - CO
        - KM
        - CG
        - CD
        - CK
        - CR
        - CI
        - HR
        - CU
        - CW
        - CY
        - CZ
        - DK
        - DJ
        - DM
        - DO
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GH
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HK
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - KP
        - KR
        - KW
        - KG
        - LA
        - LV
        - LB
        - LS
        - LR
        - LY
        - LI
        - LT
        - LU
        - MO
        - MK
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - MM
        - NA
        - NR
        - NP
        - NL
        - NC
        - NZ
        - NI
        - NE
        - NG
        - NU
        - NF
        - MP
        - 'NO'
        - OM
        - PK
        - PW
        - PS
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - RE
        - RO
        - RU
        - RW
        - BL
        - SH
        - KN
        - LC
        - MF
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - SN
        - RS
        - SC
        - SL
        - SG
        - SX
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - SS
        - ES
        - LK
        - SD
        - SR
        - SJ
        - SZ
        - SE
        - CH
        - SY
        - TW
        - TJ
        - TZ
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - UG
        - UA
        - AE
        - GB
        - US
        - UM
        - UY
        - UZ
        - VU
        - VE
        - VN
        - VG
        - VI
        - WF
        - EH
        - XK
        - YE
        - ZM
        - ZW
      id: CountryCode
    LocationType:
      type: string
      enum:
        - primary_home
        - secondary_home
        - primary_work
        - headquarters
        - regional_office
      id: LocationType
    SharedCustomAttributeTypeDto:
      oneOf:
        - $ref: '#/components/schemas/CustomTextTypeDto'
        - $ref: '#/components/schemas/CustomNumberTypeDto'
        - $ref: '#/components/schemas/CustomCheckboxTypeDto'
        - $ref: '#/components/schemas/CustomDateTypeDto'
        - $ref: '#/components/schemas/CustomTimestampTypeDto'
        - $ref: '#/components/schemas/CustomRatingTypeDto'
        - $ref: '#/components/schemas/CustomSelectTypeDto'
        - $ref: '#/components/schemas/CustomMultiSelectTypeDto'
        - $ref: '#/components/schemas/CustomCurrencyTypeDto'
        - $ref: '#/components/schemas/CustomDateRangeTypeDto'
        - $ref: '#/components/schemas/CustomDurationTypeDto'
        - $ref: '#/components/schemas/CustomUrlTypeDto'
        - $ref: '#/components/schemas/CustomEntityTypeDto'
        - $ref: '#/components/schemas/CustomMultiEntityTypeDto'
      id: SharedPrivateCustomAttributeTypeDto
    CandidateLanguage:
      type: string
      enum:
        - Afrikaans
        - Albanian
        - Amharic
        - Arabic
        - Armenian
        - Assamese
        - Aymara
        - Azerbaijani
        - Bangla
        - Basque
        - Belarusian
        - Bemba
        - Berber
        - Bislama
        - Bosnian
        - Bulgarian
        - Burman
        - Catalan
        - Chechen
        - Chewa
        - Chinese (Mandarin)
        - Chinese (Cantonese)
        - Chittagonian
        - Croatian
        - Czech
        - Danish
        - Dari
        - Dhivehi
        - Dutch
        - Dzongkha
        - English
        - Estonian
        - Ewe
        - Fijian
        - Filipino
        - Finnish
        - French
        - Galician
        - Georgian
        - German
        - Greek
        - Guarani
        - Gujarati
        - Haitian Creole
        - Hausa
        - Hebrew
        - Hindi
        - Hungarian
        - Icelandic
        - Igbo
        - Indonesian
        - Irish
        - Italian
        - Japanese
        - Kannada
        - Kazakh
        - Khmer
        - Kinyarwanda
        - Kirundi
        - Korean
        - Kurdish
        - Kyrgyz
        - Lao
        - Latvian
        - Lingala
        - Lithuanian
        - Luganda
        - Luxembourgish
        - Macedonian
        - Malagasy
        - Malay
        - Malayalam
        - Maltese
        - Maori
        - Marathi
        - Moldovan
        - Mongolian
        - Montenegrin
        - Ndebele
        - Nepali
        - Norwegian
        - Odia
        - Oromo
        - Pashto
        - Persian
        - Polish
        - Portuguese
        - Punjabi
        - Quechua
        - Romanian
        - Russian
        - Samoan
        - Sango
        - Serbian
        - Sesotho
        - Setswana
        - Shona
        - Sindhi
        - Sinhala
        - Slovak
        - Slovenian
        - Somali
        - Spanish
        - Swahili
        - Swedish
        - Tajik
        - Tamil
        - Telugu
        - Tetum
        - Thai
        - Tigrinya
        - Tok Pisin
        - Tongan
        - Tsonga
        - Tswana
        - Turkish
        - Turkmen
        - Ukrainian
        - Urdu
        - Uzbek
        - Venda
        - Vietnamese
        - Welsh
        - Xhosa
        - Yoruba
        - Zulu
      id: PrivateCandidateLanguage
    CandidateFluency:
      anyOf:
        - type: string
          enum:
            - Elementary proficiency
            - Limited working proficiency
            - Professional working proficiency
            - Full professional proficiency
            - Native or bilingual proficiency
        - type: 'null'
      id: PrivateCandidateFluency
    CandidateCurrency:
      $ref: '#/components/schemas/DmCurrency'
      id: PrivateCandidateCurrency
    CustomTextTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customText
        text:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - viewType
        - text
      id: PrivateCustomTextTypeDto
    CustomNumberTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customNumber
        number:
          anyOf:
            - type: number
            - type: 'null'
      required:
        - viewType
        - number
      id: PrivateCustomNumberTypeDto
    CustomCheckboxTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customCheckbox
        checked:
          anyOf:
            - type: boolean
            - type: 'null'
      required:
        - viewType
        - checked
      id: PrivateCustomCheckboxTypeDto
    CustomDateTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customDate
        date:
          anyOf:
            - $ref: '#/components/schemas/DateISO'
            - type: 'null'
      required:
        - viewType
        - date
      id: PrivateCustomDateTypeDto
    CustomTimestampTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customTimestamp
        timestamp:
          anyOf:
            - $ref: '#/components/schemas/DateISO'
            - type: 'null'
      required:
        - viewType
        - timestamp
      id: PrivateCustomTimestampTypeDto
    CustomRatingTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customRating
        rating:
          anyOf:
            - type: number
            - type: 'null'
      required:
        - viewType
        - rating
      id: PrivateCustomRatingTypeDto
    CustomSelectTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customSelect
        select:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - viewType
        - select
      id: PrivateCustomSelectTypeDto
    CustomMultiSelectTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customMultiSelect
        multiSelect:
          type: array
          items:
            type: string
      required:
        - viewType
        - multiSelect
      id: PrivateCustomMultiSelectTypeDto
    CustomCurrencyTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customCurrency
        monetaryAmount:
          anyOf:
            - $ref: '#/components/schemas/MonetaryAmountDto'
            - type: 'null'
      required:
        - viewType
        - monetaryAmount
      id: PrivateCustomCurrencyTypeDto
    CustomDateRangeTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customDateRange
        dateRange:
          anyOf:
            - $ref: '#/components/schemas/DateRangeDto'
            - type: 'null'
      required:
        - viewType
        - dateRange
      id: PrivateCustomDateRangeTypeDto
    CustomDurationTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customDuration
        duration:
          anyOf:
            - type: number
            - type: 'null'
      required:
        - viewType
        - duration
      id: PrivateCustomDurationTypeDto
    CustomUrlTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customUrl
        url:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - viewType
        - url
      id: PrivateCustomUrlTypeDto
    CustomEntityTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customEntity
        type:
          type: string
          enum:
            - user
        id:
          anyOf:
            - type: string
            - type: 'null'
        entity:
          anyOf:
            - $ref: '#/components/schemas/UserBadgeDto'
            - type: 'null'
      required:
        - viewType
        - type
        - id
      id: PrivateCustomEntityTypeDto
    CustomMultiEntityTypeDto:
      type: object
      properties:
        viewType:
          type: string
          enum:
            - customMultiEntity
        type:
          type: string
          enum:
            - user
        ids:
          type: array
          items:
            type: string
        entities:
          type: array
          items:
            $ref: '#/components/schemas/UserBadgeDto'
      required:
        - viewType
        - type
        - ids
      id: PrivateCustomMultiEntityTypeDto
    DmCurrency:
      type: string
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTC
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHF
        - CLF
        - CLP
        - CNH
        - CNY
        - COP
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GGP
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HRK
        - HTG
        - HUF
        - IDR
        - ILS
        - IMP
        - INR
        - IQD
        - IRR
        - ISK
        - JEP
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SLE
        - SLL
        - SOS
        - SRD
        - SSP
        - STD
        - STN
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UZS
        - VEF
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XAG
        - XAU
        - XCD
        - XCG
        - XDR
        - XOF
        - XPD
        - XPF
        - XPT
        - YER
        - ZAR
        - ZMW
        - ZWG
        - ZWL
      id: DmCurrency
    MonetaryAmountDto:
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/DmCurrency'
        amount:
          type: number
      required:
        - currency
        - amount
      id: PrivateMonetaryAmountDto
    DateRangeDto:
      type: object
      properties:
        startDate:
          $ref: '#/components/schemas/DateISO'
        endDate:
          anyOf:
            - $ref: '#/components/schemas/DateISO'
            - type: 'null'
      required:
        - startDate
        - endDate
      id: PrivateDateRangeDto
    UserBadgeDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        avatarUrl:
          anyOf:
            - type: string
            - type: 'null'
        deactivatedAt:
          anyOf:
            - $ref: '#/components/schemas/DateISO'
            - type: 'null'
      required:
        - id
        - name
        - avatarUrl
        - deactivatedAt
      id: PrivateUserBadgeDto
  securitySchemes:
    x-api-key:
      type: apiKey
      name: x-api-key
      in: header
      description: >-
        API key for authentication. Get your API key from Settings → API Keys in
        your Spott dashboard.

````