---
title: "Upload File Multipart"
method: POST
path: "/v2/files/-/uploads"
tags: ["Files"]
---

# Upload File Multipart

`POST /v2/files/-/uploads`

Upload a file directly in the request body. Use this for single file uploads from your application.

For video files, processing happens asynchronously - use GET /files/{file_uuid}/status
to check processing status before accessing frames.

Args:
    file: The file to upload (multipart form data)
    workspace_uuid: Optional workspace to associate the file with

Returns:
    FileUploadResult with file_uuid for future reference and file_url for immediate access.
    For videos, check processing_status field - use status endpoint to poll until "completed".

## Query parameters

- `workspace_uuid` string, nullable

## Response `200`

OK

- FileUploadResult
  - `local_file_path` string, nullable — Local file path of the uploaded file, if available.
  - `remote_uri` string, nullable — Remote URI to fetch the file from, if available.
  - `content_type` string, nullable — MIME type of the file (e.g., 'video/mp4'). If not provided, will be inferred from file extension.
  - `file_uuid` string, nullable — Unique identifier for the uploaded file.
  - `file_url` string, nullable — URL to access the uploaded file, if available.
  - `remote_file_path` string, nullable — Remote file path of the uploaded file, if available.
  - `processing_status` string — Processing status: pending, processing, completed, or failed.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Unprocessable Entity
- `429` — Too Many Requests
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/aymara-ai/apis/aymara-api.md) · [All operations](https://skmtc.net/aymara-ai/apis/aymara-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aymara-ai/aymara-api/versions/0cb64ef11adf/schema)
