curl --request POST \
--url https://upload.autorender.io/api/v1/multipart/start \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"file_name": "big-video.mp4",
"size": 73400320,
"format": "video/mp4",
"folder": "uploads/videos",
"tags": ["campaign", "raw"],
"metadata": { "source": "mobile-app" },
"custom_id": "vid_001",
"random_prefix": false,
"ttl_seconds": 3600
}'
{
"session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"part_size": 10485760,
"parts": [
"https://storage.example.com/presigned-part-1?X-Amz-Signature=abc",
"https://storage.example.com/presigned-part-2?X-Amz-Signature=def"
]
}
{
"success": false,
"error": "<string>"
}
{
"success": false,
"error": "Unauthorized",
"message": "Invalid or missing API key"
}
{
"success": false,
"error": "<string>",
"message": "<string>"
}
Multipart Upload
Multipart start
Create a multipart session and receive part size plus presigned PUT URLs.
POST
/
api
/
v1
/
multipart
/
start
curl --request POST \
--url https://upload.autorender.io/api/v1/multipart/start \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"file_name": "big-video.mp4",
"size": 73400320,
"format": "video/mp4",
"folder": "uploads/videos",
"tags": ["campaign", "raw"],
"metadata": { "source": "mobile-app" },
"custom_id": "vid_001",
"random_prefix": false,
"ttl_seconds": 3600
}'
{
"session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"part_size": 10485760,
"parts": [
"https://storage.example.com/presigned-part-1?X-Amz-Signature=abc",
"https://storage.example.com/presigned-part-2?X-Amz-Signature=def"
]
}
{
"success": false,
"error": "<string>"
}
{
"success": false,
"error": "Unauthorized",
"message": "Invalid or missing API key"
}
{
"success": false,
"error": "<string>",
"message": "<string>"
}
Key type: accepts your public key or a private key. Uploading is the one thing a
public key may do, so this endpoint works from browser and mobile code — see
key types and scope.
curl --request POST \
--url https://upload.autorender.io/api/v1/multipart/start \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"file_name": "big-video.mp4",
"size": 73400320,
"format": "video/mp4",
"folder": "uploads/videos",
"tags": ["campaign", "raw"],
"metadata": { "source": "mobile-app" },
"custom_id": "vid_001",
"random_prefix": false,
"ttl_seconds": 3600
}'
{
"session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"part_size": 10485760,
"parts": [
"https://storage.example.com/presigned-part-1?X-Amz-Signature=abc",
"https://storage.example.com/presigned-part-2?X-Amz-Signature=def"
]
}
{
"success": false,
"error": "<string>"
}
{
"success": false,
"error": "Unauthorized",
"message": "Invalid or missing API key"
}
{
"success": false,
"error": "<string>",
"message": "<string>"
}
Overview
Starts a multipart upload for large files. The response gives yousession_id, part_size (the chunk size in bytes), and parts (presigned URLs, in order). Upload each chunk with Upload parts, then finalize with Multipart complete.
Authentication
Authorization: Bearer YOUR_API_KEY
Workflow
This is step 1 of 3.- Multipart start (this endpoint) — get
session_id,part_size, andparts. - Upload parts —
PUTeach chunk to the matching presigned URL. - Multipart complete — finalize the file in your workspace.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
file_name | string | Yes | Original file name (e.g. big-video.mp4) |
size | number | Yes | Total file size in bytes |
format | string | Yes | MIME type (e.g. video/mp4, image/jpeg) |
folder | string | No | Workspace folder path |
tags | string[] | No | Tags |
metadata | object | No | Custom metadata |
custom_id | string | No | Your tracking id |
random_prefix | boolean | No | Random prefix on stored name if true |
ttl_seconds | number | No | Lifetime of the presigned URLs, in seconds |
Response
Returnssession_id, part_size, and parts. Part index i must be uploaded to parts[i].Authorizations
API key for public endpoints. Can also be provided via Authorization: Bearer
Body
application/json
Minimum string length:
1Required range:
1 <= x <= 9007199254740991Minimum string length:
1Show child attributes
Show child attributes
Required range:
1 <= x <= 9007199254740991Response
Session created
Session created
Required range:
-9007199254740991 <= x <= 9007199254740991Required range:
-9007199254740991 <= x <= 9007199254740991Pre-signed S3 upload URLs, one per part
Unix timestamp when the session expires
Required range:
-9007199254740991 <= x <= 9007199254740991Show child attributes
Show child attributes
Was this page helpful?