> ## 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 integration details

> Get the specified integration with everything you need to display it to your customer.



## OpenAPI

````yaml GET /integrations/{integration_id}
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:
  /integrations/{integration_id}:
    get:
      tags:
        - General
      summary: Get integration details
      description: >-
        Get the specified integration with everything you need to display it to
        your customer.
      operationId: GetIntegrationsIntegrationId
      parameters:
        - name: integration_id
          in: path
          required: true
          description: GET /integrations/:integration_id Parameter
          schema:
            $ref: >-
              #/components/schemas/GetIntegrationsIntegrationIdParameterIntegrationId
      responses:
        '200':
          description: GET /integrations/:integration_id Positive response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/GetIntegrationsIntegrationIdPositiveResponse
              examples:
                example1:
                  value:
                    status: success
                    data:
                      id: factorial:8d1hpPsbjxUkoCoa1veLZGe5
                      tool:
                        id: factorial
                        label: Factorial
                        internal_label: null
                        logo_url: >-
                          https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg
                        icon_url: >-
                          https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg
                      category: HRIS
                      status: ACTIVE
                      setup_status: COMPLETED
                      end_user:
                        organization_name: Acme
                        creator_email: example-integration-creator@acme.com
                        origin_id: 2DQJAUtSzzzKP9buDTvUvPk3
                      scope_config:
                        id: B1hu5NGyhdjSq5X3hxEz4bAN
                        name: Anonymous Scopes
                      data_expired_at: null
                      created_at: '2022-08-07T14:01:29.196Z'
                      beta: false
                      read_models:
                        - id: hris_employees
                          label: Employees
                          is_available: true
                          coverage_status: SUPPORTED
                          scope_config_setting: ENABLED
                          opted_out_by_customer: false
                          fields:
                            - id: date_of_birth
                              is_available: false
                              coverage_status: SUPPORTED
                              scope_config_setting: OPTIONAL
                              opted_out_by_customer: true
                      write_actions:
                        - id: hris_create_employee
                          label: Create employee
                          is_available: true
                          coverage_status: SUPPORTED
                          scope_config_setting: ENABLED
                          opted_out_by_customer: false
                          fields:
                            - id: first_name
                              is_available: true
                              coverage_status: SUPPORTED
        default:
          $ref: '#/components/responses/ErrorResponseGeneral'
      x-codeSamples:
        - lang: python
          label: GetIntegrationsIntegrationId
          source: |-
            from kombo import Kombo


            with Kombo(
                api_key="<YOUR_BEARER_TOKEN_HERE>",
            ) as k_client:

                res = k_client.general.get_integration_details(integration_id="<id>")

                # Handle response
                print(res)
        - lang: typescript
          label: GetIntegrationsIntegrationId
          source: |-
            import { Kombo } from "@kombo-api/sdk";

            const kombo = new Kombo({
              api_key: "<YOUR_BEARER_TOKEN_HERE>",
            });

            async function run() {
              const result = await kombo.general.getIntegrationDetails({
                integration_id: "<id>",
              });

              console.log(result);
            }

            run();
        - lang: ruby
          label: GetIntegrationsIntegrationId
          source: |-
            require 'kombo'

            Models = ::Kombo::Models
            s = ::Kombo::Kombo.new(
              security: Models::Shared::Security.new(
                api_key: '<YOUR_BEARER_TOKEN_HERE>'
              )
            )
            res = s.general.get_integration_details(integration_id: '<id>')

            unless res.get_integrations_integration_id_positive_response.nil?
              # handle response
            end
