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

# List question kinds

> List the kinds of question you can add to a form. For each kind, the response lists the attributes and lists that it accepts, with their types and limits. Payment kinds are not included.

> [!NOTE]
>
> Replace `{your-subdomain}` with your workspace’s subdomain. \
> Learn how to find your subdomain in [Workspace subdomain](https://apidocs.neetoform.com/api/workspace-subdomain.md).


## OpenAPI

````yaml bundled/questions.yaml GET /question_kinds
openapi: 3.0.3
info:
  title: NeetoForm APIs
  version: 2.0.0
servers:
  - description: NeetoForm APIs
    url: https://{your-subdomain}.neetoform.com/api/external/v2
    variables:
      your-subdomain:
        default: spinkart
        description: >-
          Replace **spinkart** with your [workspace's
          subdomain](/api/workspace-subdomain).
security: []
paths:
  /question_kinds:
    get:
      tags:
        - Questions
      summary: List question kinds
      description: >-
        List the kinds of question you can add to a form. For each kind, the
        response lists the attributes and lists that it accepts, with their
        types and limits. Payment kinds are not included.
      parameters:
        - $ref: '#/components/parameters/api_key_header'
      responses:
        '200':
          description: OK - Request succeeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/question_kinds_response'
              example:
                kinds:
                  - kind: submit
                    is_singular: true
                    attributes:
                      - name: button_text
                        type: string
                    collections: []
                  - kind: multiple_choice
                    is_singular: false
                    attributes:
                      - name: label
                        type: string
                      - name: image_height
                        type: integer
                        minimum: 50
                        maximum: 200
                      - name: properties
                        type: object
                        keys:
                          - name: is_randomized
                    collections:
                      - name: options
                        item_fields:
                          - label
components:
  parameters:
    api_key_header:
      in: header
      name: X-Api-Key
      description: >-
        Use the X-Api-Key header to provide your workspace API key. Refer to
        [Authentication](/api/authentication) for more information.
      required: true
      schema:
        type: string
        default: your-api-key
  schemas:
    question_kinds_response:
      type: object
      properties:
        kinds:
          type: array
          items:
            $ref: '#/components/schemas/question_kind'
    question_kind:
      type: object
      properties:
        kind:
          type: string
          example: multiple_choice
        is_singular:
          type: boolean
          description: When true, a form can have only one question of this kind.
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/question_kind_attribute'
        collections:
          type: array
          items:
            $ref: '#/components/schemas/question_kind_collection'
    question_kind_attribute:
      type: object
      properties:
        name:
          type: string
          example: image_height
        type:
          type: string
          description: Value type, for example `string`, `integer`, `boolean` or `object`.
          example: integer
        allowed_values:
          type: array
          description: Only present when the attribute accepts a fixed set of values.
          items: {}
        minimum:
          type: number
          description: Only present when the attribute has a lower limit.
          example: 50
        maximum:
          type: number
          description: Only present when the attribute has an upper limit.
          example: 200
        keys:
          type: array
          description: >-
            Only present when `type` is `object`. The keys that the object
            accepts.
          items:
            type: object
            properties:
              name:
                type: string
                example: is_randomized
    question_kind_collection:
      type: object
      properties:
        name:
          type: string
          example: options
        item_fields:
          type: array
          description: Fields that each item of the list accepts.
          items:
            type: string
          example:
            - label

````

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