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

# Upload a document

> Uploads a document (PDF, Word, Excel, PowerPoint, CSV or plain text, up to 50 MB) and returns its URL, for a review step's document attachment.



## OpenAPI

````yaml POST /upload/document
openapi: 3.1.0
info:
  title: HITL API
  version: 1.0.0
  description: >-
    Run the workflows you build in HITL, follow each run until a person has
    answered, and manage who reviews them.
servers:
  - url: https://api.hitl.sh/v1
security:
  - bearerAuth: []
tags:
  - name: Workflows
  - name: Runs
  - name: Reviewers
  - name: Webhooks
  - name: Account
  - name: Uploads
paths:
  /upload/document:
    post:
      tags:
        - Uploads
      summary: Upload a document
      description: >-
        Uploads a document (PDF, Word, Excel, PowerPoint, CSV or plain text, up
        to 50 MB) and returns its URL, for a review step's document attachment.
      operationId: uploads-document
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                  description: The document
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              example:
                success: true
                data:
                  fileUrl: >-
                    https://<cdn>/documents/6af2ce47967ce8777084a292/contract.pdf
                  fileName: contract.pdf
                  fileType: application/pdf
                  fileKey: documents/6af2ce47967ce8777084a292/contract.pdf
        '400':
          $ref: '#/components/responses/E400'
        '401':
          $ref: '#/components/responses/E401'
components:
  responses:
    E400:
      description: Invalid input; `msg` says what to fix
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: true
            msg: Invalid execution id
    E401:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: true
            msg: Invalid API key
  schemas:
    Error:
      type: object
      required:
        - error
        - msg
      properties:
        error:
          type: boolean
          example: true
        msg:
          type: string
          description: What went wrong, in plain words
        code:
          type: string
          description: >-
            A machine-readable reason, when there is one (for example
            `confirmation_required`)
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key: `hitl_live_…`'

````

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