/v2/media/uploadUrl
Auth required
Request a presigned POST URL plus form fields for uploading a single media object up to maxSizeBytes.
#Query parameters
| Name | Type | In | Description |
|---|---|---|---|
| type* | string | query | Asset type. Artist-side: referenceAudio, referenceVideo. Worker-side: complete, preview. |
| jobId* | string | query | Job identifier the asset belongs to. |
| id | string | query | Artifact identifier. Required for worker uploads; omit for artist pre-uploads. |
| contentType | string | query | Optional MIME type. Pinned so downloads sign the same S3 object key. |
#Response
{
"status": "success",
"data": {
"url": "https://sogni-uploads.s3-accelerate.amazonaws.com/",
"fields": {
"Content-Type": "video/mp4",
"bucket": "sogni-uploads",
"key": "video/2026-05-18/<jobId>/reference.mp4",
"X-Amz-Algorithm": "AWS4-HMAC-SHA256",
"X-Amz-Credential": "…",
"X-Amz-Date": "…",
"Policy": "<base64-encoded-policy>",
"X-Amz-Signature": "<hex-signature>"
},
"maxSizeBytes": 104857600,
"allowedContentTypes": [ /* see below — varies by `type` */ ]
}
}
allowedContentTypes depends on the asset type:
- Video uploads (e.g.
referenceVideo):video/mp4,video/quicktime,video/webm - Audio uploads (e.g.
referenceAudio):audio/mp4,audio/mpeg,audio/flac,audio/wav,audio/x-wav,audio/wave - Preview frames:
image/jpeg,image/jpg,image/png,image/webp
url as multipart/form-data, including every key/value from fields, then your file field last. The server returns 204 on success.