v5
latestOpenAPI 3.1.02026-08-025631,1012.8 MBBucket Uploads
Create Upload
Generate a presigned URL for direct S3 upload.
This endpoint validates all requirements BEFORE generating the presigned URL,
ensuring immediate feedback if something is wrong (bucket inactive, quota exceeded, etc.).
**Duplicate Detection (Enabled by Default)**:
- If `file_hash` provided and `skip_duplicates=true`: Checks for existing upload
- If duplicate found: Returns existing upload (200 OK) with `is_duplicate=true`
- If new file: Returns presigned URL (201 Created) with `is_duplicate=false`
**Two-Step Flow**:
1. Call this endpoint → Get presigned URL
2. PUT file to presigned URL → Upload directly to S3
3. Call confirm endpoint → Verify upload and create object
post/v1/buckets/{bucket_identifier}/uploads
Path parameters
bucket_identifierstring required
The unique identifier of the bucket
The unique identifier of the bucket
Request body
Example request
{
"content_type": "video/mp4",
"description": "Minimal upload - object created automatically on confirm (DEFAULT)",
"file_size_bytes": 52428800,
"filename": "product_demo.mp4"
}Response
Successful Response
Example response
{
"blob_property": "video",
"blob_type": "VIDEO",
"bucket_id": "bkt_prod_videos",
"content_type": "video/mp4",
"create_object_on_confirm": true,
"created_at": "2024-01-15T10:30:00Z",
"description": "New upload ready for S3 - object will be created on confirm (DEFAULT)",
"expires_at": "2024-01-15T11:30:00Z",
"file_size_bytes": 52428800,
"filename": "product_demo.mp4",
"is_duplicate": false,
"object_metadata": {
"category": "tutorials"
},
"presigned_url": "https://s3.amazonaws.com/bucket/key?X-Amz-Signature=...",
"presigned_url_expiration": 3600,
"s3_key": "int_xyz/ns_abc/api_buckets_uploads_create/upl_abc123xyz789/product_demo.mp4",
"skip_duplicates": true,
"status": "PENDING",
"upload_id": "upl_abc123xyz789"
}