Request a presigned upload URL for a listing video
Creates a pending video and returns a presigned S3 PUT URL (valid 30 minutes). Upload the MP4 directly with the returned headers, then confirm it via the register endpoint. Only MP4 up to 100 MB is accepted; the declared size is signed into the URL. Optionally declare posterSizeBytes to also receive posterUploadUrl for a captured poster frame (JPEG, max 5 MB) — uploaded next to the video and adopted as its posterUrl at registration.
Authorization
x-calry-api-key In: header
Path Parameters
Unique identifier of the listing
Header Parameters
Optional tenant ID to specify which tenant to operate as. If not provided, the default tenant will be used.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/listing/123e4567-e89b-12d3-a456-426614174000/videos/upload-url" \ -H "Content-Type: application/json" \ -d '{ "contentType": "video/mp4", "sizeBytes": 52428800 }'{
"videoId": "123e4567-e89b-12d3-a456-426614174000",
"uploadUrl": "string",
"expiresAt": "2026-09-11T12:30:00.000Z",
"headers": {
"Content-Type": "video/mp4"
},
"posterUploadUrl": "string"
}{
"timestamp": "2025-03-05T11:45:49.631Z",
"path": "<URL_PATH>",
"message": "Authentication failed",
"details": []
}