CalryOTA Docs
Listing

Set the listing's video to an externally hosted URL

Sets (or atomically replaces) the listing's hero video with an externally hosted HTTPS URL — no upload, no storage. zepl stores the URL as-is and never fetches it; consumers decide which sources they can render (booking sites typically play direct video-file URLs only). A replaced hosted video's stored file is deleted.

PUT
/api/v1/listing/{id}/videos/external

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 PUT "https://example.com/api/v1/listing/123e4567-e89b-12d3-a456-426614174000/videos/external" \  -H "Content-Type: application/json" \  -d '{    "url": "https://videos.example.com/tours/villa.mp4"  }'
{
  "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
}
{
  "timestamp": "2025-03-05T11:45:49.631Z",
  "path": "<URL_PATH>",
  "message": "Authentication failed",
  "details": []
}
Empty
Empty