> ## 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 scorecards

> Retrieve all scorecards.

<Accordion title="Supported integrations" icon="list-check">
  This feature is currently available for the following integrations:

  <ul>
    <li class="flex items-center"><img src="https://storage.googleapis.com/kombo-assets/integrations/sandbox/icon.svg" height="16px" width="16px" class="m-0 mr-2" /><a href="/ats/connectors/sandbox">Kombo Sandbox</a></li>
  </ul>

  You'd like to see this feature for another integration? Please reach out!
  We're always happy to discuss extending our coverage.
</Accordion>

Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`


## OpenAPI

````yaml GET /ats/scorecards
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:
  /ats/scorecards:
    get:
      tags:
        - Unified ATS API
      summary: Get scorecards
      description: >-
        Retrieve all scorecards.


        <Accordion title="Supported integrations" icon="list-check">

        This feature is currently available for the following integrations:


        <ul>

        <li class="flex items-center"><img
          src="https://storage.googleapis.com/kombo-assets/integrations/sandbox/icon.svg"
          height="16px"
          width="16px"
          class="m-0 mr-2"
        /><a href="/ats/connectors/sandbox">Kombo Sandbox</a></li>

        </ul>


        You'd like to see this feature for another integration? Please reach
        out!

        We're always happy to discuss extending our coverage.

        </Accordion>



        Top level filters use AND, while individual filters use OR if they
        accept multiple arguments. That means filters will be resolved like
        this: `(id IN ids) AND (remote_id IN remote_ids)`
      operationId: GetAtsScorecards
      parameters:
        - in: header
          name: X-Integration-Id
          schema:
            type: string
          description: ID of the integration you want to interact with.
          example: join:HWUTwvyx2wLoSUHphiWVrp28
          required: true
        - name: cursor
          in: query
          required: false
          description: >-
            An optional cursor string used for pagination. This can be retrieved
            from the `next` property of the previous page response.
          schema:
            $ref: '#/components/schemas/GetAtsScorecardsParameterCursor'
        - name: page_size
          in: query
          required: false
          description: The number of results to return per page. Maximum is 250.
          schema:
            $ref: '#/components/schemas/GetAtsScorecardsParameterPageSize'
        - name: updated_after
          in: query
          required: false
          description: >-
            Filter the entries based on the modification date in format
            `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record
            itself **OR** its nested data has been updated since this timestamp,
            even if the record's own `changed_at` field remains unchanged.


            If you want to track entry deletion, also set the
            `include_deleted=true` query parameter, because otherwise, deleted
            entries will be hidden.


            For more details, see [Understanding changed_at vs updated_after
            Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).


            For this endpoint, `updated_after` matches when the returned record
            changed, or when related data changed as described below.


            | Path | Added/Removed | Linked Record |

            | --- | --- | --- |

            | `author` | ✗ No | ✗ No |

            | `application` | ✗ No | ✗ No |

            | `candidate` | ✗ No | ✗ No |

            | `interview` | ✗ No | ✗ No |


            _**Added/Removed**: Whether adding or removing entries from this
            list triggers an update (n/a for single records). **Linked Record**:
            Whether changes to the linked record itself trigger an update._
          schema:
            $ref: '#/components/schemas/GetAtsScorecardsParameterUpdatedAfter'
        - name: include_deleted
          in: query
          required: false
          description: >-
            By default, deleted entries are not returned. Use the
            `include_deleted` query param to include deleted entries too.
          schema:
            $ref: '#/components/schemas/GetAtsScorecardsParameterIncludeDeleted'
        - name: ignore_unsupported_filters
          in: query
          required: false
          description: >-
            When set to `true`, filters targeting fields not supported by this
            integration will be ignored instead of filtering out all results.
          schema:
            $ref: >-
              #/components/schemas/GetAtsScorecardsParameterIgnoreUnsupportedFilters
        - name: ids
          in: query
          required: false
          description: >-
            Filter by a comma-separated list of IDs such as
            `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
          schema:
            $ref: '#/components/schemas/GetAtsScorecardsParameterIds'
        - name: remote_ids
          in: query
          required: false
          description: Filter by a comma-separated list of remote IDs.
          schema:
            $ref: '#/components/schemas/GetAtsScorecardsParameterRemoteIds'
        - name: candidate_ids
          in: query
          required: false
          description: >-
            Filter by a comma-separated list of candidate IDs. Prefer filtering
            by `candidate_ids` when you want to download the full interview
            feedback available for a candidate, across all their applications.
          schema:
            $ref: '#/components/schemas/GetAtsScorecardsParameterCandidateIds'
        - name: application_ids
          in: query
          required: false
          description: >-
            Filter by a comma-separated list of application IDs. We will only
            return scorecards that belong to _any_ of these applications.
          schema:
            $ref: '#/components/schemas/GetAtsScorecardsParameterApplicationIds'
      responses:
        '200':
          description: GET /ats/scorecards Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAtsScorecardsPositiveResponse'
              examples:
                example1:
                  value:
                    status: success
                    data:
                      next: >-
                        eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=
                      results:
                        - id: H77fDF8uvEzGNPRubiz5DvQ7
                          remote_id: '32'
                          candidate_id: 26vafvWSRmbhNcxJYqjCzuJg
                          application_id: H5daSm8e85Dmvmne3wLeCPhX
                          interview_id: 5J7L4b48wBfffYwek9Az9pkM
                          author_id: 6Wq4mDpYz3vBnh8Xk2Lr9TfA
                          responses:
                            - answer:
                                label: 'Yes'
                                remote_id: '4'
                              description: How you feel the interview went
                              label: Overall rating
                              options:
                                - label: Definitely not
                                  remote_id: '1'
                                - label: 'No'
                                  remote_id: '2'
                                - label: Mixed
                                  remote_id: '3'
                                - label: 'Yes'
                                  remote_id: '4'
                                - label: Strong yes
                                  remote_id: '5'
                                - label: No decision
                                  remote_id: '6'
                              remote_id: null
                              required: false
                              type: SINGLE_SELECT
                            - answer: >-
                                Excellent system design, strong communication
                                throughout.
                              description: Main notes about the interview
                              label: Summary
                              remote_id: null
                              required: true
                              type: TEXT
                            - answer:
                                label: Strong yes
                                remote_id: '5'
                              description: null
                              label: System design
                              options:
                                - label: Definitely not
                                  remote_id: '1'
                                - label: 'No'
                                  remote_id: '2'
                                - label: Mixed
                                  remote_id: '3'
                                - label: 'Yes'
                                  remote_id: '4'
                                - label: Strong yes
                                  remote_id: '5'
                                - label: No decision
                                  remote_id: '6'
                              remote_id: attribute:8123
                              required: null
                              type: SINGLE_SELECT
                            - answer: true
                              description: null
                              label: Would you work with this person again?
                              remote_id: question:4471
                              required: true
                              type: BOOLEAN
                            - answer:
                                - label: System design
                                  remote_id: '9001'
                                - label: Debugging
                                  remote_id: '9002'
                              description: null
                              label: Which areas did you cover?
                              options:
                                - label: System design
                                  remote_id: '9001'
                                - label: Debugging
                                  remote_id: '9002'
                                - label: Pair programming
                                  remote_id: '9003'
                              remote_id: question:4472
                              required: false
                              type: MULTI_SELECT
                            - answer: Ask more about experience with microservices
                              description: null
                              label: Anything the next interviewer should probe?
                              remote_id: question:4473
                              required: false
                              type: TEXT
                            - answer: 7.5
                              description: null
                              label: Years of relevant experience
                              remote_id: question:4474
                              required: false
                              type: NUMBER
                            - answer: '2026-09-01'
                              description: null
                              label: Earliest start date
                              remote_id: question:4475
                              required: false
                              type: DATE
                            - answer: null
                              description: null
                              label: Additional notes
                              remote_id: question:4476
                              required: false
                              type: TEXT
                          remote_created_at: '2022-08-07T14:01:29.196Z'
                          remote_updated_at: '2022-08-07T14:01:29.196Z'
                          remote_data: null
                          changed_at: '2022-08-07T14:01:29.196Z'
                          remote_deleted_at: null
                          author:
                            id: 26vafvWSRmbhNcxJYqjCzuJg
                            remote_id: '32'
                            first_name: John
                            last_name: Doe
                            email: john.doe@kombo.dev
        default:
          $ref: '#/components/responses/ErrorResponseATS'
components:
  schemas:
    GetAtsScorecardsParameterCursor:
      type: string
      description: >-
        An optional cursor string used for pagination. This can be retrieved
        from the `next` property of the previous page response.
    GetAtsScorecardsParameterPageSize:
      type: integer
      format: int64
      minimum: 1
      maximum: 250
      default: 100
      description: The number of results to return per page. Maximum is 250.
    GetAtsScorecardsParameterUpdatedAfter:
      description: >-
        Filter the entries based on the modification date in format
        `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record
        itself **OR** its nested data has been updated since this timestamp,
        even if the record's own `changed_at` field remains unchanged.


        If you want to track entry deletion, also set the `include_deleted=true`
        query parameter, because otherwise, deleted entries will be hidden.


        For more details, see [Understanding changed_at vs updated_after
        Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).


        For this endpoint, `updated_after` matches when the returned record
        changed, or when related data changed as described below.


        | Path | Added/Removed | Linked Record |

        | --- | --- | --- |

        | `author` | ✗ No | ✗ No |

        | `application` | ✗ No | ✗ No |

        | `candidate` | ✗ No | ✗ No |

        | `interview` | ✗ No | ✗ No |


        _**Added/Removed**: Whether adding or removing entries from this list
        triggers an update (n/a for single records). **Linked Record**: Whether
        changes to the linked record itself trigger an update._
      type: string
      format: date-time
      pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$
      externalDocs:
        url: >-
          https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
    GetAtsScorecardsParameterIncludeDeleted:
      type: string
      enum:
        - 'true'
        - 'false'
      default: 'false'
      description: >-
        By default, deleted entries are not returned. Use the `include_deleted`
        query param to include deleted entries too.
    GetAtsScorecardsParameterIgnoreUnsupportedFilters:
      type: string
      enum:
        - 'true'
        - 'false'
      default: 'false'
      description: >-
        When set to `true`, filters targeting fields not supported by this
        integration will be ignored instead of filtering out all results.
    GetAtsScorecardsParameterIds:
      type: string
      description: >-
        Filter by a comma-separated list of IDs such as
        `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
    GetAtsScorecardsParameterRemoteIds:
      type: string
      description: Filter by a comma-separated list of remote IDs.
    GetAtsScorecardsParameterCandidateIds:
      type: string
      description: >-
        Filter by a comma-separated list of candidate IDs. Prefer filtering by
        `candidate_ids` when you want to download the full interview feedback
        available for a candidate, across all their applications.
    GetAtsScorecardsParameterApplicationIds:
      type: string
      description: >-
        Filter by a comma-separated list of application IDs. We will only return
        scorecards that belong to _any_ of these applications.
    GetAtsScorecardsPositiveResponse:
      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.
                  candidate_id:
                    type:
                      - string
                      - 'null'
                    description: The Kombo ID of the candidate this scorecard evaluates.
                  application_id:
                    type:
                      - string
                      - 'null'
                    description: The Kombo ID of the application this scorecard belongs to.
                  interview_id:
                    type:
                      - string
                      - 'null'
                    description: >-
                      The Kombo ID of the interview this scorecard was submitted
                      against.
                  author_id:
                    type:
                      - string
                      - 'null'
                    description: >-
                      The Kombo ID of the user this evaluation belongs to. Where
                      the ATS distinguishes who submitted the scorecard from
                      whose review it is, this is the source of the opinion (the
                      user whose evaluation it is, not whoever entered it). The
                      ID can be used to retrieve the user from the `get users`
                      endpoint.
                  responses:
                    type:
                      - array
                      - 'null'
                    items:
                      discriminator:
                        propertyName: type
                      anyOf:
                        - type: object
                          properties:
                            remote_id:
                              type:
                                - string
                                - 'null'
                              description: >-
                                ID of the question in the connected ATS. `null`
                                when the ATS keeps the headline rating or
                                summary outside the rubric.
                            label:
                              type: string
                              description: >-
                                The question or attribute being assessed, e.g.
                                "Willingness to travel".
                            description:
                              type:
                                - string
                                - 'null'
                              description: >-
                                Guidance the ATS shows the interviewer below the
                                question, e.g. "1 is poor, 4 is great".
                            required:
                              type:
                                - boolean
                                - 'null'
                              description: Whether the ATS marked this question mandatory.
                            type:
                              type: string
                              const: TEXT
                            answer:
                              type:
                                - string
                                - 'null'
                              description: The text the interviewer wrote.
                          required:
                            - remote_id
                            - label
                            - description
                            - required
                            - type
                            - answer
                        - type: object
                          properties:
                            remote_id:
                              type:
                                - string
                                - 'null'
                              description: >-
                                ID of the question in the connected ATS. `null`
                                when the ATS keeps the headline rating or
                                summary outside the rubric.
                            label:
                              type: string
                              description: >-
                                The question or attribute being assessed, e.g.
                                "Willingness to travel".
                            description:
                              type:
                                - string
                                - 'null'
                              description: >-
                                Guidance the ATS shows the interviewer below the
                                question, e.g. "1 is poor, 4 is great".
                            required:
                              type:
                                - boolean
                                - 'null'
                              description: Whether the ATS marked this question mandatory.
                            type:
                              type: string
                              const: SINGLE_SELECT
                            options:
                              type: array
                              items:
                                type: object
                                properties:
                                  remote_id:
                                    type:
                                      - string
                                      - 'null'
                                    description: >-
                                      The ID of this option in the remote
                                      system, e.g. `strong_hire`. `null` when
                                      the system identifies the option only by
                                      its label.
                                  label:
                                    type: string
                                    description: >-
                                      The option as the interviewer sees it,
                                      e.g. "Strong Hire".
                                required:
                                  - remote_id
                                  - label
                              description: >-
                                Every option available for select and
                                multi-select questions.
                            answer:
                              type:
                                - object
                                - 'null'
                              properties:
                                remote_id:
                                  type:
                                    - string
                                    - 'null'
                                  description: >-
                                    The ID of this option in the remote system,
                                    e.g. `strong_hire`. `null` when the system
                                    identifies the option only by its label.
                                label:
                                  type: string
                                  description: >-
                                    The option as the interviewer sees it, e.g.
                                    "Strong Hire".
                              required:
                                - remote_id
                                - label
                              description: The id and label of the selected option.
                          required:
                            - remote_id
                            - label
                            - description
                            - required
                            - type
                            - options
                            - answer
                        - type: object
                          properties:
                            remote_id:
                              type:
                                - string
                                - 'null'
                              description: >-
                                ID of the question in the connected ATS. `null`
                                when the ATS keeps the headline rating or
                                summary outside the rubric.
                            label:
                              type: string
                              description: >-
                                The question or attribute being assessed, e.g.
                                "Willingness to travel".
                            description:
                              type:
                                - string
                                - 'null'
                              description: >-
                                Guidance the ATS shows the interviewer below the
                                question, e.g. "1 is poor, 4 is great".
                            required:
                              type:
                                - boolean
                                - 'null'
                              description: Whether the ATS marked this question mandatory.
                            type:
                              type: string
                              const: MULTI_SELECT
                            options:
                              type: array
                              items:
                                type: object
                                properties:
                                  remote_id:
                                    type:
                                      - string
                                      - 'null'
                                    description: >-
                                      The ID of this option in the remote
                                      system, e.g. `strong_hire`. `null` when
                                      the system identifies the option only by
                                      its label.
                                  label:
                                    type: string
                                    description: >-
                                      The option as the interviewer sees it,
                                      e.g. "Strong Hire".
                                required:
                                  - remote_id
                                  - label
                              description: >-
                                Every option available for select and
                                multi-select questions.
                            answer:
                              type:
                                - array
                                - 'null'
                              items:
                                type: object
                                properties:
                                  remote_id:
                                    type:
                                      - string
                                      - 'null'
                                    description: >-
                                      The ID of this option in the remote
                                      system, e.g. `strong_hire`. `null` when
                                      the system identifies the option only by
                                      its label.
                                  label:
                                    type: string
                                    description: >-
                                      The option as the interviewer sees it,
                                      e.g. "Strong Hire".
                                required:
                                  - remote_id
                                  - label
                              description: >-
                                An array of ids and labels with every selected
                                option.
                          required:
                            - remote_id
                            - label
                            - description
                            - required
                            - type
                            - options
                            - answer
                        - type: object
                          properties:
                            remote_id:
                              type:
                                - string
                                - 'null'
                              description: >-
                                ID of the question in the connected ATS. `null`
                                when the ATS keeps the headline rating or
                                summary outside the rubric.
                            label:
                              type: string
                              description: >-
                                The question or attribute being assessed, e.g.
                                "Willingness to travel".
                            description:
                              type:
                                - string
                                - 'null'
                              description: >-
                                Guidance the ATS shows the interviewer below the
                                question, e.g. "1 is poor, 4 is great".
                            required:
                              type:
                                - boolean
                                - 'null'
                              description: Whether the ATS marked this question mandatory.
                            type:
                              type: string
                              const: BOOLEAN
                            answer:
                              type:
                                - boolean
                                - 'null'
                              description: The yes/no the interviewer picked.
                          required:
                            - remote_id
                            - label
                            - description
                            - required
                            - type
                            - answer
                        - type: object
                          properties:
                            remote_id:
                              type:
                                - string
                                - 'null'
                              description: >-
                                ID of the question in the connected ATS. `null`
                                when the ATS keeps the headline rating or
                                summary outside the rubric.
                            label:
                              type: string
                              description: >-
                                The question or attribute being assessed, e.g.
                                "Willingness to travel".
                            description:
                              type:
                                - string
                                - 'null'
                              description: >-
                                Guidance the ATS shows the interviewer below the
                                question, e.g. "1 is poor, 4 is great".
                            required:
                              type:
                                - boolean
                                - 'null'
                              description: Whether the ATS marked this question mandatory.
                            type:
                              type: string
                              const: NUMBER
                            answer:
                              type:
                                - number
                                - 'null'
                              format: double
                              description: A decimal value.
                          required:
                            - remote_id
                            - label
                            - description
                            - required
                            - type
                            - answer
                        - type: object
                          properties:
                            remote_id:
                              type:
                                - string
                                - 'null'
                              description: >-
                                ID of the question in the connected ATS. `null`
                                when the ATS keeps the headline rating or
                                summary outside the rubric.
                            label:
                              type: string
                              description: >-
                                The question or attribute being assessed, e.g.
                                "Willingness to travel".
                            description:
                              type:
                                - string
                                - 'null'
                              description: >-
                                Guidance the ATS shows the interviewer below the
                                question, e.g. "1 is poor, 4 is great".
                            required:
                              type:
                                - boolean
                                - 'null'
                              description: Whether the ATS marked this question mandatory.
                            type:
                              type: string
                              const: DATE
                            answer:
                              type:
                                - string
                                - 'null'
                              pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
                              description: Date in `YYYY-MM-DD` format.
                          required:
                            - remote_id
                            - label
                            - description
                            - required
                            - type
                            - answer
                    default: []
                    description: >-
                      Every question on the scorecard, together with its
                      definition and the answer submitted by the interviewer.
                  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
                  remote_updated_at:
                    description: >-
                      A timestamp retrieved from the remote system, describing
                      when the resource was last updated.
                    type:
                      - string
                      - 'null'
                    format: date-time
                    externalDocs:
                      url: >-
                        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                  remote_data:
                    type:
                      - object
                      - 'null'
                    additionalProperties: true
                    description: >-
                      Includes the data fetched from the remote system.

                      Please be aware that including this in you scope config
                      might violate other

                      scopes that are set.


                      Remote data always has the endpoint path that we got the
                      data from as the

                      top level key. For example, it could look like: `{
                      "/companies": { ... }}`


                      This is not available on all plans. Reach out to Kombo if
                      you need it.
                  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
                  author:
                    type:
                      - object
                      - 'null'
                    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
                          - 'null'
                        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.
                      first_name:
                        type:
                          - string
                          - 'null'
                        description: First name of the user.
                      last_name:
                        type:
                          - string
                          - 'null'
                        description: Last name of the user.
                      email:
                        type:
                          - string
                          - 'null'
                        pattern: >-
                          ^(?!\.)(?!.*\.\.)([\w'+-.]*)[\w+-]@([\da-z][\da-z-]*\.)+[a-z]{2,}$
                        description: >-
                          Email of the user. If the email address is invalid, it
                          will be set to null.
                    required:
                      - id
                      - remote_id
                      - first_name
                      - last_name
                    examples:
                      - id: 26vafvWSRmbhNcxJYqjCzuJg
                        remote_id: '32'
                        first_name: John
                        last_name: Doe
                        email: john.doe@kombo.dev
                required:
                  - id
                  - remote_id
                  - candidate_id
                  - application_id
                  - interview_id
                  - author_id
                  - remote_created_at
                  - remote_updated_at
                  - remote_data
                  - changed_at
                  - remote_deleted_at
                  - author
          required:
            - next
            - results
          examples:
            - next: >-
                eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=
              results:
                - id: H77fDF8uvEzGNPRubiz5DvQ7
                  remote_id: '32'
                  candidate_id: 26vafvWSRmbhNcxJYqjCzuJg
                  application_id: H5daSm8e85Dmvmne3wLeCPhX
                  interview_id: 5J7L4b48wBfffYwek9Az9pkM
                  author_id: 6Wq4mDpYz3vBnh8Xk2Lr9TfA
                  responses:
                    - answer:
                        label: 'Yes'
                        remote_id: '4'
                      description: How you feel the interview went
                      label: Overall rating
                      options:
                        - label: Definitely not
                          remote_id: '1'
                        - label: 'No'
                          remote_id: '2'
                        - label: Mixed
                          remote_id: '3'
                        - label: 'Yes'
                          remote_id: '4'
                        - label: Strong yes
                          remote_id: '5'
                        - label: No decision
                          remote_id: '6'
                      remote_id: null
                      required: false
                      type: SINGLE_SELECT
                    - answer: >-
                        Excellent system design, strong communication
                        throughout.
                      description: Main notes about the interview
                      label: Summary
                      remote_id: null
                      required: true
                      type: TEXT
                    - answer:
                        label: Strong yes
                        remote_id: '5'
                      description: null
                      label: System design
                      options:
                        - label: Definitely not
                          remote_id: '1'
                        - label: 'No'
                          remote_id: '2'
                        - label: Mixed
                          remote_id: '3'
                        - label: 'Yes'
                          remote_id: '4'
                        - label: Strong yes
                          remote_id: '5'
                        - label: No decision
                          remote_id: '6'
                      remote_id: attribute:8123
                      required: null
                      type: SINGLE_SELECT
                    - answer: true
                      description: null
                      label: Would you work with this person again?
                      remote_id: question:4471
                      required: true
                      type: BOOLEAN
                    - answer:
                        - label: System design
                          remote_id: '9001'
                        - label: Debugging
                          remote_id: '9002'
                      description: null
                      label: Which areas did you cover?
                      options:
                        - label: System design
                          remote_id: '9001'
                        - label: Debugging
                          remote_id: '9002'
                        - label: Pair programming
                          remote_id: '9003'
                      remote_id: question:4472
                      required: false
                      type: MULTI_SELECT
                    - answer: Ask more about experience with microservices
                      description: null
                      label: Anything the next interviewer should probe?
                      remote_id: question:4473
                      required: false
                      type: TEXT
                    - answer: 7.5
                      description: null
                      label: Years of relevant experience
                      remote_id: question:4474
                      required: false
                      type: NUMBER
                    - answer: '2026-09-01'
                      description: null
                      label: Earliest start date
                      remote_id: question:4475
                      required: false
                      type: DATE
                    - answer: null
                      description: null
                      label: Additional notes
                      remote_id: question:4476
                      required: false
                      type: TEXT
                  remote_created_at: '2022-08-07T14:01:29.196Z'
                  remote_updated_at: '2022-08-07T14:01:29.196Z'
                  remote_data: null
                  changed_at: '2022-08-07T14:01:29.196Z'
                  remote_deleted_at: null
                  author:
                    id: 26vafvWSRmbhNcxJYqjCzuJg
                    remote_id: '32'
                    first_name: John
                    last_name: Doe
                    email: john.doe@kombo.dev
      required:
        - status
        - data
  responses:
    ErrorResponseATS:
      description: The standard error response with the error codes for the ATS 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
                      - ATS.JOB_CLOSED
                      - ATS.APPLICATION_ALREADY_EXISTS
                    example: ATS.JOB_CLOSED
                    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.

````