Constructor.io Quizzes API

The Quizzes API from Constructor.io — 1 operation(s) for quizzes.

Operations 4

GET /v1/quizzes/{quiz_id} Retrieve quiz #
PUT /v1/quizzes/{quiz_id} Create or replace quiz #
PATCH /v1/quizzes/{quiz_id} Update quiz #
DELETE /v1/quizzes/{quiz_id} Delete quiz #

Documentation

📖
APIReference
https://docs.constructor.com/reference/search-search-results
📖
APIReference
https://docs.constructor.com/reference/autocomplete-autocomplete-results
📖
APIReference
https://docs.constructor.com/reference/browse-browse-results
📖
APIReference
https://docs.constructor.com/reference/recommendations-recommendation-results
📖
APIReference
https://docs.constructor.com/reference/image-search-image-search-results
📖
APIReference
https://docs.constructor.com/reference/v1-asa-retrieve-intent
📖
APIReference
https://docs.constructor.com/reference/catalog-management-introduction
📖
APIReference
https://docs.constructor.com/reference/v2-batching-items-update-items
📖
APIReference
https://docs.constructor.com/reference/configuration-facets
📖
APIReference
https://docs.constructor.com/reference/searchandising-searchandising-for-search
📖
APIReference
https://docs.constructor.com/reference/v1-quizzes-get-next-question
📖
APIReference
https://docs.constructor.com/reference/offsite-discovery-recommendations-offsite-discovery-results
📖
APIReference
https://docs.constructor.com/reference/v1-engagements-update
📖
APIReference
https://docs.constructor.com/reference/v2-display-ads-retrieve-display-ads
📖
APIReference
https://docs.constructor.com/reference/v1-product-details-get-items
📖
APIReference
https://docs.constructor.com/reference/v1-offline-behavioral-actions-create-actions
📖
APIReference
https://docs.constructor.com/reference/v1-user-profile-create-preferences

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/constructorio-quizzes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

constructorio-quizzes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@constructor.io
  title: Configuration Quizzes API
  version: '0.1'
