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

# Search screener/survey responses for a study

> Get a paginated list of screener or survey submissions and their question-level responses for a study. Optionally include question definitions to map question IDs to labels.



## OpenAPI

````yaml https://api.rallyuxr.com/api/openapi post /studies/{studyId}/responses/search
openapi: 3.1.0
info:
  title: Rally UXR Developer Docs
  version: '1.0'
servers:
  - url: https://api.rallyuxr.com/api/public/v1
security:
  - bearerAuth: []
tags:
  - name: Forms
    description: Operations on Forms in your workspace
  - name: People
    description: Operations on Person's stored in your workspace
  - name: Person Properties
    description: Operations on workspace level Person Properties
  - name: Populations
    description: Operations on Populations in your workspace
  - name: Segments
    description: Operations on Segments in your workspace
  - name: Studies
    description: Operations on Studies in your workspace
  - name: Participants
    description: Operations on Participants in studies
  - name: Participant Status Events
    description: Poll participant status-change events across your workspace
  - name: Study Status Events
    description: Poll-based access to study status-change events in your workspace
  - name: Screener
    description: Operations on a study's screener
  - name: Consent Submissions
    description: Operations on Consent Submissions for studies
  - name: Incentives
    description: Operations on Incentives in your workspace
  - name: Messages
    description: Operations on Message activities in your workspace
  - name: Imports
    description: Operations on Imports in your workspace
  - name: Users
    description: Operations on Workspace Users
  - name: Teams
    description: Operations on Teams in your workspace
  - name: Backfills
    description: >-
      Routes that can be used to backfill data into Rally. If you'd like access
      to these apis, please reach out to your Customer Success rep
  - name: Person
    description: Deprecated, use People
paths:
  /studies/{studyId}/responses/search:
    post:
      tags:
        - Studies
      summary: Search screener/survey responses for a study
      description: >-
        Get a paginated list of screener or survey submissions and their
        question-level responses for a study. Optionally include question
        definitions to map question IDs to labels.
      parameters:
        - $ref: '#/components/parameters/StudyId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                includeQuestions:
                  type: boolean
                  default: false
                  description: >-
                    When true, the response includes a questions array (id,
                    name, order) for the study screener
                pageInfo:
                  allOf:
                    - $ref: '#/components/schemas/PageInfoArgs'
                    - description: >-
                        Pagination: size and optional startCursor (submission
                        id)
      responses:
        '200':
          description: The study responses
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ScreenerSubmissionWithResponses'
                  total:
                    type: number
                    exclusiveMinimum: 0
                    description: >-
                      The total number of items in your workspaces based on your
                      search parameters
                  pageInfo:
                    $ref: '#/components/schemas/PageInfoResponse'
                  questions:
                    type: array
                    items:
                      $ref: '#/components/schemas/ScreenerQuestionDefinition'
                    description: >-
                      Present when includeQuestions was true on the request;
                      maps screenerQuestionId in responses to question text
                required:
                  - results
                  - total
                  - pageInfo
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            text/plain:
              schema:
                type: string
                example: Unauthorized
        '403':
          description: Forbidden
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            text/plain:
              schema:
                type: string
                example: Forbidden
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                type: string
                example: '{Resource} not found'
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              $ref: '#/components/headers/Retry-After'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            text/plain:
              schema:
                type: string
                example: Too Many Requests
        '500':
          description: Internal Server Error
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            text/plain:
              schema:
                type: string
                example: Internal Server Error
      security:
        - bearerAuth: []
components:
  parameters:
    StudyId:
      schema:
        $ref: '#/components/schemas/StudyId'
      required: true
      name: studyId
      in: path
  schemas:
    PageInfoArgs:
      type: object
      properties:
        startCursor:
          type: string
          description: The cursor to start from
        size:
          type: number
          exclusiveMinimum: 0
          maximum: 1000
          default: 25
          description: The number of items to return
          example: 10
      description: >-
        Pagination arguments. Use startCursor from the result of the endCursor
        of the response to get the next page. Pagination in reverse is not
        currently supported
      example:
        size: 10
    ScreenerSubmissionWithResponses:
      type: object
      properties:
        submissionId:
          type: string
          description: The ID of the screener submission
        personId:
          type: string
          description: The ID of the person who submitted
        participantId:
          type:
            - string
            - 'null'
          description: The ID of the participant if linked to the study
        state:
          $ref: '#/components/schemas/ScreenerSubmissionState'
        submittedAt:
          type: string
          format: date-time
          description: When the screener was submitted
        responses:
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionResponseItem'
          description: The question-level responses for this submission
      required:
        - submissionId
        - personId
        - participantId
        - state
        - submittedAt
        - responses
      description: A screener/survey submission with all of its question responses
    PageInfoResponse:
      type: object
      properties:
        hasNextPage:
          type: boolean
          description: Whether there are additional pages of results
        hasPreviousPage:
          type: boolean
          description: Whether there is a prior page of results
        startCursor:
          type: string
          description: The start of the current page of results
        endCursor:
          type: string
          description: The end of the current page of results. Use to fetch the next page
      required:
        - hasNextPage
        - hasPreviousPage
      description: Information about the current page
    ScreenerQuestionDefinition:
      type: object
      properties:
        screenerQuestionId:
          type: string
          description: The ID of the screener question
        name:
          type: string
          description: The question text shown to participants
        order:
          type: number
          description: Display order of the question on the screener
      required:
        - screenerQuestionId
        - name
        - order
      description: Published screener question metadata for interpreting responses
    BadRequestError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              path:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: number
            required:
              - message
              - path
      required:
        - errors
      description: Error response for a bad request with details on what was invalid
    StudyId:
      type: string
    ScreenerSubmissionState:
      type: string
      enum:
        - NONE
        - QUALIFIED
        - DISQUALIFIED
      description: The qualification state of the screener submission
    ScreenerQuestionResponseItem:
      type: object
      properties:
        screenerQuestionId:
          type: string
          description: The ID of the screener question
        values:
          type: array
          items:
            type: string
          description: The response values (e.g. text, selected option values)
        selectedOptionIds:
          type: array
          items:
            type: string
          description: The IDs of the selected options for multi-choice questions
      required:
        - screenerQuestionId
        - values
        - selectedOptionIds
      description: A single screener or survey question response
  headers:
    X-RateLimit-Limit:
      description: The maximum number of requests the client is allowed to make.
      schema:
        type: integer
        format: int32
    X-RateLimit-Remaining:
      description: >-
        The number of requests remaining for the client in the current time
        window.
      schema:
        type: integer
        format: int32
    X-RateLimit-Reset:
      description: >-
        The time at which the current time window ends (in Unix timestamp
        format).
      schema:
        type: integer
        format: int32
    Retry-After:
      description: The number of seconds until the client should retry the request.
      schema:
        type: integer
        format: int32
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````