Skip to content

Changelog

  • Hosted MCP accepts path-scoped OAuth discovery (/.well-known/oauth-protected-resource/mcp) and re-reads the Bearer on every request so Grok Bot / cloud connectors stay authenticated. See MCP.
  • GET /videos/{id}/professional-hosting and POST /videos/{id}/professional-hosting activate Mux professional hosting (Studio Activate Pro Hosting). Required scopes: videos:read / videos:write. Pro and Business only. Hosted MCP: braiv_get_professional_hosting, braiv_activate_professional_hosting. See Activate professional hosting.
  • Hosted MCP returns the GCS resumable start URL from braiv_create_video_upload and braiv_prepare_local_upload (not redacted) so a local agent can PUT file bytes. Download and audio URLs stay redacted.
  • GET /folders, GET /folders/{folderId}, and POST /folders manage Studio library folders and subfolders (parentId, max 3 levels). Required scopes: videos:read / videos:write. Hosted MCP: braiv_list_folders, braiv_get_folder, braiv_create_folder.
  • Speech scopes tts:read, tts:synthesize, and tts:write are part of the Public API / OAuth scope set. Hosted MCP Connect tokens (oat_) can call Braiv Speech (/v1/voices, /v1/text-to-speech). Voice clones are not Brand Voices (GET /brand-voices). See Voices and MCP.
  • Import products.packaging.thumbnail accepts the full zero-prompt config: Creative (thumbnail-v2 + characters / brandVoiceId) and Precision (thumbnail-precision + opaque autoDetectContentReferences). true and {} stay faceless Creative. Upload and HTTPS ingest now create packaging AutomationRuns like URL import.
  • POST /videos/{id}/thumbnails zero_prompt shares that config. Auto-detect returns 202 and packaging_{videoId}_zeroPromptThumbnail. Prompt mode supports Precision plates and brandVoiceId (auto-detect is zero-prompt / packaging only).
  • New recipe: Generate a thumbnail.
  • OAuth Connect workspace picker: after sign-in, users with team memberships choose Personal or a team library; the oat_ token binds that workspaceId. Personal-only accounts skip the step.
  • GET /characters (listCharacters) and GET /brand-voices (listBrandVoices) — list Studio-saved thumbnail characters and branding guidelines (Brand Voices) for the API key’s library. Required scope: videos:read. Import-recipe wiring shipped 2026-09-08.
  • Hosted MCP guide (rolling out): https://mcp.braiv.co/mcp, OAuth Connect for Cursor, Claude, VS Code, Windsurf, and other clients (no pasted API key when Connect works).
  • OAuth appendix updated for the production issuer and MCP discovery.

Contract and docs aligned for soak / GA prep.

  • Base URL: https://api.braiv.co/v1. TTS stays on /v1/models, /v1/voices/**, /v1/text-to-speech/**.
  • GET /health (operationId: health) — unauthenticated {ok:true,version:"v1"}.
  • OpenAPI 3.1 download: /public-api/openapi.yaml.
  • GET /videos/{videoId}/jobs includes captions_* jobs from caption translation.
  • Authenticate with header keys (Authorization or X-Api-Key).
  • Idempotent POST replay treats Hosting path variants (/v1/… vs bare path, trailing slash) as the same request. A different body still returns 409 IDEMPOTENCY_REPLAY.
  • Dub product is plus or premium. Omitted product defaults to plus.

First public release of the Braiv HTTP API.

  • Video ingest (YouTube, Dropbox, Google Drive, HTTPS fetch, resumable upload)
  • Jobs, transcripts, subtitles, caption translation
  • Dubbing, shorts/clips/promo, video-bound thumbnails, packaging
  • Credit quote/reserve, downloads as jobs, customer webhooks
  • Scoped API keys (braiv_live_…)
  • Legacy uploadAndCaption / uploadAndDub / downloadSubtitles return 410 Gone