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

# List integration survey responses

> List respondent responses for an upstream survey. Returns normalized metadata; pass `include=data` to include opaque platform payloads. Pagination is cursor-based. Results are filtered by workspace `settings/integrations.response_data_access` (default `test` — only `mode: "test"`).



## OpenAPI

````yaml /openapi/program.openapi.json get /integrations/{integrationId}/surveys/{surveyId}/responses
openapi: 3.1.0
info:
  title: Questra Program API
  version: 0.0.1
  description: >-
    REST API for the Questra Program product. Browser users authenticate through
    Questra Auth SSO; automation uses workspace-scoped API keys (`Authorization:
    Bearer qpk_live_…`). API keys carry scopes enforced before handlers.
    Outbound webhooks follow Standard Webhooks (at-least-once delivery;
    consumers must be idempotent).
servers:
  - url: /v1
    description: Program API base path
security: []
paths:
  /integrations/{integrationId}/surveys/{surveyId}/responses:
    get:
      tags:
        - Integration survey responses
      summary: List integration survey responses
      description: >-
        List respondent responses for an upstream survey. Returns normalized
        metadata; pass `include=data` to include opaque platform payloads.
        Pagination is cursor-based. Results are filtered by workspace
        `settings/integrations.response_data_access` (default `test` — only
        `mode: "test"`).
      parameters:
        - schema:
            type: string
            minLength: 1
            example: community-decipher
          required: true
          name: integrationId
          in: path
        - schema:
            type: string
            minLength: 1
            description: Provider's opaque survey id for this integration.
          required: true
          description: Provider's opaque survey id for this integration.
          name: surveyId
          in: path
        - schema:
            type: integer
            exclusiveMinimum: 0
            maximum: 100
            description: Page size (default 25, max 100).
          required: false
          description: Page size (default 25, max 100).
          name: limit
          in: query
        - schema:
            type: string
            description: >-
              Opaque pagination cursor from a previous response
              `pagination.next_cursor`.
          required: false
          description: >-
            Opaque pagination cursor from a previous response
            `pagination.next_cursor`.
          name: cursor
          in: query
        - schema:
            allOf:
              - $ref: '#/components/schemas/IntegrationResponseStatus'
              - description: Filter by normalized response status.
          required: false
          description: Filter by normalized response status.
          name: status
          in: query
        - schema:
            allOf:
              - $ref: '#/components/schemas/IntegrationResponseMode'
              - description: >-
                  Filter by test vs production mode. Still subject to workspace
                  `response_data_access`.
          required: false
          description: >-
            Filter by test vs production mode. Still subject to workspace
            `response_data_access`.
          name: mode
          in: query
        - schema:
            type: string
            format: date-time
            description: Return responses with `updated_at` >= this instant (ISO 8601).
          required: false
          description: Return responses with `updated_at` >= this instant (ISO 8601).
          name: since
          in: query
        - schema:
            type: string
            format: date-time
            description: Return responses with `updated_at` <= this instant (ISO 8601).
          required: false
          description: Return responses with `updated_at` <= this instant (ISO 8601).
          name: until
          in: query
        - schema:
            type: string
            enum:
              - data
            description: Pass `data` to include the opaque platform payload.
          required: false
          description: Pass `data` to include the opaque platform payload.
          name: include
          in: query
      responses:
        '200':
          description: Paginated response list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationResponseRecordList'
        '400':
          description: Validation error (e.g. invalid cursor)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorBody'
        '403':
          description: Workspace response data access does not allow the requested mode
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: Integration or survey not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
components:
  schemas:
    IntegrationResponseStatus:
      type: string
      enum:
        - in_progress
        - complete
        - partial
        - terminated
    IntegrationResponseMode:
      type: string
      enum:
        - test
        - production
      description: >-
        Whether this is test or production respondent data. Workspace
        `response_data_access` gates which modes may be queried.
    IntegrationResponseRecordList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/IntegrationResponseRecordSummary'
        pagination:
          $ref: '#/components/schemas/CursorPagination'
      required:
        - data
        - pagination
    ValidationErrorBody:
      type: object
      properties:
        error:
          type: string
          enum:
            - validation_error
        message:
          type: string
        details: {}
      required:
        - error
    ErrorBody:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        resource:
          type: string
        slug:
          type: string
        file_id:
          type: string
        endpoint_id:
          type: string
        event_id:
          type: string
        delivery_id:
          type: string
        api_key_id:
          type: string
        integration_id:
          type: string
        audit_id:
          type: string
        status:
          type: string
        details: {}
        question_ids:
          type: array
          items:
            type: string
        survey_ids:
          type: array
          items:
            type: string
        revisions:
          type: array
          items:
            type: number
      required:
        - error
    IntegrationResponseRecordSummary:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          example: R_9K2mPqLx1aBcDeF
          description: Provider's opaque response id (RID, uuid, sess_*, etc.).
        survey_id:
          type: string
          minLength: 1
          description: Provider survey id (matches path `surveyId`).
        status:
          $ref: '#/components/schemas/IntegrationResponseStatus'
        mode:
          $ref: '#/components/schemas/IntegrationResponseMode'
        link_id:
          type:
            - string
            - 'null'
          description: Distribution link / invitation source id when available.
        content_revision:
          type:
            - string
            - 'null'
          description: >-
            Survey definition revision answered against (Publish program digest,
            Qualtrics version id, etc.). Null when unknown.
        started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            When the respondent started; null if the platform does not expose a
            start time.
        completed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the response finished; null while `in_progress`.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        data:
          type: object
          additionalProperties: {}
          description: Present only when `include=data` on the request.
      required:
        - id
        - survey_id
        - status
        - mode
        - link_id
        - content_revision
        - started_at
        - completed_at
        - created_at
        - updated_at
    CursorPagination:
      type: object
      properties:
        next_cursor:
          type:
            - string
            - 'null'
          description: >-
            Opaque cursor for the next page. Pass as `cursor` on the subsequent
            list request. Null when there is no next page.
        has_more:
          type: boolean
          description: True when another page is available via `next_cursor`.
      required:
        - next_cursor
        - has_more

````