CalryOTA Docs
Listing

Confirm an uploaded listing video

Verifies the uploaded object (MP4, max 100 MB) and makes it the listing's live hero video, atomically replacing any previous one. v1 keeps at most one confirmed video per listing. If a poster frame was uploaded alongside the video it becomes the video's posterUrl; poster problems never fail the registration.

POST
/api/v1/listing/{id}/videos

Authorization

x-calry-api-key
x-calry-api-key<token>

In: header

Path Parameters

id*string

Unique identifier of the listing

Header Parameters

x-calry-tenant-id?string

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" \  -H "Content-Type: application/json" \  -d '{    "videoId": "123e4567-e89b-12d3-a456-426614174000"  }'
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "type": "hosted",
  "url": "https://cdn-zepl-prod.calry.app/ws-id/listing-id/videos/video-id.mp4",
  "posterUrl": "https://example.com/poster.jpg",
  "description": "Walkthrough of the villa and pool area",
  "position": 0
}
Empty
{
  "timestamp": "2025-03-05T11:45:49.631Z",
  "path": "<URL_PATH>",
  "message": "Authentication failed",
  "details": []
}
Empty
Empty
Empty