Skip to content

DocsAPI referenceFiles

Create a one-time direct upload

POST /v1/uploads

Needs an API key: Authorization: Bearer $VIDEXO_API_KEY.

Body CreateUploadRequest

Body fields
NameTypeDescription
filename requiredstring, up to 105 characters
size_bytes requiredintegerExact byte length. At most 100 MB and the plan input limit.
content_type string, up to 128 charactersDefault application/octet-stream.

Request

bash
curl -X POST "$VIDEXO_API_URL/v1/uploads" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "filename": "input.mp4",
  "size_bytes": 52428800,
  "content_type": "video/mp4"
}'

Response

201 JSON
{
  "id": "up_0123456789abcdef01234567",
  "input_url": "videxo://uploads/up_0123456789abcdef01234567",
  "upload_url": "https://api.videxo.io/v1/uploads/up_0123456789abcdef01234567?account=acc_7Gq2x9LmTnV4&expires=1793800800&signature=example",
  "upload_url_expires_at": "2026-11-04T13:00:00.000Z",
  "expires_at": "2026-11-05T12:00:00.000Z",
  "max_size_bytes": 100000000
}

Responses

Responses
StatusBodyWhen
201UploadPUT the exact file bytes to upload_url, then use input_url in a job.
400Probleminvalid_request
401Problemauthentication_failed (missing_api_key, invalid_api_key, api_key_revoked, api_key_expired)
403Problempermission_denied (token_scope): a client token cannot call this route
413Problemlimit_exceeded (upload_size, request_body_size)
429Problemrate_limited