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

# Get skills

> Get skills

<Warning>**Closed Beta Feature:** This endpoint is currently in closed beta. We're testing it with selected customers before its public release. If you're interested in learning more or getting early access, please reach out.</Warning>

Retrieve the skill catalog from the HRIS. These are the skills that can be attached to employees and staffing entities.


## OpenAPI

````yaml GET /hris/skills
openapi: 3.1.0
info:
  title: Kombo API
  version: 1.0.0
servers:
  - url: https://api.kombo.dev/v1
    description: Kombo EU API
  - url: https://api.us.kombo.dev/v1
    description: Kombo US API
security:
  - ApiKey: []
tags:
  - name: General
  - name: Kombo Connect
    description: >-
      Endpoints for Kombo Connect, our end-user-facing flow for setting up new
      integrations.
  - name: Unified HRIS API
    description: Unified endpoints to access all the HR concepts you might need.
  - name: Unified ATS API
    description: Unified endpoints to access all the ATS concepts you might need.
  - name: Unified ATS (Assessment & Background Check) API
    description: >-
      Unified endpoints to operate Assessments and Background Checks for many
      applicant tracking systems.
  - name: Unified LMS API
    description: Unified endpoints to access all the LMS concepts you might need.
  - name: AI Apply
    description: Endpoints for AI-powered job application features.
  - name: Custom Endpoints
    description: Custom integration-specific endpoints.
