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

# Upload Worker Document

> Uploads a document for a specific worker. Use `multipart/form-data` encoding. The maximum file size is 50 MB.

<Info>
  Upload files using `multipart/form-data` encoding. The maximum file size is **50 MB**.
</Info>


## OpenAPI

````yaml api-reference/v01.12.00/openapi-v01.12.00.json POST /workers/{id}/documents
openapi: 3.0.0
info:
  title: Roosted
  version: 0.1.12
  contact:
    name: Support
    url: https://support.roostedhr.com/support/home
    email: support@roostedhr.com
  description: |-
    Enterprise API

    Sandbox keys and Production keys are requested from support
servers:
  - url: https://api.roostedhr.com/api/1_12
  - url: https://sandbox.roostedhr.com/api/1_12
security:
  - X-API-KEY: []
tags:
  - name: Announcements
  - name: Areas
  - name: Clients
  - name: Company
  - name: Configuration
  - name: Events
  - name: Locations
  - name: Payroll Groups
  - name: Rate Cards
  - name: Shifts
  - name: Skillsets
  - name: Time Tracking
  - name: Wage Rules
  - name: Workers
paths:
  /workers/{id}/documents:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
        description: Worker ID
    post:
      tags:
        - Workers
      summary: Upload Worker Document
      description: >-
        Uploads a document for a specific worker. Use `multipart/form-data`
        encoding. The maximum file size is 50 MB.
      operationId: post-worker-document
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - file
              properties:
                name:
                  type: string
                  description: Display name for the document.
                file:
                  type: string
                  format: byte
                  description: >-
                    Base64-encoded file content. Supported types: JPEG, PNG,
                    GIF, BMP, WebP, PDF.
                worker_viewable:
                  type: integer
                  enum:
                    - 0
                    - 1
                  description: >-
                    Whether the worker can view this document.  = viewable,  =
                    hidden. Defaults to .
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerDocument'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                  error:
                    type: string
              examples:
                File is required:
                  value:
                    code: WRK-900
                    error: File is required
                File name is required:
                  value:
                    code: WRK-900
                    error: File name is required
                Invalid base64 encoding:
                  value:
                    code: WRK-900
                    error: Invalid base64 encoding
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: ATH-100
                  error:
                    type: string
                    example: Invalid or missing API key.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: WRK-800
                  error:
                    type: string
                    example: Insufficient permissions to manage workers.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: WRK-300
                  error:
                    type: string
                    example: Worker not found.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: WRK-1000
                  error:
                    type: string
                    example: Failed to upload document.
components:
  schemas:
    WorkerDocument:
      type: object
      description: A document uploaded to a worker's profile.
      properties:
        id:
          type: string
          description: Document identifier.
        name:
          type: string
          description: Display name of the document.
        file_name:
          type: string
          description: Original file name.
        location:
          type: string
          description: URL to the hosted file.
        date_added:
          type: string
          description: Formatted date the document was uploaded (e.g. "Feb 23rd").
        type:
          type: string
          description: File type (e.g. "image", "pdf").
        deleted:
          type: string
          enum:
            - '0'
            - '1'
          description: Soft-delete flag. `"0"` = active, `"1"` = deleted.
        date_deleted:
          type: string
          nullable: true
          description: Date the document was soft-deleted. `null` if not deleted.
        worker_viewable:
          type: integer
          enum:
            - 0
            - 1
          description: >-
            Whether the worker can view this document. `1` = viewable, `0` =
            hidden.
  securitySchemes:
    X-API-KEY:
      name: X-API-KEY
      type: apiKey
      in: header

````