Get the current video thumbnail
const url = 'https://api.braiv.co/v1/videos/vid_01JZ8M6A/thumbnail?includeBytes=false';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.braiv.co/v1/videos/vid_01JZ8M6A/thumbnail?includeBytes=false' \ --header 'Authorization: Bearer <token>'Returns the library video’s current thumbnail (the image shown as
posterUrl on GET video). GCS and Firebase Storage objects are
returned as a fresh 30-minute signed URL. Public CDN URLs (for
example Mux images) are returned as stored.
This is not thumbnail generation history — use GET
/videos/{videoId}/thumbnails for AI generation jobs.
Hosted MCP braiv_get_current_thumbnail returns the URL unredacted
and, by default, JPEG/PNG/WebP bytes so agents can save the file.
Required scope: videos:read.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Braiv library video document ID.
Example
vid_01JZ8M6AQuery Parameters
Section titled “Query Parameters ”When true, include contentBase64 (JPEG, PNG, or WebP, 8MB max)
so clients that cannot follow storage URLs can still save the image.
Defaults to false on HTTP. Hosted MCP requests this by default.
Responses
Section titled “ Responses ”Current thumbnail URL, and bytes when includeBytes=true.
object
Parent library video ID.
Download URL for the current thumbnail. GCS/Firebase objects are freshly signed.
Image MIME type when known.
Expiry of a freshly signed GCS URL. Omitted for public CDN URLs.
Image bytes as base64 when includeBytes=true.
Example
{ "videoId": "vid_01JZ8M6A", "thumbnailUrl": "https://storage.googleapis.com/bucket/obj?X-Goog-Signature=abc", "contentType": "image/jpeg", "expiresAt": "2026-11-09T00:30:00.000Z"}A supported authentication header is missing or contains an invalid Public API key.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Examples
Authentication header missing
{ "error": { "code": "UNAUTHENTICATED", "message": "Missing API key.", "details": {} }}API key invalid
{ "error": { "code": "INVALID_API_KEY", "message": "Invalid API key", "details": {} }}Authentication succeeded, but the required scope, workspace role, or resource permission is missing.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Examples
{ "error": { "code": "INSUFFICIENT_SCOPE", "message": "The API key lacks the required scope.", "details": {} }}Video not found, or the video has no current thumbnail.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "UNAUTHENTICATED" }}Stored thumbnail URL is invalid or the image is larger than 8MB.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "UNAUTHENTICATED" }}The API key exceeded its allowed concurrency or request rate. Retry after in-flight work completes or the limit resets.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "RATE_LIMITED", "message": "API key concurrency limit reached", "details": {} }}An unexpected server error occurred.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "INTERNAL", "message": "An unexpected error occurred.", "details": {} }}