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

> List every element of a form in order, including the welcome screen, headings and the submit button. Values include changes that are not published yet.

> [!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 /forms/{form_id}/questions
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:
  /forms/{form_id}/questions:
    get:
      tags:
        - Questions
      summary: List questions
      description: >-
        List every element of a form in order, including the welcome screen,
        headings and the submit button. Values include changes that are not
        published yet.
      parameters:
        - $ref: '#/components/parameters/api_key_header'
        - $ref: '#/components/parameters/form_id_param'
        - $ref: '#/components/parameters/page_number_param'
        - $ref: '#/components/parameters/page_size_param'
      responses:
        '200':
          description: OK - Request succeeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/questions_response'
        '404':
          description: Not Found - The form does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
              example:
                error: Form does not exist.
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
    form_id_param:
      in: path
      name: form_id
      description: >-
        Unique ID of the form. Refer to [Getting the Form
        ID](/api/getting-form-id) for detailed instructions.
      required: true
      schema:
        type: string
    page_number_param:
      in: query
      name: page_number
      description: >-
        Page of results to retrieve, starting from 1. Defaults to 1 when
        omitted.
      required: false
      schema:
        type: integer
    page_size_param:
      in: query
      name: page_size
      description: Number of results per page. Defaults to 30 when omitted.
      required: false
      schema:
        type: integer
  schemas:
    questions_response:
      allOf:
        - type: object
          properties:
            questions:
              type: array
              items:
                $ref: '#/components/schemas/question'
        - $ref: '#/components/schemas/paginated_response'
    error_response:
      type: object
      properties:
        error:
          type: string
    question:
      type: object
      properties:
        id:
          type: string
          example: 6b1f2c1e-2d7a-4a55-9c4e-0f1f8a7b2c11
        kind:
          type: string
          description: >-
            Kind of the question, for example `dropdown`, `short_text` or
            `submit`.
          example: dropdown
        position:
          type: integer
          description: Zero-based position among all elements of the form.
          example: 2
        state:
          type: string
          description: >-
            `draft` until the form is published with this question, then
            `published`.
          example: draft
        has_draft_changes:
          type: boolean
          description: Whether the question has changes that are not published yet.
        attributes:
          $ref: '#/components/schemas/question_attributes'
    paginated_response:
      type: object
      properties:
        pagination:
          type: object
          properties:
            total_records:
              type: integer
            total_pages:
              type: integer
            current_page_number:
              type: integer
            page_size:
              type: integer
    question_attributes:
      type: object
      description: >-
        Current values of the question, with unpublished draft changes applied.
        The keys depend on the kind. Image data is never returned.
      additionalProperties: true
      example:
        label: Plan
        description: ''
        is_required: true
        is_hidden: false
        is_multi_select: false
        placeholder: ''
        properties:
          is_randomized: false
        options:
          - id: draft-0c6e1b2a-4f1d-4c53-9d1e-7a1b2c3d4e5f
            alt_id: alt-9a41d2c8-3b7e-4a62-8f10-5d6e7f8a9b0c
            label: Basic
            position: 0
          - id: draft-5d2b8e44-1c9a-47f3-b6d2-0e1f2a3b4c5d
            alt_id: alt-17fe3a90-6d2b-4c81-a5e4-9b8c7d6e5f4a
            label: Pro
            position: 1

````

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