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

# Upload a file



## OpenAPI

````yaml /openapi.json post /api/v1/files/upload
openapi: 3.0.0
info:
  title: Placet API
  description: Chat-based agent inbox for AI-human interaction
  version: 0.1.0
  contact: {}
servers:
  - url: http://localhost:3001
    description: Local development
security: []
tags: []
paths:
  /api/v1/files/upload:
    post:
      tags:
        - Files
      summary: Upload a file
      operationId: FilesAgentController_upload
      parameters: []
      responses:
        '201':
          description: Uploaded attachment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentResponse'
        '401':
          description: Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - api-key: []
components:
  schemas:
    AttachmentResponse:
      type: object
      properties:
        id:
          type: string
          example: clxyz789
        messageId:
          type: string
          example: clxyz123
        pluginType:
          type: string
          example: file
        filename:
          type: string
          example: report.pdf
        mimeType:
          type: string
          example: application/pdf
        size:
          type: number
          example: 1024
        storageKey:
          type: string
          example: uploads/clxyz123/report.pdf
        createdAt:
          type: string
          example: '2025-01-01T00:00:00.000Z'
      required:
        - id
        - messageId
        - pluginType
        - filename
        - mimeType
        - size
        - storageKey
        - createdAt
    ErrorResponse:
      type: object
      properties:
        statusCode:
          type: number
          example: 400
        message:
          type: string
          example: Validation failed
        errors:
          description: Zod validation errors (only on 400)
          type: array
          items:
            $ref: '#/components/schemas/ZodValidationError'
      required:
        - statusCode
        - message
    ZodValidationError:
      type: object
      properties:
        code:
          type: string
          example: invalid_type
        message:
          type: string
          example: Expected string, received number
        path:
          example:
            - email
          type: array
          items:
            type: string
      required:
        - code
        - message
        - path
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: x-api-key
      description: Placet API key (hp_...)

````