---
title: "Create Upload URL"
method: POST
path: "/v1/volumes/{volume_id}/files/upload-url"
tags: ["Volume Files"]
---

# Create Upload URL

`POST /v1/volumes/{volume_id}/files/upload-url`

## Request

- Base URL: `https://api.anchorbrowser.io`
- URL: `https://api.anchorbrowser.io/v1/volumes/{volume_id}/files/upload-url`
- Auth: API key in header `anchor-api-key`

Get a pre-signed URL to upload a file of any size (up to 5 GB) directly to storage. `PUT` the file body to `signed_url` and send the returned `headers` unchanged.

## Path parameters

- `volume_id` string, uuid, required

## Request body

- object
  - `path` string, required: Destination path relative to the volume root
  - `content_type` string: MIME type of the file. Defaults to `application/octet-stream`.
  - `size` integer: Size in bytes, if known

## Response `200`

Upload URL created

- VolumeUploadUrlResponse
  - `data` object
    - `signed_url` string: Pre-signed URL to `PUT` the file body to
    - `method` 'PUT'
    - `headers` object: Headers that must be sent with the `PUT` exactly as returned; they are part of the signature
    - `expires_in` integer: Seconds until the URL expires

## Other responses

- `400`: Invalid path or size

## Changes

- **2026-10-16** `b3bfdb98c79e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/anchorbrowser/apis/anchorbrowser-api/changes/v1/volumes/:volume_id/files/upload-url/post.md)

---

[API](https://skmtc.dev/anchorbrowser/apis/anchorbrowser-api.md) - [All operations](https://skmtc.dev/anchorbrowser/apis/anchorbrowser-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anchorbrowser/apis/anchorbrowser-api/revisions/9d755f22df0e?raw)
