Share a video
Makes a share page for a finished video: one HTML page on `usercontent.b3os.org` that plays the MP4 with its poster, captions and chapters, carries Open Graph tags for link previews, and works as an iframe embed on any site. No script runs on it (`Content-Security-Policy: sandbox`). The link is signed like every artifact URL and lasts as long as the video's MP4 (7 days by default). Sharing again returns the same page while it lasts (200); a new one answers 201. Off by default: creating a share page needs the `render.share_pages` feature flag on for your organization, and answers 404 `feature_not_enabled` without it. The page plays the video from the video's own signed file links, which stay valid until the video expires: stopping the share (or deleting the video) takes the page down within 60 seconds, but only deleting the video ends the file links a viewer or a link preview already has. There is no password option.
/v1/render/videos/{video_id}/share
Authentication
Path Parameters
video_id
string
required
path
"vid_01m5t4c5ep9bdfhtx7nk2k3vq7"Request Body
application/jsontitle
string
Responses
application/jsonobject
string
REQUIRED
video_sharevideo_id
string
REQUIRED
artifact_id
string
REQUIRED
title
string
REQUIRED
url
string (uri)
REQUIRED
embed_html
string
REQUIRED
width
integer
REQUIRED
height
integer
REQUIRED
created_at
string (date-time)
REQUIRED
expires_at
string (date-time)
REQUIRED
curl -X POST 'https://beta-api.b3os.org/v1/render/videos/vid_01m5t4c5ep9bdfhtx7nk2k3vq7/share' \ -H 'Authorization: Bearer YOUR_API_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "title": "The Example launch plan in 30 seconds"}'
const response = await fetch('https://beta-api.b3os.org/v1/render/videos/vid_01m5t4c5ep9bdfhtx7nk2k3vq7/share', { method: 'POST', headers: { "Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json" }, body: JSON.stringify({ "title": "The Example launch plan in 30 seconds" })});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://beta-api.b3os.org/v1/render/videos/vid_01m5t4c5ep9bdfhtx7nk2k3vq7/share', headers=headers, json={ "title": "The Example launch plan in 30 seconds"})print(response.json())
{ "object": "video_share", "video_id": "vid_01m5t4c5ep9bdfhtx7nk2k3vq7", "artifact_id": "art_01m6e0s3a1f7r7d0jq0b6kq9x2", "title": "The Example launch plan in 30 seconds", "url": "https://usercontent.b3os.org/a/art-01m6e0s3a1f7r7d0jq0b6kq9x2/share.html?node=n1&exp=1762714800&sig=12hc4wex0XbLjNwjo97CNLfYAYLYSocWC5EJHJen4k_Y2vc2NGOivDeNbR3cM06Pd1eeYYlT0__LXvPUkNieBw", "embed_html": "<iframe src=\"https://usercontent.b3os.org/a/art-01m6e0s3a1f7r7d0jq0b6kq9x2/share.html?node=n1&exp=1762714800&sig=12hc4wex0XbLjNwjo97CNLfYAYLYSocWC5EJHJen4k_Y2vc2NGOivDeNbR3cM06Pd1eeYYlT0__LXvPUkNieBw\" width=\"960\" height=\"540\" style=\"border:0\" allow=\"fullscreen\" allowfullscreen loading=\"lazy\" title=\"The Example launch plan in 30 seconds\"></iframe>", "width": 1920, "height": 1080, "created_at": "2026-11-02T12:00:00.000Z", "expires_at": "2026-11-09T11:59:40.000Z"}
Try this endpoint
/v1/render/videos/{video_id}/share