paths:
  /hris/skills:
    get:
      tags:
        - Unified HRIS API
      summary: Get skills
      description: >-
        Get skills




        <Warning>**Closed Beta Feature:** This endpoint is currently in closed
        beta. We're testing it with selected customers before its public
        release. If you're interested in learning more or getting early access,
        please reach out.</Warning>




        Retrieve the skill catalog from the HRIS. These are the skills that can
        be attached to employees and staffing entities.
      operationId: GetHrisSkills
      parameters:
        - in: header
          name: X-Integration-Id
          schema:
            type: string
          description: ID of the integration you want to interact with.
          example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28
          required: true
        - name: ids
          in: query
          required: false
          description: >-
            Filter by a comma-separated list of IDs such as
            `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
          schema:
            $ref: '#/components/schemas/GetHrisSkillsParameterIds'
        - name: remote_ids
          in: query
          required: false
          description: Filter by a comma-separated list of remote IDs.
          schema:
            $ref: '#/components/schemas/GetHrisSkillsParameterRemoteIds'
        - name: name_contains
          in: query
          required: false
          description: >-
            Filter by the `name` field. Can be used to find skills by keywords
            present in the skill name.
          schema:
            $ref: '#/components/schemas/GetHrisSkillsParameterNameContains'
      responses:
        '200':
          description: GET /hris/skills Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHrisSkillsPositiveResponse'
              examples:
                example1:
                  value:
                    status: success
                    data:
                      next: >-
                        eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=
                      results:
                        - id: 28KMdr68N8kG9EzLwjsN9aoz
                          remote_id: '238476582'
                          name: TypeScript Programming
                          proficiency_scale:
                            type: SINGLE_SELECT
                            ordered_options:
                              - Proficiency Level 1
                              - Proficiency Level 2
                              - Proficiency Level 3
                              - Proficiency Level 4
                              - Proficiency Level 5
                          remote_created_at: '2022-08-07T14:01:29.196Z'
                          changed_at: '2022-08-07T14:01:29.196Z'
                          remote_deleted_at: null
        default:
          $ref: '#/components/responses/ErrorResponseHRIS'
components:
  schemas:
    GetHrisSkillsParameterIds:
      type: string
      description: >-
        Filter by a comma-separated list of IDs such as
        `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
    GetHrisSkillsParameterRemoteIds:
      type: string
      description: Filter by a comma-separated list of remote IDs.
    GetHrisSkillsParameterNameContains:
      type: string
      description: >-
        Filter by the `name` field. Can be used to find skills by keywords
        present in the skill name.
    GetHrisSkillsPositiveResponse:
      type: object
      properties:
        status:
          type: string
          const: success
        data:
          type: object
          properties:
            next:
              type:
                - string
                - 'null'
              description: >-
                Cursor string that can be passed to the `cursor` query parameter
                to get the next page. If this is `null`, then there are no more
                pages.
            results:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: >-
                      The globally unique ID of this object generated by Kombo.
                      We recommend using this as a stable primary key for
                      syncing.
                  remote_id:
                    type: string
                    description: >-
                      The raw ID of the object in the remote system. We don't
                      recommend using this as a primary key on your side as it
                      might sometimes be compromised of multiple identifiers if
                      a system doesn't provide a clear primary key.
                  name:
                    type: string
                    description: >-
                      The name of the skill, in the default locale of the remote
                      system.
                  proficiency_scale:
                    discriminator:
                      propertyName: type
                    anyOf:
                      - type: object
                        properties:
                          type:
                            type: string
                            const: NUMERIC
                          min:
                            type: number
                            format: double
                            minimum: -1.7976931348623157e+308
                            description: The lowest value of the proficiency scale.
                          max:
                            type: number
                            format: double
                            minimum: -1.7976931348623157e+308
                            description: The highest value of the proficiency scale.
                        required:
                          - type
                          - min
                          - max
                      - type: object
                        properties:
                          type:
                            type: string
                            const: SINGLE_SELECT
                          ordered_options:
                            type: array
                            items:
                              type: string
                            description: >-
                              The available proficiency levels, ordered from
                              lowest to highest.
                        required:
                          - type
                          - ordered_options
                      - type: 'null'
                    description: >-
                      The available rating scale for this skill, useful when
                      writing a rating back. `null` when the skill has no scale.
                  remote_created_at:
                    description: >-
                      The date and time the object was created in the remote
                      system.
                    type:
                      - string
                      - 'null'
                    format: date-time
                    externalDocs:
                      url: >-
                        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                  changed_at:
                    description: >-
                      The timestamp when this specific record was last modified.
                      This field only updates when properties directly on this
                      record change, NOT when related or nested models change.
                      For filtering that considers nested data changes, use the
                      `updated_after` parameter which will return records when
                      either the record itself OR its related models have been
                      updated.
                    type: string
                    format: date-time
                    externalDocs:
                      url: >-
                        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                  remote_deleted_at:
                    description: >-
                      The date and time the object was deleted in the remote
                      system. Objects are automatically marked as deleted when
                      Kombo can't retrieve them from the remote system anymore.
                      Kombo will also anonymize entries 14 days after they
                      disappear.
                    type:
                      - string
                      - 'null'
                    format: date-time
                    externalDocs:
                      url: >-
                        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                required:
                  - id
                  - remote_id
                  - name
                  - proficiency_scale
                  - remote_created_at
                  - changed_at
                  - remote_deleted_at
                examples:
                  - id: 28KMdr68N8kG9EzLwjsN9aoz
                    remote_id: '238476582'
                    name: TypeScript Programming
                    proficiency_scale:
                      type: SINGLE_SELECT
                      ordered_options:
                        - Proficiency Level 1
                        - Proficiency Level 2
                        - Proficiency Level 3
                        - Proficiency Level 4
                        - Proficiency Level 5
                    remote_created_at: '2022-08-07T14:01:29.196Z'
                    changed_at: '2022-08-07T14:01:29.196Z'
                    remote_deleted_at: null
          required:
            - next
            - results
          examples:
            - next: >-
                eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=
              results:
                - id: 28KMdr68N8kG9EzLwjsN9aoz
                  remote_id: '238476582'
                  name: TypeScript Programming
                  proficiency_scale:
                    type: SINGLE_SELECT
                    ordered_options:
                      - Proficiency Level 1
                      - Proficiency Level 2
                      - Proficiency Level 3
                      - Proficiency Level 4
                      - Proficiency Level 5
                  remote_created_at: '2022-08-07T14:01:29.196Z'
                  changed_at: '2022-08-07T14:01:29.196Z'
                  remote_deleted_at: null
      required:
        - status
        - data
  responses:
    ErrorResponseHRIS:
      description: The standard error response with the error codes for the HRIS use case.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: object
                properties:
                  code:
                    type:
                      - string
                      - 'null'
                    enum:
                      - PLATFORM.RATE_LIMIT_EXCEEDED
                      - PLATFORM.CONCURRENCY_LIMIT_EXCEEDED
                      - PLATFORM.INTEGRATION_NOT_FOUND
                      - PLATFORM.INPUT_INVALID
                      - PLATFORM.UNKNOWN_ERROR
                      - PLATFORM.IP_NOT_WHITELISTED
                      - PLATFORM.AUTHENTICATION_INVALID
                      - PLATFORM.TASK_TIMED_OUT
                      - INTEGRATION.PERMISSION_MISSING
                      - INTEGRATION.AUTHENTICATION_INVALID
                      - INTEGRATION.QA_FAILED
                      - INTEGRATION.SETUP_SYNC_PENDING
                      - INTEGRATION.SETUP_INCOMPLETE
                      - INTEGRATION.INACTIVE
                      - INTEGRATION.MODEL_NOT_AVAILABLE
                      - INTEGRATION.MODEL_DISABLED
                      - INTEGRATION.ACTION_NOT_AVAILABLE
                      - INTEGRATION.ACTION_DISABLED
                      - REMOTE.SERVICE_UNAVAILABLE
                      - REMOTE.RATE_LIMIT_EXCEEDED
                      - REMOTE.INPUT_INVALID
                      - REMOTE.UNKNOWN_HTTP_ERROR
                      - HRIS.STAFFING_ENTITY_CLOSED
                      - HRIS.EMPLOYEE_ALREADY_EXISTS
                    example: HRIS.EMPLOYEE_ALREADY_EXISTS
                    description: >-
                      Some errors include an error code that can be used to
                      identify their cause. See the [Error Handling
                      Docs](https://docs.kombo.dev/guides/errors) for more
                      information. For your error handling logic please use the
                      error `code` instead of other properties (e.g. message,
                      http status code, ...).
                  title:
                    type:
                      - string
                      - 'null'
                    description: A static, human-readable label.
                  message:
                    type: string
                    description: >-
                      A dynamic, detailed description of what went wrong in this
                      specific instance.
                  log_url:
                    type:
                      - string
                      - 'null'
                    format: uri
                    description: >-
                      The log page in the Kombo UI lists every interaction with
                      full details. If you need assistance, share that link with
                      our support team.
                required:
                  - code
                  - title
                  - message
                  - log_url
                description: Error details with structured code for programmatic handling.
            required:
              - status
              - error
          examples:
            Error Response:
              description: >-
                When building error handling logic, always use the `code` field
                to identify specific error types programmatically. See the
                complete list of error codes in the
                [docs](https://docs.kombo.dev/guides/errors).
              value:
                status: error
                error:
                  code: INTEGRATION.MODEL_NOT_AVAILABLE
                  title: >-
                    This data model isn't supported for the selected
                    integration.
                  message: >-
                    The "employees" model is not yet available for Greenhouse.
                    Please reach out to Kombo if you need this functionality.
                  log_url: https://app.kombo.dev/my-prod/logs?interactionId=123456
            Minimal Error Response:
              description: >-
                The "message" is always required while other fields can also be
                `null`. See the [docs](https://docs.kombo.dev/guides/errors) for
                more information.
              value:
                status: error
                error:
                  code: null
                  title: null
                  message: The message is always in the response.
                  log_url: null
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      description: >-
        Create an API key on the [Secrets](https://app.kombo.dev/secrets) page
        in the Kombo dashboard.

````