DocsAPI referenceFiles
Send bytes to a one-time upload URL
Use upload_url from POST /v1/uploads. Send raw bytes, exactly size_bytes, up to 100 MB. The URL is consumed once streaming starts. No API key is required.
PUT /v1/uploads/{id}
Needs no API key.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id required | path | string | |
account required | query | string | |
expires required | query | string | |
signature required | query | string |
Request
bash
# upload_url is the URL POST /v1/uploads returned. It needs no API key.
curl --fail-with-body -X PUT "$upload_url" \
-H "Content-Type: video/mp4" \
--data-binary @input.mp4Copy failed. The text is selected; copy it with your keyboard.
JavaScript
import { readFile } from 'node:fs/promises';
// `upload` is the response of POST /v1/uploads. The URL needs no API key.
const response = await fetch(upload.upload_url, {
method: 'PUT',
headers: { 'Content-Type': 'video/mp4' },
body: await readFile('input.mp4'),
});
const completed = await response.json();Copy failed. The text is selected; copy it with your keyboard.
Response
200 JSON
{
"id": "up_0123456789abcdef01234567",
"input_url": "videxo://uploads/up_0123456789abcdef01234567",
"size_bytes": 52428800,
"sha256": "3b1f5d7a9c2e4f60b8d0a2c4e6f8a0b2c4d6e8f0a1b3c5d7e9f1a3b5c7d9e1f3",
"content_type": "video/mp4",
"expires_at": "2026-11-05T12:00:00.000Z"
}Copy failed. The text is selected; copy it with your keyboard.
Responses
| Status | Body | When |
|---|---|---|
| 200 | none | Upload completed: id, input_url, size_bytes, sha256, content_type, expires_at. |
| 400 | Problem | invalid_request (size_mismatch) |
| 401 | Problem | authentication_failed (client_token_revoked): the client token that created the upload was revoked |
| 403 | Problem | permission_denied (link_invalid, account_disabled) |
| 404 | Problem | not_found (upload) |
| 409 | Problem | conflict (upload_used) |
| 410 | Problem | resource_expired (link_expired, upload_expired) |
| 413 | Problem | limit_exceeded (upload_size) |
| 503 | Problem | service_unavailable (temporary) |