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

# Upload a file

> Uploads a file and returns a shareable download URL. Supports images, documents, audio and video up to 25MB. The returned downloadUrl can be included in the files array when sending a message to an assistant or agent.



## OpenAPI

````yaml POST /v1/files/upload
openapi: 3.0.0
info:
  title: Devic.ai Public API
  description: >-
    Devic.ai is an AI platform that allows you to create, manage, and use AI
    agents for various tasks.
  version: 1.0.0
  contact:
    name: Devic.ai Support
    url: https://devic.ai
  x-logo:
    url: https://devic.ai/logo.png
    altText: Devic.ai Logo
  x-summary: Public API for interacting with Devic.ai platform
servers:
  - url: https://api.devic.ai
    description: Production server
  - url: https://staging-api.devic.ai
    description: Staging server
security:
  - bearerAuth: []
tags:
  - name: Projects
    description: Group agents, assistants, documents and costs into projects
  - name: Documents
    description: >-
      Knowledge base documents: create, version, attach and index markdown
      content for RAG
  - name: Document Folders
    description: Organise knowledge base documents into folders and attach them in bulk
  - name: Files
    description: Upload files and obtain shareable download URLs to attach to messages
  - name: Agents
    description: Endpoints related to AI agents and their operations
  - name: Assistants
    description: Endpoints for interacting with assistants and their specializations
  - name: Tool Servers
    description: Endpoints for managing tool servers and their tool definitions
  - name: Health
    description: API health check endpoints
  - name: Documentation
    description: Endpoints for retrieving markdown documentation
paths:
  /v1/files/upload:
    post:
      tags:
        - Files
      summary: Upload a file
      description: >-
        Uploads a file and returns a shareable download URL. Supports images,
        documents, audio and video up to 25MB. The returned downloadUrl can be
        included in the files array when sending a message to an assistant or
        agent.
      operationId: uploadFile
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                  description: The file to upload (max 25MB)
      responses:
        '200':
          description: File uploaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileUploadResponse'
        '400':
          description: Invalid request data
        '401':
          description: Unauthorized - Invalid or missing token
        '500':
          description: Internal Server Error
      security:
        - bearerAuth: []
components:
  schemas:
    FileUploadResponse:
      type: object
      properties:
        name:
          type: string
          description: Uploaded file name
        downloadUrl:
          type: string
          description: Shareable URL to download the uploaded file
        fileType:
          type: string
          enum:
            - image
            - document
            - audio
            - video
            - other
          description: Detected file category
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Use JWT token for authentication

````