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

> Update a screener question's text, type, or answer values. Only the fields you include are modified.

# Update screener question



## OpenAPI

````yaml patch /v1/projects/{projectId}/screener-questions/{screenerQuestionId}
openapi: 3.0.0
info:
  title: Partner API
  description: Public API for partner integrations
  version: '1.0'
  contact: {}
servers:
  - url: https://api-staging.respondent.io
security: []
tags: []
paths:
  /v1/projects/{projectId}/screener-questions/{screenerQuestionId}:
    patch:
      tags:
        - screener-questions
      summary: Update screener question
      operationId: ScreenerQuestionsController_update
      parameters:
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
        - name: x-api-secret
          in: header
          required: true
          schema:
            type: string
        - name: projectId
          required: true
          in: path
          schema:
            type: string
        - name: screenerQuestionId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/UpdateRadioScreenerQuestionDto'
                - $ref: '#/components/schemas/UpdateCheckboxScreenerQuestionDto'
                - $ref: '#/components/schemas/UpdateTextboxScreenerQuestionDto'
                - $ref: '#/components/schemas/UpdateSliderScaleScreenerQuestionDto'
                - $ref: '#/components/schemas/UpdateFileUploadScreenerQuestionDto'
                - $ref: '#/components/schemas/UpdateRankScreenerQuestionDto'
                - $ref: '#/components/schemas/UpdateMatrixScreenerQuestionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/RadioScreenerQuestion'
                  - $ref: '#/components/schemas/CheckboxScreenerQuestion'
                  - $ref: '#/components/schemas/TextboxScreenerQuestion'
                  - $ref: '#/components/schemas/SliderScaleScreenerQuestion'
                  - $ref: '#/components/schemas/FileUploadScreenerQuestion'
                  - $ref: '#/components/schemas/RankScreenerQuestion'
                  - $ref: '#/components/schemas/MatrixScreenerQuestion'
                  - $ref: '#/components/schemas/EndOfSurveyScreenerQuestion'