servers:
- url: https://ac.cnstrc.com
security: []
tags:
- name: Quizzes
paths:
  /v1/quizzes/{quiz_id}:
    get:
      tags:
      - Quizzes
      operationId: v1-quizzes-retrieve-quiz
      summary: Retrieve quiz
      description: '**🔐 This endpoint requires [HTTP authentication](https://docs.constructor.com/reference/main-authentication) (either [Basic](https://docs.constructor.com/reference/main-authentication#basic-authentication) or [Bearer](https://docs.constructor.com/reference/main-authentication#bearer-authentication)).**

        For authenticating with Bearer token, required scopes are: `quizzes(r)`.


        Retrieve a quiz.'
      parameters:
      - name: quiz_id
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          title: Key
          description: The key of the index to use.
          maxLength: 100
          minLength: 1
          examples:
          - key_K2pX7vBnU0bgA5xp
          type: string
        required: true
      - name: section
        in: query
        schema:
          title: Section
          description: The section of the index to use. Defaults to `Products`.
          maxLength: 100
          minLength: 1
          examples:
          - Products
          - Search Suggestions
          type: string
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizGetResponse'
        '400':
          description: Validation Error
        '401':
          description: Credentials are not passed or action is forbidden.
        '403':
          description: The supplied token does not have the required permissions.
        '404':
          description: Not Found
        '429':
          description: Rate limit breached
      security:
      - http_basic_auth: []
      - http_bearer_auth:
        - quizzes(r)
    put:
      tags:
      - Quizzes
      operationId: v1-quizzes-create-or-replace-quiz
      summary: Create or replace quiz
      description: '**🔐 This endpoint requires [HTTP authentication](https://docs.constructor.com/reference/main-authentication) (either [Basic](https://docs.constructor.com/reference/main-authentication#basic-authentication) or [Bearer](https://docs.constructor.com/reference/main-authentication#bearer-authentication)).**

        For authenticating with Bearer token, required scopes are: `quizzes(w)`.


        Create or replace an existing quiz.'
      parameters:
      - name: quiz_id
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          title: Key
          description: The key of the index to use.
          maxLength: 100
          minLength: 1
          examples:
          - key_K2pX7vBnU0bgA5xp
          type: string
        required: true
      - name: section
        in: query
        schema:
          title: Section
          description: The section of the index to use. Defaults to `Products`.
          maxLength: 100
          minLength: 1
          examples:
          - Products
          - Search Suggestions
          type: string
        required: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuizPutRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizPutResponse'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizPutResponse'
        '400':
          description: Validation Error
        '401':
          description: Credentials are not passed or action is forbidden.
        '403':
          description: The supplied token does not have the required permissions.
        '429':
          description: Rate limit breached
      security:
      - http_basic_auth: []
      - http_bearer_auth:
        - quizzes(w)
    patch:
      tags:
      - Quizzes
      operationId: v1-quizzes-update-quiz
      summary: Update quiz
      description: '**🔐 This endpoint requires [HTTP authentication](https://docs.constructor.com/reference/main-authentication) (either [Basic](https://docs.constructor.com/reference/main-authentication#basic-authentication) or [Bearer](https://docs.constructor.com/reference/main-authentication#bearer-authentication)).**

        For authenticating with Bearer token, required scopes are: `quizzes(w)`.


        Update a quiz. Data sent through the request body will be merged with existing quiz. Full validation (e.g. logic) will be performed over the merged quiz.'
      parameters:
      - name: quiz_id
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          title: Key
          description: The key of the index to use.
          maxLength: 100
          minLength: 1
          examples:
          - key_K2pX7vBnU0bgA5xp
          type: string
        required: true
      - name: section
        in: query
        schema:
          title: Section
          description: The section of the index to use. Defaults to `Products`.
          maxLength: 100
          minLength: 1
          examples:
          - Products
          - Search Suggestions
          type: string
        required: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuizPatchRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizPatchResponse'
        '400':
          description: Validation Error
        '401':
          description: Credentials are not passed or action is forbidden.
        '403':
          description: The supplied token does not have the required permissions.
        '404':
          description: Not Found
        '429':
          description: Rate limit breached
      security:
      - http_basic_auth: []
      - http_bearer_auth:
        - quizzes(w)
    delete:
      tags:
      - Quizzes
      operationId: v1-quizzes-delete-quiz
      summary: Delete quiz
      description: '**🔐 This endpoint requires [HTTP authentication](https://docs.constructor.com/reference/main-authentication) (either [Basic](https://docs.constructor.com/reference/main-authentication#basic-authentication) or [Bearer](https://docs.constructor.com/reference/main-authentication#bearer-authentication)).**

        For authenticating with Bearer token, required scopes are: `quizzes(w)`.


        Delete a quiz.'
      parameters:
      - name: quiz_id
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          title: Key
          description: The key of the index to use.
          maxLength: 100
          minLength: 1
          examples:
          - key_K2pX7vBnU0bgA5xp
          type: string
        required: true
      - name: section
        in: query
        schema:
          title: Section
          description: The section of the index to use. Defaults to `Products`.
          maxLength: 100
          minLength: 1
          examples:
          - Products
          - Search Suggestions
          type: string
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuizDeleteResponse'
        '400':
          description: Validation Error
        '401':
          description: Credentials are not passed or action is forbidden.
        '403':
          description: The supplied token does not have the required permissions.
        '404':
          description: Not Found
        '429':
          description: Rate limit breached
      security:
      - http_basic_auth: []
      - http_bearer_auth:
        - quizzes(w)
