Skip to main content

Public Video Shares

A Public Video Share is a shareable landing page that serves a personalized video for a given distribution channel. Each project can have one public share per channel (DEV, STAGING, PROD).

Fields

FieldTypeNotes
channelenumDEV, STAGING, or PROD
slugstringURL-safe unique identifier — forms the public URL
statusenumEnabled or Disabled
publicTitlestringPage title shown to end users (max 160 chars)
publicSubtitlestringOptional subtitle (max 280 chars)
localestringOptional locale tag, e.g. es-CL
ctaLabelstringCall-to-action button label (required if ctaUrl set)
ctaUrlstringURL the CTA button links to (required if ctaLabel set)
personalizationDataJSON objectOptional inline personalization data
apiCredentialIdUUIDAPI credential used to render the video

API endpoints

MethodPathRole requiredDescription
GET/api/Projects/{projectId}/public-video-sharesViewer+List shares for the project
PUT/api/Projects/{projectId}/public-video-shares/{channel}ProjectManager+Create or update a share
POST/api/Projects/{projectId}/public-video-shares/{channel}/disableProjectManager+Disable the landing page
POST/api/Projects/{projectId}/public-video-shares/{channel}/restoreProjectManager+Re-enable a disabled share
POST/api/Projects/{projectId}/public-video-shares/{channel}/rotate-slugProjectManager+Change the public URL slug

Creating or updating a share

The PUT endpoint is idempotent — it creates the share if it does not exist, or updates it if it does.

PUT /api/Projects/{projectId}/public-video-shares/PROD
Authorization: Bearer {token}

{
"publicTitle": "Your personalized credit card offer",
"publicSubtitle": "See the offer prepared just for you",
"locale": "es-CL",
"ctaLabel": "Apply now",
"ctaUrl": "https://bank.example.com/apply",
"apiCredentialId": "credential-uuid"
}

Rotating the slug

The public URL is formed from the slug. Rotating it invalidates the previous URL and generates a new one — useful when a share URL has been distributed but needs to be changed.

POST /api/Projects/{projectId}/public-video-shares/PROD/rotate-slug

Returns the previous slug along with the new one.

Disabling and restoring

A disabled share returns a 404 or deactivation notice to end users without destroying the configuration.

POST /api/Projects/{projectId}/public-video-shares/PROD/disable
POST /api/Projects/{projectId}/public-video-shares/PROD/restore

Both actions record who performed them and when (full audit trail).


API Credentials

API Credentials are per-project key/secret pairs used to authenticate programmatic access when rendering videos. They are referenced by apiCredentialId on a Public Video Share.

Fields

FieldDescription
idUUID
projectIdOwning project
apiKeyPublic key string
nameOptional display name
createdAtCreation timestamp
lastUsedAtLast time the credential was used
statusactive or revoked

Endpoints

MethodPathDescription
GET/api/credentials?projectId={id}List credentials for a project
POST/api/credentialsCreate a new credential
POST/api/credentials/{id}/revokeRevoke a credential

The secret is only returned once at creation time. Store it securely — it cannot be retrieved afterward.

Creating a credential

POST /api/credentials
Authorization: Bearer {token}

{
"projectId": "project-uuid",
"name": "Production landing page"
}

Response:

{
"id": "uuid",
"apiKey": "pk_...",
"apiSecret": "sk_...",
"name": "Production landing page",
"createdAt": "2026-01-15T10:00:00Z"
}