> ## 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. Requires WebApp delivery.

See the [API Integration Flow](/en/self-host/use-dify/nodes/hitl-api-integration-flow) for the end-to-end sequence of calling Human Input endpoints.



## 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: https://{api_base_url}
    description: >-
      Base URL of the Workflow App API. For self-hosted deployments, replace it
      with your own API base URL.
    variables:
      api_base_url:
        default: api.dify.ai/v1
        description: Host and path of the API base URL, without the `https://` prefix.
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. Requires WebApp delivery.


        See the [API Integration
        Flow](/en/self-host/use-dify/nodes/hitl-api-integration-flow) for the
        end-to-end sequence of calling Human Input endpoints.
      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 the Run Workflow or Send Chat
            Message endpoint 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:
                            `paragraph` (multi-line text input), `select`
                            (single-choice from a list), `file` (single file
                            upload), and `file-list` (multiple file uploads).
                        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: >-
                            Raw default-value configuration for `paragraph`
                            inputs. The client should not resolve this directly;
                            use `resolved_default_values` to display defaults.
                            `null` for other input types or 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.
                        option_source:
                          type: object
                          description: >-
                            Source of options for `select` inputs. Present only
                            when `type` is `select`.
                          properties:
                            type:
                              type: string
                              enum:
                                - variable
                                - constant
                              description: >-
                                Origin of the options. `constant` means `value`
                                lists the options literally; `variable` means
                                `selector` points to an `array[string]` workflow
                                variable that provides them.
                            selector:
                              type: array
                              items:
                                type: string
                              description: >-
                                Variable reference path when `type` is
                                `variable`.
                            value:
                              type: array
                              items:
                                type: string
                              description: Literal option list when `type` is `constant`.
                        allowed_file_types:
                          type: array
                          items:
                            type: string
                            enum:
                              - image
                              - document
                              - audio
                              - video
                              - custom
                          description: >-
                            File categories the recipient may upload. Present
                            for `file` and `file-list` inputs. Values: `image`,
                            `document`, `audio`, `video`, `custom`.
                        allowed_file_extensions:
                          type: array
                          items:
                            type: string
                          description: >-
                            Allowed file extensions when `allowed_file_types`
                            includes `custom`. Include the leading `.` in each
                            extension, for example `.md`. Present for `file` and
                            `file-list` inputs.
                        allowed_file_upload_methods:
                          type: array
                          items:
                            type: string
                            enum:
                              - local_file
                              - remote_url
                          description: >-
                            Upload methods the recipient may use. Values:
                            `local_file`, `remote_url`. Present for `file` and
                            `file-list` inputs.
                        number_limits:
                          type: integer
                          description: >-
                            Maximum number of files the recipient may upload.
                            Present only for `file-list` inputs.
                    description: Form input field definitions.
                  resolved_default_values:
                    type: object
                    additionalProperties:
                      type: string
                    description: >-
                      Pre-rendered values to display in the form. Keyed by input
                      `output_variable_name`. Populated for `paragraph` inputs
                      whose default resolves from a workflow variable; empty for
                      inputs with no resolvable default. Display these values;
                      do not re-resolve `default` on the client. 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.
                    nullable: true
              examples:
                success:
                  summary: Response Example
                  value:
                    form_content: >-
                      Please review the draft, set a priority, and confirm or
                      request changes.
                    inputs:
                      - type: paragraph
                        output_variable_name: feedback
                        default:
                          type: constant
                          selector: []
                          value: ''
                      - type: select
                        output_variable_name: priority
                        option_source:
                          type: constant
                          selector: []
                          value:
                            - low
                            - medium
                            - high
                      - type: file
                        output_variable_name: attachment
                        allowed_file_types:
                          - image
                          - document
                        allowed_file_extensions: []
                        allowed_file_upload_methods:
                          - local_file
                          - remote_url
                      - type: file-list
                        output_variable_name: attachments
                        allowed_file_types:
                          - image
                          - document
                        allowed_file_extensions: []
                        allowed_file_upload_methods:
                          - local_file
                          - remote_url
                        number_limits: 5
                    resolved_default_values:
                      feedback: ''
                    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.**

````