components:
  schemas:
    ResultsConfig:
      title: ResultsConfig
      type: object
      properties:
        desktop:
          $ref: '#/components/schemas/DeviceConfig'
      required:
      - desktop
    QuizPatchResponse:
      title: QuizPatchResponse
      type: object
      properties:
        display_name:
          title: Display Name
          description: Name of the quiz to be displayed to end users
          examples:
          - Product Finder Quiz
          - Size Selector
          minLength: 1
          maxLength: 200
          type: string
        active:
          title: Active
          description: Identifies whether quiz should be displayed or not
          default: true
          examples:
          - true
          - false
          type: boolean
        id:
          title: ID
          description: ID of the quiz.
          minLength: 1
          maxLength: 255
          type: string
        questions:
          title: Questions
          description: A list of questions of the quiz
          type: array
          items:
            discriminator:
              propertyName: question_type
              mapping:
                single: '#/components/schemas/SingleQuestionResponse'
                multiple: '#/components/schemas/MultipleQuestionResponse'
                single_filter_value: '#/components/schemas/SingleFilterValueQuestionResponse'
                multiple_filter_values: '#/components/schemas/MultipleFilterValuesQuestionResponse'
                open: '#/components/schemas/OpenQuestionResponse'
                cover: '#/components/schemas/CoverQuestionResponse'
                free_form: '#/components/schemas/FreeFormQuestionResponse'
            oneOf:
            - $ref: '#/components/schemas/SingleQuestionResponse'
            - $ref: '#/components/schemas/MultipleQuestionResponse'
            - $ref: '#/components/schemas/SingleFilterValueQuestionResponse'
            - $ref: '#/components/schemas/MultipleFilterValuesQuestionResponse'
            - $ref: '#/components/schemas/OpenQuestionResponse'
            - $ref: '#/components/schemas/CoverQuestionResponse'
            - $ref: '#/components/schemas/FreeFormQuestionResponse'
        logic:
          title: Logic
          description: Logic that is used when going through quiz
          type: object
          additionalProperties:
            type: array
            items: {}
        created_at:
          title: Created At
          description: Quiz creation date in ISO 8601 format
          type: string
          format: date-time
        updated_at:
          title: Updated At
          description: Last quiz update date in ISO 8601 format.
          type: string
          format: date-time
        results_config:
          title: Results Config
          description: Results configuration for the quiz
          allOf:
          - $ref: '#/components/schemas/ResultsConfig'
        metadata_json:
          title: Metadata Json
          description: Metadata related to the quiz and its questions.
          type: object
        pre_filter_expression:
          title: Pre Filter Expression
          description: Pre-filter expression to be applied to all questions.
          type: object
      required:
      - display_name
      - id
      - created_at
      - updated_at
      additionalProperties: false
    ResponseSummaryConfig:
      title: ResponseSummaryConfig
      type: object
      properties:
        text:
          title: Text
          minLength: 1
          maxLength: 2000
          type: string
        is_active:
          title: Is Active
          type: boolean
        items_separator:
          title: Items Separator
          minLength: 1
          maxLength: 2000
          type: string
        last_separator:
          title: Last Separator
          minLength: 1
          maxLength: 2000
          type: string
      required:
      - text
      - is_active
      - items_separator
      - last_separator
    QuizQuestionAttributeCondition:
      title: QuizQuestionAttributeCondition
      enum:
      - and
      - or
      type: string
    OpenQuestion:
      title: OpenQuestion
      type: object
      properties:
        title:
          title: Title
          description: Title of the question.
          maxLength: 255
          minLength: 1
          examples:
          - What is your favorite color?
          - What size do you need?
          type: string
        question_type:
          title: Question Type
          enum:
          - open
          type: string
        description:
          title: Description
          description: Description of the question.
          maxLength: 2047
          minLength: 1
          examples:
          - Choose your preferred color
          type: string
        is_skippable:
          title: Is Skippable
          description: Identifies whether the question can be skipped or not
          default: false
          examples:
          - false
          - true
          type: boolean
        cta_text:
          title: Cta Text
          description: The name of the call-to-action button (e.g. next).
          examples:
          - Next
          - Continue
          type: string
        images:
          title: Images
          description: Images attached to the question.
          allOf:
          - $ref: '#/components/schemas/Images'
        internal_name:
          title: Internal Name
          description: Internal name of a question, this is for internal use only.
          examples:
          - q1_color
          - q2_size
          type: string
        bucket_id:
          title: Bucket Id
          description: Identifier for the bucket this question belongs to. Questions with the same bucket_id are combined using OR.
          examples:
          - 1
          - 2
          type: integer
        question_key:
          title: Key
          description: Unique ID of the question
          type: string
          format: uuid
        options:
          title: Options
          minItems: 0
          maxItems: 0
          type: array
          items:
            $ref: '#/components/schemas/Option'
        input_placeholder:
          title: Input Placeholder
          description: Placeholder for open-text question input.
          maxLength: 255
          minLength: 1
          type: string
      required:
      - title
      - question_type
      additionalProperties: false
    FreeFormQuestionResponse:
      title: FreeFormQuestionResponse
      type: object
      properties:
        title:
          title: Title
          description: Title of the question.
          maxLength: 255
          minLength: 1
          examples:
          - What is your favorite color?
          - What size do you need?
          type: string
        question_type:
          title: Question Type
          enum:
          - free_form
          type: string
        description:
          title: Description
          description: Description of the question.
          maxLength: 2047
          minLength: 1
          examples:
          - Choose your preferred color
          type: string
        is_skippable:
          title: Is Skippable
          description: Identifies whether the question can be skipped or not
          default: false
          examples:
          - false
          - true
          type: boolean
        cta_text:
          title: Cta Text
          description: The name of the call-to-action button (e.g. next).
          examples:
          - Next
          - Continue
          type: string
        images:
          title: Images
          description: Images attached to the question.
          allOf:
          - $ref: '#/components/schemas/Images'
        internal_name:
          title: Internal Name
          description: Internal name of a question, this is for internal use only.
          examples:
          - q1_color
          - q2_size
          type: string
        bucket_id:
          title: Bucket Id
          description: Identifier for the bucket this question belongs to. Questions with the same bucket_id are combined using OR.
          examples:
          - 1
          - 2
          type: integer
        key:
          title: Question Key
          description: Unique ID of the question
          type: string
          format: uuid
        options:
          title: Options
          minItems: 0
          maxItems: 0
          type: array
          items:
            $ref: '#/components/schemas/OptionResponse'
        attribute_condition:
          title: Attribute Condition
          description: Always `null`
          type:
          - string
          - 'null'
          default: 'null'
        input_placeholder:
          title: Input Placeholder
          description: Placeholder for free-form question input.
          maxLength: 255
          minLength: 1
          type: string
        priority:
          title: Priority
          description: Always `null`
          type:
          - string
          - 'null'
          default: 'null'
        filter_name:
          title: Filter Name
          description: Always `null`
          type:
          - string
          - 'null'
          default: 'null'
        filter_sort_option:
          title: Filter Sort Option
          description: Filter sort option. Always `null` for free form type questions
          type:
          - string
          - 'null'
          default: 'null'
      required:
      - title
      - question_type
    QuizDeleteResponse:
      title: QuizDeleteResponse
      type: object
      properties:
        display_name:
          title: Display Name
          description: Name of the quiz to be displayed to end users
          examples:
          - Product Finder Quiz
          - Size Selector
          minLength: 1
          maxLength: 200
          type: string
        active:
          title: Active
          description: Identifies whether quiz should be displayed or not
          default: true
          examples:
          - true
          - false
          type: boolean
        id:
          title: ID
          description: ID of the quiz.
          minLength: 1
          maxLength: 255
          type: string
        questions:
          title: Questions
          description: A list of questions of the quiz
          type: array
          items:
            discriminator:
              propertyName: question_type
              mapping:
                single: '#/components/schemas/SingleQuestionResponse'
                multiple: '#/components/schemas/MultipleQuestionResponse'
                single_filter_value: '#/components/schemas/SingleFilterValueQuestionResponse'
                multiple_filter_values: '#/components/schemas/MultipleFilterValuesQuestionResponse'
                open: '#/components/schemas/OpenQuestionResponse'
                cover: '#/components/schemas/CoverQuestionResponse'
                free_form: '#/components/schemas/FreeFormQuestionResponse'
            oneOf:
            - $ref: '#/components/schemas/SingleQuestionResponse'
            - $ref: '#/components/schemas/MultipleQuestionResponse'
            - $ref: '#/components/schemas/SingleFilterValueQuestionResponse'
            - $ref: '#/components/schemas/MultipleFilterValuesQuestionResponse'
            - $ref: '#/components/schemas/OpenQuestionResponse'
            - $ref: '#/components/schemas/CoverQuestionResponse'
            - $ref: '#/components/schemas/FreeFormQuestionResponse'
        logic:
          title: Logic
          description: Logic that is used when going through quiz
          type: object
          additionalProperties:
            type: array
            items: {}
        created_at:
          title: Created At
          description: Quiz creation date in ISO 8601 format
          type: string
          format: date-time
        updated_at:
          title: Updated At
          description: Last quiz update date in ISO 8601 format.
          type: string
          format: date-time
        results_config:
          title: Results Config
          description: Results configuration for the quiz
          allOf:
          - $ref: '#/components/schemas/ResultsConfig'
        metadata_json:
          title: Metadata Json
          description: Metadata related to the quiz and its questions.
          type: object
        pre_filter_expression:
          title: Pre Filter Expression
          description: Pre-filter expression to be applied to all questions.
          type: object
      required:
      - display_name
      - id
      - created_at
      - updated_at
      additionalProperties: false
    Option:
      title: Option
      type: object
      properties:
        value:
          title: Value
          description: Value of the option.
          minLength: 1
          examples:
          - Red
          - Blue
          type: string
        attribute:
          title: Attribute
          description: Attribute expression of the option.
          examples:
          - color: red
          type: object
        images:
          title: Images
          description: Images attached to the option.
          allOf:
          - $ref: '#/components/schemas/Images'
        option_key:
          title: Key
          description: Unique ID of the option
          type: string
          format: uuid
      required:
      - value
      additionalProperties: false
    CoverQuestion:
      title: CoverQuestion
      type: object
      properties:
        title:
          title: Title
          description: Title of the question.
          maxLength: 255
          minLength: 1
          examples:
          - What is your favorite color?
          - What size do you need?
          type: string
        question_type:
          title: Question Type
          enum:
          - cover
          type: string
        description:
          title: Description
          description: Description of the question.
          maxLength: 2047
          minLength: 1
          examples:
          - Choose your preferred color
          type: string
        is_skippable:
          title: Is Skippable
          description: Identifies whether the question can be skipped or not
          default: false
          examples:
          - false
          - true
          type: boolean
        cta_text:
          title: Cta Text
          description: The name of the call-to-action button (e.g. next).
          examples:
          - Next
          - Continue
          type: string
        images:
          title: Images
          description: Images attached to the question.
          allOf:
          - $ref: '#/components/schemas/Images'
        internal_name:
          title: Internal Name
          description: Internal name of a question, this is for internal use only.
          examples:
          - q1_color
          - q2_size
          type: string
        bucket_id:
          title: Bucket Id
          description: Identifier for the bucket this question belongs to. Questions with the same bucket_id are combined using OR.
          examples:
          - 1
          - 2
          type: integer
        question_key:
          title: Key
          description: Unique ID of the question
          type: string
          format: uuid
        options:
          title: Options
          minItems: 0
          maxItems: 0
          type: array
          items:
            $ref: '#/components/schemas/Option'
      required:
      - title
      - question_type
      additionalProperties: false
    SingleQuestionResponse:
      title: SingleQuestionResponse
      type: object
      properties:
        title:
          title: Title
          description: Title of the question.
          maxLength: 255
          minLength: 1
          examples:
          - What is your favorite color?
          - What size do you need?
          type: string
        question_type:
          title: Question Type
          enum:
          - single
          type: string
        description:
          title: Description
          description: Description of the question.
          maxLength: 2047
          minLength: 1
          examples:
          - Choose your preferred color
          type: string
        is_skippable:
          title: Is Skippable
          description: Identifies whether the question can be skipped or not
          default: false
          examples:
          - false
          - true
          type: boolean
        cta_text:
          title: Cta Text
          description: The name of the call-to-action button (e.g. next).
          examples:
          - Next
          - Continue
          type: string
        images:
          title: Images
          description: Images attached to the question.
          allOf:
          - $ref: '#/components/schemas/Images'
        internal_name:
          title: Internal Name
          description: Internal name of a question, this is for internal use only.
          examples:
          - q1_color
          - q2_size
          type: string
        bucket_id:
          title: Bucket Id
          description: Identifier for the bucket this question belongs to. Questions with the same bucket_id are combined using OR.
          examples:
          - 1
          - 2
          type: integer
        key:
          title: Question Key
          description: Unique ID of the question
          type: string
          format: uuid
        attribute_condition:
          title: Attribute Condition
          description: Always `null`
          type:
          - string
          - 'null'
          default: 'null'
        options:
          title: Options
          description: A list of options of the quiz.
          minItems: 1
          maxItems: 30
          type: array
          items:
            $ref: '#/components/schemas/OptionResponse'
        priority:
          title: Priority
          description: Defines which question's attributes should be dropped first in case of 0 results. The lower the number, the higher priority it has. E.g. if 0 results received, question's attributes with priority 10(lowest) will be dropped first hence question's attributes with priority 1(highest) will be dropped last.
          minimum: 1
          maximum: 10
          type: integer
        input_placeholder:
          title: Input Placeholder
          description: Always `null`
          type:
          - string
          - 'null'
          default: 'null'
        filter_name:
          title: Filter Name
          description: Always `null`
          type:
          - string
          - 'null'
          default: 'null'
        filter_sort_option:
          title: Filter Sort Option
          description: Filter sort option. Always `null` for single type questions
          type:
          - string
          - 'null'
          default: 'null'
      required:
      - title
      - question_type
      - options
      - priority
    QuizPutRequestBody:
      title: QuizPutRequestBody
      type: object
      properties:
        display_name:
          title: Display Name
          description: Name of the quiz to be displayed to end users
          examples:
          - Product Finder Quiz
          - Size Selector
          minLength: 1
          maxLength: 200
          type: string
        active:
          title: Active
          description: Identifies whether quiz should be displayed or not
          default: true
          type: boolean
        logic:
          title: Logic
          description: Logic that is used when going through quiz
          type: object
          additionalProperties:
            type: array
            items: {}
        questions:
          title: Questions
          description: A list of questions of the quiz
          default: []
          type: array
          items:
            discriminator:
              propertyName: question_type
              mapping:
                single: '#/components/schemas/SingleQuestion'
                multiple: '#/components/schemas/MultipleQuestion'
                single_filter_value: '#/components/schemas/SingleFilterValueQuestion'
                multiple_filter_values: '#/components/schemas/MultipleFilterValuesQuestion'
                open: '#/components/schemas/OpenQuestion'
                cover: '#/components/schemas/CoverQuestion'
                free_form: '#/components/schemas/FreeFormQuestion'
            oneOf:
            - $ref: '#/components/schemas/SingleQuestion'
            - $ref: '#/components/schemas/MultipleQuestion'
            - $ref: '#/components/schemas/SingleFilterValueQuestion'
            - $ref: '#/components/schemas/MultipleFilterValuesQuestion'
            - $ref: '#/components/schemas/OpenQuestion'
            - $ref: '#/components/schemas/CoverQuestion'
            - $ref: '#/components/schemas/FreeFormQuestion'
        results_config:
          title: Results Config
          description: Results configuration for the quiz
          allOf:
          - $ref: '#/components/schemas/ResultsConfig'
        metadata_json:
          title: Metadata Json
          description: Metadata related to the quiz and its questions.
          type: object
        pre_filter_expression:
          title: Pre Filter Expression
          description: Pre-filter expression to be applied to all questions.
          type: object
      required:
      - display_name
      additionalProperties: false
    SingleFilterValueQuestionResponse:
      title: SingleFilterValueQuestionResponse
      type: object
      properties:
        title:
          title: Title
          description: Title of the question.
          maxLength: 255
          minLength: 1
          examples:
          - What is your favorite color?
          - What size do you need?
          type: string
        question_type:
          title: Question Type
          enum:
          - single_filter_value
          type: string
        description:
          title: Description
          description: Description of the question.
          maxLength: 2047
          minLength: 1
          examples:
          - Choose your preferred color
          type: string
        is_skippable:
          title: Is Skippable
          description: Identifies whether the question can be skipped or not
          default: false
          examples:
          - false
          - true
          type: boolean
        cta_text:
          title: Cta Text
          description: The name of the call-to-action button (e.g. next).
          examples:
          - Next
          - Continue
          type: string
        images:
          title: Images
          description: Images attached to the question.
          allOf:
          - $ref: '#/components/schemas/Images'
        internal_name:
          title: Internal Name
          description: Internal name of a question, this is for internal use only.
          examples:
          - q1_color
          - q2_size
          type: string
        bucket_id:
          title: Bucket Id
          description: Identifier for the bucket this question belongs to. Questions with the same bucket_id are combined using OR.
          examples:
          - 1
          - 2
          type: integer
        key:
          title: Question Key
          description: Unique ID of the question
          type: string
          format: uuid
        attribute_condition:
          title: Attribute Condition
          description: Always `null`
          type:
          - string
          - 'null'
          default: 'null'
        options:
          title: Options
          minItems: 0
          maxItems: 0
          type: array
          items:
            $ref: '#/components/schemas/OptionResponse'
        filter_name:
          title: Filter Name
          description: Name of the filter to use for this question.
          maxLength: 100
          minLength: 1
          type: string
        priority:
          title: Priority
          description: Defines which question's attributes should be dropped first in case of 0 results. The lower the number, the higher priority it has. E.g. if 0 results received, question's attributes with priority 10(lowest) will be dropped first hence question's attributes with priority 1(highe

# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/constructorio/refs/heads/main/openapi/constructorio-quizzes-api-openapi.yml