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

# Get Human Input Form

> Retrieve a paused Human Input form's contents using the `form_token` from a `human_input_required` event. Requires **WebApp** delivery.



## OpenAPI

````yaml /en/api-reference/openapi_workflow.json get /form/human_input/{form_token}
openapi: 3.0.1
info:
  title: Workflow App API
  description: >-
    Workflow applications offer non-session support and are ideal for
    translation, article writing, summarization AI, and more.
  version: 1.0.0
servers:
  - url: '{api_base_url}'
    description: >-
      The base URL for the Workflow App API. Replace {api_base_url} with the
      actual API base URL.
    variables:
      api_base_url:
        default: https://api.dify.ai/v1
        description: Actual base URL of the API
security:
  - ApiKeyAuth: []
tags:
  - name: Workflows
    description: Operations for executing and managing workflows.
  - name: Files
    description: File upload and download operations.
  - name: End Users
    description: Operations related to end user information.
  - name: TTS
    description: Audio-to-text and text-to-audio conversion.
  - name: Applications
    description: Application settings, parameters, and metadata.
  - name: Human Input
    description: Endpoints for resuming paused workflows that require human input.
paths:
  /form/human_input/{form_token}:
    get:
      tags:
        - Human Input
      summary: Get Human Input Form
      description: >-
        Retrieve a paused Human Input form's contents using the `form_token`
        from a `human_input_required` event. Requires **WebApp** delivery.
      operationId: getWorkflowHumanInputForm
      parameters:
        - name: form_token
          in: path
          required: true
          schema:
            type: string
          description: >-
            Access token for the paused form, returned in the
            `human_input_required` event from [Run
            Workflow](/api-reference/workflows/run-workflow) in streaming mode.
      responses:
        '200':
          description: Form contents retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  form_content:
                    type: string
                    description: >-
                      Pre-rendered form body with workflow variables
                      substituted.
                  inputs:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          description: >-
                            Form input control type. Available values:
                            `text_input` (single-line text field) and
                            `paragraph` (multi-line text area).
                        output_variable_name:
                          type: string
                          description: >-
                            Variable name used to reference this input's
                            submitted value inside the workflow. Corresponds to
                            the key in the submission `inputs` object.
                        default:
                          type: object
                          nullable: true
                          description: >-
                            Default value resolved from the workflow context.
                            `null` when no default is configured.
                          properties:
                            type:
                              type: string
                              description: >-
                                Source of the default. `constant` means `value`
                                is used as a literal string; `variable` means
                                `selector` points to a workflow variable.
                            selector:
                              type: array
                              items:
                                type: string
                              description: >-
                                Variable reference path (for example,
                                `["node_id", "var_name"]`) when `type` is
                                `variable`. Must contain at least two elements.
                            value:
                              type: string
                              description: >-
                                Literal default value when `type` is `constant`.
                                Always a string.
                    description: Form input field definitions.
                  resolved_default_values:
                    type: object
                    additionalProperties:
                      type: string
                    description: >-
                      Pre-filled default values, keyed by input
                      `output_variable_name`. All values are stringified.
                  user_actions:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          maxLength: 20
                          pattern: ^[A-Za-z_][A-Za-z0-9_]*$
                          description: >-
                            Identifier of the action button. Pass as `action` on
                            [Submit Human Input
                            Form](/api-reference/human-input/submit-human-input-form)
                            when the recipient selects this button.
                        title:
                          type: string
                          maxLength: 100
                          description: Button label shown to the recipient.
                        button_style:
                          type: string
                          description: >-
                            Visual style of the button. Available values:
                            `primary`, `default`, `accent`, `ghost`.
                    description: Available submission actions.
                  expiration_time:
                    type: integer
                    format: int64
                    description: >-
                      Unix timestamp (seconds) after which this form can no
                      longer be submitted.
              examples:
                success:
                  summary: Response Example
                  value:
                    form_content: Please review the draft and confirm or request changes.
                    inputs:
                      - type: text_input
                        output_variable_name: comment
                        default:
                          type: constant
                          selector: []
                          value: ''
                    resolved_default_values:
                      comment: ''
                    user_actions:
                      - id: approve
                        title: Approve
                        button_style: primary
                      - id: reject
                        title: Request changes
                        button_style: default
                    expiration_time: 1745510400
        '404':
          description: '`not_found` : Form not found.'
          content:
            application/json:
              examples:
                not_found:
                  summary: not_found
                  value:
                    status: 404
                    code: not_found
                    message: Form not found
        '412':
          description: >-
            - `human_input_form_submitted` : Form already submitted. Forms are
            one-shot; the first response wins regardless of which user submits
            it.

            - `human_input_form_expired` : The form's expiration time passed
            before submission arrived.
          content:
            application/json:
              examples:
                human_input_form_submitted:
                  summary: human_input_form_submitted
                  value:
                    status: 412
                    code: human_input_form_submitted
                    message: >-
                      This form has already been submitted by another user,
                      form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890
                human_input_form_expired:
                  summary: human_input_form_expired
                  value:
                    status: 412
                    code: human_input_form_expired
                    message: >-
                      This form has expired,
                      form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890
components:
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: API_KEY
      description: >-
        API Key authentication. For all API requests, include your API Key in
        the `Authorization` HTTP Header, prefixed with `Bearer `. Example:
        `Authorization: Bearer {API_KEY}`. **Strongly recommend storing your API
        Key on the server-side, not shared or stored on the client-side, to
        avoid possible API-Key leakage that can lead to serious consequences.**

````