vidocu-ai Governance API
Locks, approvals and review comments
Locks, approvals and review comments
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/vidocu-ai:vidocu-ai-governance-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Vidocu Ai Governance API
version: 1.14.0
contact:
name: Vidocu Support
url: https://vidocu.ai
license:
name: Proprietary
url: https://vidocu.ai/terms
description: 'Operations tagged Governance across 2 of this provider''s published API definitions: support-vidocu-openapi.json, vidocu-ai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.vidocu.ai
description: Production
security:
- bearerAuth: []
- oauth2: []
tags:
- name: Governance
description: Locks, approvals and review comments
paths:
/v1/videos/{id}/lock:
post:
tags:
- Governance
summary: Lock a video
description: 'Freezes the package, cascading to its training module and KB articles. Already-locked is a no-op, not an error.
**Scope:** `locks:write`
**Role permission:** `canLock` (OAuth only — API keys carry full workspace permissions)'
operationId: postV1VideosIdLock
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`), insufficient role (`insufficient_role`), or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
tags:
- Governance
summary: Unlock a video
description: 'Refused while an approval round is open — withdraw it first.
**Scope:** `locks:write`
**Role permission:** `canLock` (OAuth only — API keys carry full workspace permissions)'
operationId: deleteV1VideosIdLock
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
locked:
type: boolean
enum:
- false
unlocked:
type: boolean
enum:
- true
required:
- locked
- unlocked
additionalProperties: false
description: Lock released.
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`), insufficient role (`insufficient_role`), or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: An approval round is open, or it isn't locked
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.vidocu.ai
description: Production
/v1/videos/{id}/approvals:
post:
tags:
- Governance
summary: Request approval
description: 'Approvers are workspace member user ids. Every one must approve; one rejection fails the round.
**Scope:** `approvals:write`
**Role permission:** `canEdit` (OAuth only — API keys carry full workspace permissions)'
operationId: postV1VideosIdApprovals
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
approvers:
type: array
items:
type: string
minLength: 1
minItems: 1
maxItems: 20
message:
type: string
maxLength: 2000
required:
- approvers
additionalProperties: false
responses:
'201':
description: Approval requested
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`), insufficient role (`insufficient_role`), or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
get:
tags:
- Governance
summary: List a video's approval rounds
description: '**Scope:** `approvals:read`'
operationId: getV1VideosIdApprovals
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`) or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.vidocu.ai
description: Production
/v1/approvals:
get:
tags:
- Governance
summary: List approval requests
description: '**Scope:** `approvals:read`'
operationId: getV1Approvals
parameters:
- name: status
in: query
required: false
schema:
type: string
enum:
- pending
- approved
- rejected
- withdrawn
- name: videoId
in: query
required: false
schema:
type: string
minLength: 1
- name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 100
default: 20
responses:
'200':
description: Success
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`) or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.vidocu.ai
description: Production
/v1/approvals/{id}/decide:
post:
tags:
- Governance
summary: Approve or reject
description: 'Only a named approver can decide, and only once.
**Scope:** `approvals:write`'
operationId: postV1ApprovalsIdDecide
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
decision:
type: string
enum:
- approved
- rejected
comment:
type: string
maxLength: 2000
required:
- decision
additionalProperties: false
responses:
'200':
description: Success
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`) or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Not an approver, or already decided
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.vidocu.ai
description: Production
/v1/approvals/{id}/withdraw:
post:
tags:
- Governance
summary: Withdraw an approval round
description: 'Clears the video''s approval state. Required before unlocking.
**Scope:** `approvals:write`'
operationId: postV1ApprovalsIdWithdraw
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`) or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.vidocu.ai
description: Production
/v1/videos/{id}/comments:
get:
tags:
- Governance
summary: List comments
description: '**Scope:** `comments:read`'
operationId: getV1VideosIdComments
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`) or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
tags:
- Governance
summary: Add a comment
description: 'Optionally pinned to a timestamp in the video.
**Scope:** `comments:write`
**Role permission:** `canEdit` (OAuth only — API keys carry full workspace permissions)'
operationId: postV1VideosIdComments
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
text:
type: string
minLength: 1
maxLength: 5000
timestamp:
type: number
minimum: 0
required:
- text
additionalProperties: false
responses:
'201':
description: Comment added
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`), insufficient role (`insufficient_role`), or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.vidocu.ai
description: Production
/v1/videos/{id}/comments/{commentId}:
delete:
tags:
- Governance
summary: Delete a comment
description: '**Scope:** `comments:write`
**Role permission:** `canEdit` (OAuth only — API keys carry full workspace permissions)'
operationId: deleteV1VideosIdCommentsCommentId
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: commentId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- true
id:
type: string
deleted:
type: boolean
enum:
- true
required:
- success
- id
- deleted
additionalProperties: false
description: Resource deleted.
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credentials
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing scope (`insufficient_scope`), insufficient role (`insufficient_role`), or quota exhausted (`limit_exceeded`)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (60 req/min)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.vidocu.ai
description: Production
components:
schemas:
Error:
type: object
properties:
error:
type: object
properties:
code:
type: string
description: Machine-readable code, e.g. `validation_error`, `insufficient_role`, `locked`
message:
type: string
required:
- code
- message
required:
- error
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: An API key (`vdo_live_...`) or an OAuth 2.0 access token (`vdo_oat_...`).
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://vidocu.ai/oauth/authorize
tokenUrl: https://api.vidocu.ai/oauth/token
scopes:
videos:read: View videos in the workspace
videos:write: Upload and modify videos
projects:read: View project folders
projects:write: Create, update, and delete project folders
subtitles:read: View subtitles
subtitles:write: Generate and edit subtitles
export:write: Export videos
translate:write: Translate videos
voiceover:write: Generate voiceovers
article:read: View help articles
article:write: Generate help articles
analyze:write: Analyze videos
tools:read: List and view tools
tools:write: Execute tools
jobs:read: View job status
courses:read: View courses and their storyboards
courses:write: Create courses and run planning, storyboarding and generation
studio:read: View Studio projects and templates
studio:write: Create, edit and share Studio projects
modules:read: View training modules, results and qualifications
modules:write: Create, edit and translate training modules; record attempts and sign-offs
remixes:read: View remixes and their analysis
remixes:write: Create remixes and run analysis
recordings:read: View AI Recorder jobs and saved logins
recordings:write: Start recordings and manage saved logins
knowledge_base:read: View the knowledge base, its articles and analytics
knowledge_base:write: Create and edit knowledge base content
brand_kit:read: View Brand Kit settings, skills and glossary
brand_kit:write: Change Brand Kit settings, skills and glossary
usage:read: View usage statistics
voices:read: List available voices
voices:write: Delete cloned voices
avatars:read: List available AI avatars
avatars:write: Create custom AI avatars
webhooks:read: View webhook subscriptions
webhooks:write: Create, update, and delete webhooks
process:write: Use one-shot process endpoint
approvals:read: View approval rounds and requests
approvals:write: Request, decide and withdraw approvals
comments:read: View comments on videos
comments:write: Add and delete comments
locks:write: Lock and unlock videos and modules
x-refined-from:
- support-vidocu-openapi.json
- vidocu-ai-openapi.json