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

> Add a screener question to a project. Supports up to 40 questions per project. Available types: `radio`, `checkbox`, `singleLineTextbox`, `multiLineTextbox`, and `sliderScale`.

# Create a screener question

## Supported question types

| Type                | Description             | Requires `answers` |
| ------------------- | ----------------------- | ------------------ |
| `radio`             | Single-choice selection | Yes                |
| `checkbox`          | Multi-choice selection  | Yes                |
| `singleLineTextbox` | Short text input        | No                 |
| `multiLineTextbox`  | Long text input         | No                 |
| `sliderScale`       | Slider with min/max     | No                 |


## OpenAPI

````yaml post /v1/projects/{projectId}/screener-questions
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:
    post:
      tags:
        - screener-questions
      summary: Create a screener question
      description: |-
        Only accepts one question at a time. Use /bulk for multiple questions.

        Question types and their valid `answerValue` codes:

          CHECKBOX (questionType: "checkbox"):
            answerValue: 1 → May Select
            answerValue: 2 → Must Select
            answerValue: 3 → Disqualify

          RADIO (questionType: "radio"):
            answerValue: 1 → Qualify
            answerValue: 2 → Disqualify

        Screener questions are limited to a maximum of 40 per project.
      operationId: ScreenerQuestionsController_create
      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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateRadioScreenerQuestionDto'
                - $ref: '#/components/schemas/CreateCheckboxScreenerQuestionDto'
                - $ref: '#/components/schemas/CreateTextboxScreenerQuestionDto'
                - $ref: '#/components/schemas/CreateSliderScaleScreenerQuestionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScreenerQuestion'
components:
  schemas:
    CreateRadioScreenerQuestionDto:
      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'
      required:
        - text
        - questionType
        - answers
      title: Radio Question
    CreateCheckboxScreenerQuestionDto:
      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'
      required:
        - text
        - questionType
        - answers
      title: Checkbox Question
    CreateTextboxScreenerQuestionDto:
      type: object
      properties:
        text:
          type: string
        isRequired:
          type: boolean
        questionType:
          $ref: '#/components/schemas/TextboxQuestionType'
      required:
        - text
        - questionType
      title: Textbox Question
    CreateSliderScaleScreenerQuestionDto:
      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
      required:
        - text
        - questionType
      title: Slider Scale Question
    ScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
        updatedAt:
          type: string
        questionType:
          $ref: '#/components/schemas/QuestionType'
        uid:
          type: string
        text:
          type: string
        answers:
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        isEnd:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        minValue:
          type: number
        maxValue:
          type: number
        step:
          type: number
        order:
          type: number
        warnings:
          type: array
          items:
            type: string
        id:
          type: string
      required:
        - createdAt
        - text
        - minValue
        - maxValue
        - step
        - 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
        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
    TextboxQuestionType:
      type: string
      default: singleLineTextbox
      enum:
        - singleLineTextbox
        - multiLineTextbox
        - numericBox
    SliderScaleQuestionType:
      type: string
      default: sliderScale
      enum:
        - sliderScale
    QuestionType:
      type: string
      enum:
        - radio
        - multiLineTextbox
        - checkbox
        - singleLineTextbox
        - numericBox
        - sliderScale
        - fileUpload
    ScreenerQuestionAnswer:
      type: object
      properties:
        createdAt:
          type: string
        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:
        - createdAt
        - uid
        - answerValue
        - id
    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'
      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

````