Documentation Index
Fetch the complete documentation index at: https://docs.prismvideos.com/llms.txt
Use this file to discover all available pages before exploring further.
POST /api/s3/presign-upload
Creates a presigned S3 upload URL for an image, video, or audio reference. Upload the file to the returned upload_url, then pass the returned s3_key into Create Generation.
Request
curl "https://www.prismvideos.com/api/s3/presign-upload" \
-X POST \
-H "Authorization: Bearer prism_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"kind": "upload",
"contentType": "image/png",
"fileName": "product.png"
}'
Body parameters
| Parameter | Type | Required | Description |
|---|
kind | string | Yes | Use upload for generic image, video, or audio references |
contentType | string | Yes | File MIME type, such as image/png, video/mp4, or audio/mpeg |
fileName | string | No | Original filename. Used by clients for bookkeeping only |
Response
{
"s3_key": "users/user_abc/user-uploads/batch_abc/file_abc.png",
"upload_url": "https://presigned-s3-put-url...",
"content_type": "image/png",
"max_bytes": 20971520
}
Upload the file
Use the returned upload_url with an HTTP PUT request. The Content-Type must match the value used when creating the upload URL.
curl "$UPLOAD_URL" \
-X PUT \
-H "Content-Type: image/png" \
--data-binary "@product.png"
Use in generation
After upload succeeds, pass s3_key into the relevant generation reference field.
{
"prompt": "Turn this product image into a clean studio video",
"modelName": "veo-3.1",
"startFrameKey": "users/user_abc/user-uploads/batch_abc/file_abc.png"
}
For multiple image references:
{
"prompt": "Use these images as visual references",
"modelName": "veo-3.1",
"ingredientImageKeys": [
"users/user_abc/user-uploads/batch_abc/ref1.png",
"users/user_abc/user-uploads/batch_abc/ref2.png"
]
}
For video editing models, pass uploaded video keys as sourceVideoKey or referenceVideoKeys.
Limits
| File type | Max size |
|---|
| Image | 20 MB |
| Video | 200 MB |
| Audio | 50 MB |
Errors
| Status | Error | When |
|---|
| 400 | validation error | Invalid kind or unsupported contentType |
| 401 | unauthorized | Missing or invalid API key |
| 403 | forbidden | API key lacks templates:read scope |
| 500 | server error | Failed to create upload URL |
See Errors for the full error reference.