components:
  schemas:
    UpdateRadioScreenerQuestionDto:
      type: object
      properties:
        text:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        questionType:
          $ref: '#/components/schemas/RadioQuestionType'
        answers:
          type: array
          items:
            $ref: '#/components/schemas/CreateRadioScreenerQuestionAnswerDto'
      title: Radio Question
    UpdateCheckboxScreenerQuestionDto:
      type: object
      properties:
        text:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        questionType:
          $ref: '#/components/schemas/CheckboxQuestionType'
        answers:
          type: array
          items:
            $ref: '#/components/schemas/CreateCheckboxScreenerQuestionAnswerDto'
        matchType:
          $ref: '#/components/schemas/CheckboxMatchType'
      title: Checkbox Question
    UpdateTextboxScreenerQuestionDto:
      type: object
      properties:
        text:
          type: string
        isRequired:
          type: boolean
        questionType:
          $ref: '#/components/schemas/TextboxQuestionType'
      title: Textbox Question
    UpdateSliderScaleScreenerQuestionDto:
      type: object
      properties:
        text:
          type: string
        isRequired:
          type: boolean
        questionType:
          $ref: '#/components/schemas/SliderScaleQuestionType'
        minValue:
          type: number
          default: 0
        maxValue:
          type: number
          default: 100
        step:
          type: number
          default: 10
      title: Slider Scale Question
    UpdateFileUploadScreenerQuestionDto:
      type: object
      properties:
        text:
          type: string
        isRequired:
          type: boolean
        questionType:
          $ref: '#/components/schemas/FileUploadQuestionType'
      title: File Upload Question
    UpdateRankScreenerQuestionDto:
      type: object
      properties:
        text:
          type: string
        isRequired:
          type: boolean
        questionType:
          $ref: '#/components/schemas/RankQuestionType'
        answers:
          type: array
          items:
            $ref: '#/components/schemas/CreateRankScreenerQuestionAnswerDto'
        randomizeOrder:
          type: boolean
          description: |-
            Whether to randomize option display order for each participant.
            Defaults to `true` when omitted.
          default: true
      title: Rank Question
    UpdateMatrixScreenerQuestionDto:
      type: object
      properties:
        text:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        questionType:
          $ref: '#/components/schemas/MatrixQuestionType'
        answers:
          description: The shared column scale.
          type: array
          items:
            $ref: '#/components/schemas/CreateMatrixScreenerQuestionAnswerDto'
        matrixRows:
          description: The row items.
          type: array
          items:
            $ref: '#/components/schemas/CreateMatrixScreenerQuestionRowDto'
        matrixMatchType:
          $ref: '#/components/schemas/MatrixMatchType'
        matrixSelectionMode:
          $ref: '#/components/schemas/MatrixSelectionMode'
        randomizeOrder:
          type: boolean
          description: >-
            Whether to randomize row display order for each participant.
            Defaults to

            `false` when omitted — existing matrices must not start shuffling.
          default: false
      title: Matrix Question
    RadioScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            May be absent on questions created before 2021, which predate
            timestamps.
        updatedAt:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        order:
          type: number
        randomizeOrder:
          type: boolean
        warnings:
          type: array
          items:
            type: string
        uid:
          type: string
        text:
          type: string
        isEnd:
          oneOf:
            - type: boolean
              enum:
                - false
          description: >-
            Always `false` on real questions. See `EndOfSurveyScreenerQuestion`
            for the auto-generated end-of-screener sentinel.
        answers:
          description: >-
            The options a participant chooses between. Always present; an empty
            array for question types that have no options (`singleLineTextbox`,
            `multiLineTextbox`, `numericBox`, `sliderScale`).
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        questionType:
          type: string
          enum:
            - radio
        id:
          type: string
      required:
        - uid
        - text
        - isEnd
        - answers
        - questionType
        - id
    CheckboxScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            May be absent on questions created before 2021, which predate
            timestamps.
        updatedAt:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        order:
          type: number
        randomizeOrder:
          type: boolean
        warnings:
          type: array
          items:
            type: string
        uid:
          type: string
        text:
          type: string
        isEnd:
          oneOf:
            - type: boolean
              enum:
                - false
          description: >-
            Always `false` on real questions. See `EndOfSurveyScreenerQuestion`
            for the auto-generated end-of-screener sentinel.
        answers:
          description: >-
            The options a participant chooses between. Always present; an empty
            array for question types that have no options (`singleLineTextbox`,
            `multiLineTextbox`, `numericBox`, `sliderScale`).
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        questionType:
          type: string
          enum:
            - checkbox
        matchType:
          $ref: '#/components/schemas/CheckboxMatchType'
        id:
          type: string
      required:
        - uid
        - text
        - isEnd
        - answers
        - questionType
        - id
    TextboxScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            May be absent on questions created before 2021, which predate
            timestamps.
        updatedAt:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        order:
          type: number
        randomizeOrder:
          type: boolean
        warnings:
          type: array
          items:
            type: string
        uid:
          type: string
        text:
          type: string
        isEnd:
          oneOf:
            - type: boolean
              enum:
                - false
          description: >-
            Always `false` on real questions. See `EndOfSurveyScreenerQuestion`
            for the auto-generated end-of-screener sentinel.
        answers:
          description: >-
            The options a participant chooses between. Always present; an empty
            array for question types that have no options (`singleLineTextbox`,
            `multiLineTextbox`, `numericBox`, `sliderScale`).
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        questionType:
          type: string
          enum:
            - singleLineTextbox
            - multiLineTextbox
            - numericBox
        id:
          type: string
      required:
        - uid
        - text
        - isEnd
        - answers
        - questionType
        - id
    SliderScaleScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            May be absent on questions created before 2021, which predate
            timestamps.
        updatedAt:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        order:
          type: number
        randomizeOrder:
          type: boolean
        warnings:
          type: array
          items:
            type: string
        uid:
          type: string
        text:
          type: string
        isEnd:
          oneOf:
            - type: boolean
              enum:
                - false
          description: >-
            Always `false` on real questions. See `EndOfSurveyScreenerQuestion`
            for the auto-generated end-of-screener sentinel.
        answers:
          description: >-
            The options a participant chooses between. Always present; an empty
            array for question types that have no options (`singleLineTextbox`,
            `multiLineTextbox`, `numericBox`, `sliderScale`).
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        questionType:
          type: string
          enum:
            - sliderScale
        minValue:
          type: number
        maxValue:
          type: number
        step:
          type: number
        id:
          type: string
      required:
        - uid
        - text
        - isEnd
        - answers
        - questionType
        - minValue
        - maxValue
        - step
        - id
    FileUploadScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            May be absent on questions created before 2021, which predate
            timestamps.
        updatedAt:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        order:
          type: number
        randomizeOrder:
          type: boolean
        warnings:
          type: array
          items:
            type: string
        uid:
          type: string
        text:
          type: string
        isEnd:
          oneOf:
            - type: boolean
              enum:
                - false
          description: >-
            Always `false` on real questions. See `EndOfSurveyScreenerQuestion`
            for the auto-generated end-of-screener sentinel.
        answers:
          description: >-
            The options a participant chooses between. Always present; an empty
            array for question types that have no options (`singleLineTextbox`,
            `multiLineTextbox`, `numericBox`, `sliderScale`).
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        questionType:
          type: string
          enum:
            - fileUpload
        id:
          type: string
      required:
        - uid
        - text
        - isEnd
        - answers
        - questionType
        - id
    RankScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            May be absent on questions created before 2021, which predate
            timestamps.
        updatedAt:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        order:
          type: number
        randomizeOrder:
          type: boolean
        warnings:
          type: array
          items:
            type: string
        uid:
          type: string
        text:
          type: string
        isEnd:
          oneOf:
            - type: boolean
              enum:
                - false
          description: >-
            Always `false` on real questions. See `EndOfSurveyScreenerQuestion`
            for the auto-generated end-of-screener sentinel.
        answers:
          description: >-
            The options a participant chooses between. Always present; an empty
            array for question types that have no options (`singleLineTextbox`,
            `multiLineTextbox`, `numericBox`, `sliderScale`).
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        questionType:
          type: string
          enum:
            - rank
        id:
          type: string
      required:
        - uid
        - text
        - isEnd
        - answers
        - questionType
        - id
    MatrixScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            May be absent on questions created before 2021, which predate
            timestamps.
        updatedAt:
          type: string
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        order:
          type: number
        randomizeOrder:
          type: boolean
        warnings:
          type: array
          items:
            type: string
        uid:
          type: string
        text:
          type: string
        isEnd:
          oneOf:
            - type: boolean
              enum:
                - false
          description: >-
            Always `false` on real questions. See `EndOfSurveyScreenerQuestion`
            for the auto-generated end-of-screener sentinel.
        answers:
          description: >-
            The options a participant chooses between. Always present; an empty
            array for question types that have no options (`singleLineTextbox`,
            `multiLineTextbox`, `numericBox`, `sliderScale`).
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        questionType:
          type: string
          enum:
            - matrix
        matrixRows:
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionMatrixRow'
        matrixMatchType:
          $ref: '#/components/schemas/MatrixMatchType'
        matrixSelectionMode:
          $ref: '#/components/schemas/MatrixSelectionMode'
        id:
          type: string
      required:
        - uid
        - text
        - isEnd
        - answers
        - questionType
        - matrixRows
        - id
    EndOfSurveyScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            May be absent on questions created before 2021, which predate
            timestamps.
        updatedAt:
          type: string
        text:
          type: string
        isEnd:
          oneOf:
            - type: boolean
              enum:
                - true
          description: >-
            Always `true`. Discriminates the sentinel from real questions: skip
            entries with `isEnd: true` when rendering or counting questions.
        answers:
          description: >-
            Empty when present, but absent on roughly half of sentinels — do not
            assume it is an array.
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        uid:
          type: string
          nullable: true
          description: >-
            Always `null` or absent — the sentinel is not a real question. Use
            `isEnd` to detect it.
        order:
          type: number
          nullable: true
          description: >-
            Always `null` or absent — the sentinel is always the last element
            regardless.
        id:
          type: string
      required:
        - text
        - isEnd
        - id
    RadioQuestionType:
      type: string
      default: radio
      enum:
        - radio
    CreateRadioScreenerQuestionAnswerDto:
      type: object
      properties:
        text:
          type: string
          description: Required  unless `isOther`, then text will be set to 'Other'
        goToQuestionUid:
          type: string
          description: Skip logic for radio questions. Uid of question to skip to.
        isOther:
          type: boolean
          description: Is 'Other' answer with comment field
        answerValue:
          $ref: '#/components/schemas/RadioAnswerValue'
      required:
        - answerValue
    ScreenerQuestionSkipLogic:
      type: object
      properties:
        answerUid:
          type: string
        goToQuestionUid:
          type: string
        rowUid:
          type: string
          description: >-
            Set only for MATRIX questions — the matrix row this criterion
            applies to.

            `answerUid` holds the column uid.
        skipLogicType:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogicType'
        multipleAnswers:
          type: array
          items:
            $ref: '#/components/schemas/SkipLogicMultipleAnswer'
        multipleAnswersBoolType:
          $ref: '#/components/schemas/SkipLogicMultipleAnswersBoolType'
      required:
        - answerUid
    CheckboxQuestionType:
      type: string
      default: checkbox
      enum:
        - checkbox
    CreateCheckboxScreenerQuestionAnswerDto:
      type: object
      properties:
        text:
          type: string
          description: Required  unless `isOther`, then text will be set to 'Other'
        isOther:
          type: boolean
          description: Is 'Other' answer with comment field
        answerValue:
          $ref: '#/components/schemas/CheckboxAnswerValue'
      required:
        - answerValue
    CheckboxMatchType:
      type: string
      description: |-
        How the "Must Select" answers (`answerValue: 2`) combine. `all` requires
        every "Must Select" answer to be chosen; `any` qualifies once at least
        one is chosen. Absent on questions created before this field existed,
        which behave as `all`.
      enum:
        - all
        - any
    TextboxQuestionType:
      type: string
      default: singleLineTextbox
      enum:
        - singleLineTextbox
        - multiLineTextbox
        - numericBox
    SliderScaleQuestionType:
      type: string
      default: sliderScale
      enum:
        - sliderScale
    FileUploadQuestionType:
      type: string
      default: fileUpload
      enum:
        - fileUpload
    RankQuestionType:
      type: string
      default: rank
      enum:
        - rank
    CreateRankScreenerQuestionAnswerDto:
      type: object
      properties:
        text:
          type: string
      required:
        - text
    MatrixQuestionType:
      type: string
      default: matrix
      enum:
        - matrix
    CreateMatrixScreenerQuestionAnswerDto:
      type: object
      properties:
        uid:
          type: string
        text:
          type: string
      required:
        - uid
        - text
    CreateMatrixScreenerQuestionRowDto:
      type: object
      properties:
        uid:
          type: string
        text:
          type: string
        qualifyingAnswerUids:
          type: array
          items:
            type: string
        mustSelectAnswerUids:
          description: >-
            Multi-mode only. Columns the participant must select for the row to
            qualify.
          type: array
          items:
            type: string
        disqualifyAnswerUids:
          description: Multi-mode only. Columns that disqualify the row when selected.
          type: array
          items:
            type: string
      required:
        - uid
        - text
    MatrixMatchType:
      type: string
      enum:
        - all
        - any
    MatrixSelectionMode:
      type: string
      enum:
        - single
        - multi
    ScreenerQuestionAnswer:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            May be absent on answer options created before 2021, which predate
            timestamps.
        updatedAt:
          type: string
        uid:
          type: string
        text:
          type: string
          description: Required  unless `isOther`, then text will be set to 'Other'
        answerValue:
          type: number
          description: |-
            CHECKBOX: {
                    id: 3,
                    answerValues: [
                      { id: 1, text: 'May Select' },
                      { id: 2, text: 'Must Select' },
                      { id: 3, text: 'Disqualify' },
                    ],
                  },
                   RADIO: {
                    id: 1,
                    answerValues: [
                      { id: 1, text: 'Qualify' },
                      { id: 2, text: 'Disqualify' },
                    ],
                  },
        goToQuestionUid:
          type: string
          description: Skip logic for radio questions. Uid of question to skip to.
        isOther:
          type: boolean
          description: Is 'Other' answer with comment field
        id:
          type: string
      required:
        - uid
        - answerValue
        - id
    ScreenerQuestionMatrixRow:
      type: object
      properties:
        uid:
          type: string
        text:
          type: string
        qualifyingAnswerUids:
          type: array
          items:
            type: string
        mustSelectAnswerUids:
          description: >-
            Multi-mode only. Columns the participant must select for the row to
            qualify.
          type: array
          items:
            type: string
        disqualifyAnswerUids:
          description: Multi-mode only. Columns that disqualify the row when selected.
          type: array
          items:
            type: string
      required:
        - uid
        - text
    RadioAnswerValue:
      type: number
      description: |-
        [

         QUALIFY: 1

         DISQUALIFY: 2

        ]
      enum:
        - 1
        - 2
    ScreenerQuestionSkipLogicType:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/SkipLogicTypeId'
        text:
          $ref: '#/components/schemas/SkipLogicType'
      required:
        - id
        - text
    SkipLogicMultipleAnswer:
      type: object
      properties:
        answer:
          type: string
        logicType:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogicType'
        rowUid:
          type: string
          description: >-
            Set only for MATRIX questions — the matrix row this criterion
            applies to.

            `answer` holds the column uid.
      required:
        - answer
        - logicType
    SkipLogicMultipleAnswersBoolType:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/MultipleAnswersBoolTypeId'
        text:
          $ref: '#/components/schemas/MultipleAnswersBoolType'
      required:
        - id
        - text
    CheckboxAnswerValue:
      type: number
      description: |-
        [

         MAY_SELECT: 1

         MUST_SELECT: 2

         DISQUALIFY: 3

        ]
      enum:
        - 1
        - 2
        - 3
    SkipLogicTypeId:
      type: number
      description: |-
        [

         SELECTED: 1

         NOT_SELECTED: 2

        ]
      enum:
        - 1
        - 2
    SkipLogicType:
      type: string
      enum:
        - Selected
        - Not Selected
    MultipleAnswersBoolTypeId:
      type: number
      description: |-
        [

         AND: 1

         OR: 2

        ]
      enum:
        - 1
        - 2
    MultipleAnswersBoolType:
      type: string
      enum:
        - AND
        - OR

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.