> ## Documentation Index
> Fetch the complete documentation index at: https://vlyai-1c28d863.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload file

> Upload a file to a project's Convex storage. Returns the file ID and a serving URL.

Multipart form upload. The file is stored in the project's Convex file storage and is immediately referenceable from the project's code.

<Warning>
  Maximum file size: 100 MB. For larger uploads, use the [direct-to-Convex upload pattern](/convex/file-storage) instead.
</Warning>


## OpenAPI

````yaml POST /v1/projects/{id}/files
openapi: 3.1.0
info:
  title: vly.ai API
  version: 0.1.0
  description: >-
    REST API for the vly.ai AI app builder. v0, illustrative — endpoints, paths,
    and shapes may change before general availability. See the API Reference
    introduction for status.
  contact:
    name: vly.ai support
    email: support@vly.ai
    url: https://docs.vly.ai/api-reference/introduction
  license:
    name: vly.ai Terms
    url: https://vly.ai/terms
servers:
  - url: https://api.vly.ai
    description: Production
  - url: https://api.staging.vly.ai
    description: Staging
security:
  - bearerAuth: []
tags:
  - name: Projects
    description: Create, list, update, and delete vly projects.
  - name: Deployments
    description: Trigger and inspect deployments.
  - name: Agents
    description: Trigger an AI agent run on a project.
  - name: Files
    description: Upload assets to a project.
  - name: Billing
    description: Inspect plan usage and credits.
  - name: Webhooks
    description: Send and verify webhook events.
paths:
  /v1/projects/{id}/files:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    post:
      tags:
        - Files
      summary: Upload file
      description: >-
        Uploads a file to a project's storage. Returns a signed URL plus the
        stored file metadata.
      operationId: uploadFile
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                path:
                  type: string
                  example: /uploads/avatars/me.png
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  url:
                    type: string
                    format: uri
                  size:
                    type: integer
                  mime:
                    type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: vly_live_...
      description: Workspace-scoped API key. Generate from Workspace settings → API keys.

````

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