components:
  schemas:
    GetIntegrationsIntegrationIdParameterIntegrationId:
      type: string
    GetIntegrationsIntegrationIdPositiveResponse:
      type: object
      properties:
        status:
          type: string
          const: success
        data:
          type: object
          properties:
            id:
              type: string
            tool:
              type: object
              properties:
                id:
                  type: string
                  description: The ID of the connected tool in Kombo (e.g. `factorial`).
                label:
                  type: string
                internal_label:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Internal label that can help you debug specific variants of
                    the integration. Only show the `label` to your users.
                logo_url:
                  type: string
                  format: uri
                  description: >-
                    URL to an SVG logo of the connected tool. The logo usually
                    contains the tool name.
                icon_url:
                  type: string
                  format: uri
                  description: URL to a square SVG icon of the connected tool.
              required:
                - id
                - label
                - internal_label
                - logo_url
                - icon_url
            category:
              type: string
              enum:
                - HRIS
                - ATS
                - ASSESSMENT
                - LMS
            status:
              type: string
              enum:
                - ACTIVE
                - INVALID
                - INACTIVE
              description: >-
                The current status of the integration.


                - `ACTIVE`: The integration is syncing data as expected.

                - `INVALID`: The integration has stopped syncing data because of
                invalid credentials. To fix this, reach out to your customer to
                [reconnect the
                integration](../guides/integration-states#credentials-invalid).

                - `INACTIVE`: The integration has stopped syncing as it's been
                manually set to inactive. You can [enable it
                again](../guides/integration-states#inactive) in the
                integration's page.
            setup_status:
              type: string
              enum:
                - INCOMPLETE
                - FINAL_SYNC_PENDING
                - COMPLETED
              description: >-
                The setup_status is used in conjunction with the filtering and
                field mapping features. If these are enabled in the connection
                flow, the integration will start in an "INCOMPLETE" state and
                move to "COMPLETE" once all steps are finished.


                - `INCOMPLETE`: Setup is still in progress. Some steps aren’t
                finished, so no data is available yet. Syncs only run as needed
                for setup.

                - `FINAL_SYNC_PENDING`: Setup is complete, and the final sync is
                running. Data will be available after this sync is done.

                - `COMPLETED`: Setup is fully finished, and the integration is
                ready to use.
            end_user:
              type: object
              properties:
                organization_name:
                  type: string
                creator_email:
                  type:
                    - string
                    - 'null'
                  pattern: >-
                    ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$
                origin_id:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The ID you have passed initially to the connection flow to
                    create this integration.
              required:
                - organization_name
                - creator_email
                - origin_id
            scope_config:
              type: object
              properties:
                id:
                  type: string
                name:
                  type:
                    - string
                    - 'null'
              required:
                - id
                - name
            data_expired_at:
              description: >-
                The date when the integration configuration (e.g. filters, scope
                config) was changed, invalidating the synced data. It is cleared
                after a successful sync. If this field is `null` the data you
                fetch is valid to the state of the last sync or webhook event
                received. Otherwise it will be set to `null` with the next
                successful sync.
              type:
                - string
                - 'null'
              format: date-time
              externalDocs:
                url: >-
                  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
            created_at:
              description: YYYY-MM-DDTHH:mm:ss.sssZ
              type: string
              format: date-time
              externalDocs:
                url: >-
                  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
            beta:
              type: boolean
            read_models:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: ID of the model (e.g. hris_employees).
                  label:
                    type: string
                    description: Label of the model (e.g. Employees).
                  is_available:
                    type: boolean
                    description: >-
                      Whether the datapoint is available and enabled and not
                      opted out of.
                  coverage_status:
                    type: string
                    enum:
                      - SUPPORTED
                      - UNSUPPORTED
                      - NOT_IMPLEMENTED
                      - UNKNOWN
                    description: >-
                      The status of a datapoint of an integrated tool:


                      - `SUPPORTED`: the tool supports the datapoint and it can
                      be used through Kombo.

                      - `UNSUPPORTED`: the tool does not support the datapoint.

                      - `NOT_IMPLEMENTED`: tool supports the datapoint but it
                      was not integrated by Kombo for a given reason (see
                      coverage grid).

                      - `UNKNOWN`: the datapoint is not integrated yet and Kombo
                      has no information about it's availability in the tool.
                  scope_config_setting:
                    type: string
                    enum:
                      - ENABLED
                      - DISABLED
                      - OPTIONAL
                    description: >-
                      The setting of the datapoint in the scope config that you
                      configured in the Kombo dashboard.
                  opted_out_by_customer:
                    type: boolean
                    description: >-
                      Whether the datapoint is opted out by your customer in the
                      connection flow.
                  fields:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Key of the field in the API (e.g. first_name).
                        is_available:
                          type: boolean
                          description: >-
                            Whether the datapoint is available and enabled and
                            not opted out of.
                        coverage_status:
                          type: string
                          enum:
                            - SUPPORTED
                            - UNSUPPORTED
                            - NOT_IMPLEMENTED
                            - UNKNOWN
                          description: >-
                            The status of a datapoint of an integrated tool:


                            - `SUPPORTED`: the tool supports the datapoint and
                            it can be used through Kombo.

                            - `UNSUPPORTED`: the tool does not support the
                            datapoint.

                            - `NOT_IMPLEMENTED`: tool supports the datapoint but
                            it was not integrated by Kombo for a given reason
                            (see coverage grid).

                            - `UNKNOWN`: the datapoint is not integrated yet and
                            Kombo has no information about it's availability in
                            the tool.
                        scope_config_setting:
                          type: string
                          enum:
                            - ENABLED
                            - DISABLED
                            - OPTIONAL
                          description: >-
                            The setting of the datapoint in the scope config
                            that you configured in the Kombo dashboard.
                        opted_out_by_customer:
                          type: boolean
                          description: >-
                            Whether the datapoint is opted out by your customer
                            in the connection flow.
                      required:
                        - id
                        - is_available
                        - coverage_status
                        - scope_config_setting
                        - opted_out_by_customer
                required:
                  - id
                  - label
                  - is_available
                  - coverage_status
                  - scope_config_setting
                  - opted_out_by_customer
                  - fields
            write_actions:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: ID of the action (e.g. ats_create_candidate).
                  label:
                    type: string
                    description: Label of the action (e.g. Create candidate).
                  is_available:
                    type: boolean
                    description: >-
                      Whether the datapoint is available and enabled and not
                      opted out of.
                  coverage_status:
                    type: string
                    enum:
                      - SUPPORTED
                      - UNSUPPORTED
                      - NOT_IMPLEMENTED
                      - UNKNOWN
                    description: >-
                      The status of a datapoint of an integrated tool:


                      - `SUPPORTED`: the tool supports the datapoint and it can
                      be used through Kombo.

                      - `UNSUPPORTED`: the tool does not support the datapoint.

                      - `NOT_IMPLEMENTED`: tool supports the datapoint but it
                      was not integrated by Kombo for a given reason (see
                      coverage grid).

                      - `UNKNOWN`: the datapoint is not integrated yet and Kombo
                      has no information about it's availability in the tool.
                  scope_config_setting:
                    type: string
                    enum:
                      - ENABLED
                      - DISABLED
                      - OPTIONAL
                    description: >-
                      The setting of the datapoint in the scope config that you
                      configured in the Kombo dashboard.
                  opted_out_by_customer:
                    type: boolean
                    description: >-
                      Whether the datapoint is opted out by your customer in the
                      connection flow.
                  fields:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Key of the input field (e.g. candidate.first_name).
                        is_available:
                          type: boolean
                          description: >-
                            Whether the datapoint is available and enabled and
                            not opted out of.
                        coverage_status:
                          type: string
                          enum:
                            - SUPPORTED
                            - UNSUPPORTED
                            - NOT_IMPLEMENTED
                            - UNKNOWN
                          description: >-
                            The status of a datapoint of an integrated tool:


                            - `SUPPORTED`: the tool supports the datapoint and
                            it can be used through Kombo.

                            - `UNSUPPORTED`: the tool does not support the
                            datapoint.

                            - `NOT_IMPLEMENTED`: tool supports the datapoint but
                            it was not integrated by Kombo for a given reason
                            (see coverage grid).

                            - `UNKNOWN`: the datapoint is not integrated yet and
                            Kombo has no information about it's availability in
                            the tool.
                      required:
                        - id
                        - is_available
                        - coverage_status
                    description: >-
                      Field support status for the action. Please note that
                      action fields can't be configured in the scope config or
                      opted out by your customer.
                required:
                  - id
                  - label
                  - is_available
                  - coverage_status
                  - scope_config_setting
                  - opted_out_by_customer
                  - fields
          required:
            - id
            - tool
            - category
            - status
            - setup_status
            - end_user
            - scope_config
            - data_expired_at
            - created_at
            - beta
            - read_models
            - write_actions
          examples:
            - id: factorial:8d1hpPsbjxUkoCoa1veLZGe5
              tool:
                id: factorial
                label: Factorial
                internal_label: null
                logo_url: >-
                  https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg
                icon_url: >-
                  https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg
              category: HRIS
              status: ACTIVE
              setup_status: COMPLETED
              end_user:
                organization_name: Acme
                creator_email: example-integration-creator@acme.com
                origin_id: 2DQJAUtSzzzKP9buDTvUvPk3
              scope_config:
                id: B1hu5NGyhdjSq5X3hxEz4bAN
                name: Anonymous Scopes
              data_expired_at: null
              created_at: '2022-08-07T14:01:29.196Z'
              beta: false
              read_models:
                - id: hris_employees
                  label: Employees
                  is_available: true
                  coverage_status: SUPPORTED
                  scope_config_setting: ENABLED
                  opted_out_by_customer: false
                  fields:
                    - id: date_of_birth
                      is_available: false
                      coverage_status: SUPPORTED
                      scope_config_setting: OPTIONAL
                      opted_out_by_customer: true
              write_actions:
                - id: hris_create_employee
                  label: Create employee
                  is_available: true
                  coverage_status: SUPPORTED
                  scope_config_setting: ENABLED
                  opted_out_by_customer: false
                  fields:
                    - id: first_name
                      is_available: true
                      coverage_status: SUPPORTED
      required:
        - status
        - data
  responses:
    ErrorResponseGeneral:
      description: The standard error response with just the platform error codes.
      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
                    example: PLATFORM.RATE_LIMIT_EXCEEDED
                    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.

````