MCP Server

BlitzReels Video Editor

com.blitzreels/blitzreels
Design & Creative Media & Content Public & reachable MCP 2025-11-25

What this MCP does

Creates and edits short-form videos, including timelines, captions, transitions, AI-generated visuals, music, voiceovers, sound effects, rendering, and export.

add_text_overlay
Add Title Card
Add an opening title card (hook) or generic text overlay to a project timeline. Defaults to classic white: black text on a white card.
Idempotent
Input schema
{'type': 'object', 'required': ['projectId', 'text', 'idempotencyKey'], 'properties': {'kind': {'enum': ['overlay', 'title_card'], 'type': 'string', 'default': 'title_card', 'description': 'title_card is an opening hook. overlay is generic on-video text.'}, 'name': {'type': 'string', 'maxLength': 255, 'minLength': 1}, 'size': {'enum': ['compact', 'default', 'bold'], 'type': 'string', 'default': 'default', 'description': 'Title-card size. Ignored for overlay.'}, 'text': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'theme': {'enum': ['classic_white', 'legend_white', 'white_black_outline', 'stacked_black_white', 'red_on_black', 'black_on_yellow', 'red_block'], 'type': 'string', 'default': 'classic_white', 'description': 'Title-card look. classic_white is black text on a white card. Ignored for overlay.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'layerIndex': {'type': 'integer', 'minimum': 0}, 'startSeconds': {'type': 'number', 'default': 0, 'minimum': 0}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'durationSeconds': {'type': 'number', 'default': 4, 'maximum': 3600, 'minimum': 0, 'exclusiveMinimum': 0}, 'expectedRevision': {'type': 'integer', 'minimum': 0, 'description': 'Expected sequence revision, or null.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['operationId', 'projectId', 'baseRevision', 'revision', 'replayed', 'txid', 'affectedTimelineItemIds', 'createdTimelineItemIds', 'deletedTimelineItemIds', 'warnings', 'result', 'mutationReceipt'], 'properties': {'txid': {'type': 'number'}, 'result': {'type': 'object'}, 'replayed': {'type': 'boolean'}, 'revision': {'type': 'integer'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'projectId': {'type': 'string'}, 'operationId': {'type': 'string'}, 'baseRevision': {'type': 'integer'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'createdTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'deletedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'affectedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
add_transition
Add Transition
Add a timed transition effect, optionally attached to one timeline item and paired with sound.
Open world Idempotent
Input schema
{'type': 'object', 'required': ['projectId', 'startSeconds', 'idempotencyKey'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1}, 'easing': {'enum': ['linear', 'easeIn', 'easeOut', 'easeInOut'], 'type': 'string', 'default': 'easeInOut'}, 'preset': {'enum': ['flash', 'film-flash', 'whip-left', 'whip-right', 'zoom-punch', 'glitch'], 'type': 'string', 'default': 'flash'}, 'intensity': {'type': 'number', 'default': 0.5, 'maximum': 2, 'minimum': 0.2}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'includeSfx': {'type': 'boolean', 'default': False}, 'layerIndex': {'type': 'integer', 'minimum': 0}, 'startSeconds': {'type': 'number', 'minimum': 0}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'timelineItemId': {'type': 'string', 'format': 'uuid'}, 'durationSeconds': {'type': 'number', 'default': 0.6, 'maximum': 10, 'minimum': 0, 'exclusiveMinimum': 0}, 'expectedRevision': {'type': 'integer', 'minimum': 0, 'description': 'Expected sequence revision, or null.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['operationId', 'projectId', 'baseRevision', 'revision', 'replayed', 'txid', 'affectedTimelineItemIds', 'createdTimelineItemIds', 'deletedTimelineItemIds', 'warnings', 'result', 'mutationReceipt'], 'properties': {'txid': {'type': 'number'}, 'result': {'type': 'object'}, 'replayed': {'type': 'boolean'}, 'revision': {'type': 'integer'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'projectId': {'type': 'string'}, 'operationId': {'type': 'string'}, 'baseRevision': {'type': 'integer'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'createdTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'deletedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'affectedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
batch_update_timeline_clips
Batch Update Timeline Clips
Update timing, trim, layer, or state for up to 100 timeline items in one sequence transaction.
Idempotent
Input schema
{'type': 'object', 'required': ['projectId', 'updates', 'idempotencyKey'], 'properties': {'updates': {'type': 'array', 'items': {'type': 'object', 'required': ['timelineItemId'], 'properties': {'ignored': {'type': 'boolean'}, 'layerIndex': {'type': 'integer', 'minimum': 0}, 'startSeconds': {'type': 'number', 'minimum': 0}, 'timelineItemId': {'type': 'string', 'format': 'uuid'}, 'trimEndSeconds': {'type': 'number', 'minimum': 0}, 'durationSeconds': {'type': 'number', 'exclusiveMinimum': 0}, 'trimStartSeconds': {'type': 'number', 'minimum': 0}, 'blurredBackground': {'type': 'boolean'}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1, 'description': 'Each update needs at least one field to change besides timelineItemId.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'expectedRevision': {'type': 'integer', 'minimum': 0, 'description': 'Expected sequence revision, or null.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['operationId', 'projectId', 'baseRevision', 'revision', 'replayed', 'txid', 'affectedTimelineItemIds', 'createdTimelineItemIds', 'deletedTimelineItemIds', 'warnings', 'result', 'mutationReceipt'], 'properties': {'txid': {'type': 'number'}, 'result': {'type': 'object'}, 'replayed': {'type': 'boolean'}, 'revision': {'type': 'integer'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'projectId': {'type': 'string'}, 'operationId': {'type': 'string'}, 'baseRevision': {'type': 'integer'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'createdTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'deletedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'affectedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
captions_look_apply
Apply Caption Look
Apply a verified caption look to one project. Preserves word overrides unless clearWordOverrides=true. Existing captions are restyled; spoken audio is preserved.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['projectId', 'lookId', 'idempotencyKey'], 'properties': {'lookId': {'type': ['string', 'null'], 'default': None}, 'projectId': {'type': ['string', 'null'], 'format': 'uuid', 'default': None, 'description': 'UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'idempotencyKey': {'type': ['string', 'null'], 'default': None}, 'clearWordOverrides': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
captions_source_prepare
Prepare Source Captions
Restore editable project captions from the selected source's completed canonical transcript. Keeps the full recording and avoids duplicate captions on identical retries. Requires source transcription first; no-speech is an explicit successful state.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'projectId', 'assetId'], 'properties': {'assetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
captions_themes_list
List Caption Themes
List built-in caption looks and saved caption themes available to a workspace.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'includeSavedThemes': {'type': 'boolean', 'default': True, 'description': 'Include saved workspace caption themes.'}, 'includeBuiltInLooks': {'type': 'boolean', 'default': True, 'description': 'Include built-in caption looks.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['themes'], 'properties': {'themes': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': False}
captions_words_correct
Correct Caption Words
Replace selected caption words by their stable IDs. Preserves timing and the other captions; this does not change the spoken audio.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'projectId', 'updates'], 'properties': {'updates': {'type': 'array', 'items': {'type': 'object', 'required': ['wordId', 'text'], 'properties': {'text': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'wordId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'maxItems': 200, 'minItems': 1}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
captions_words_list
Read Caption Words
Read bounded editable caption words and stable word IDs for one project, optionally matching text.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'projectId', 'matchText', 'limit', 'offset'], 'properties': {'limit': {'type': 'integer', 'default': 100, 'maximum': 200, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'matchText': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'default': None}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
carousels_clone
Clone Carousel
Duplicate a carousel onto a new project. Copies slots. Icon and shot values may be pack filenames or asset:<media_asset_id>.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['idempotencyKey', 'projectId'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'kit': {'type': 'object', 'required': ['themes', 'templates', 'active_theme_id'], 'properties': {'themes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'fontFamily', 'titleColor', 'bodyColor', 'background', 'pageColor', 'overlayEnabled', 'overlayOpacity'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'bodyColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'pageColor': {'type': 'string', 'default': '', 'maxLength': 32}, 'background': {'type': 'string', 'default': '', 'maxLength': 32}, 'fontFamily': {'type': 'string', 'default': '', 'maxLength': 80}, 'titleColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'overlayEnabled': {'type': 'boolean'}, 'overlayOpacity': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 40}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'template_id', 'slots'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 40}, 'active_theme_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'name': {'type': 'string'}, 'frame': {'type': 'object', 'required': ['width', 'height', 'aspect_ratio'], 'properties': {'width': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}, 'style': {'anyOf': [{'type': 'object', 'properties': {'chip': {'type': 'object', 'properties': {'color': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'radius': {'type': 'integer', 'maximum': 48, 'minimum': 0}, 'font_size': {'type': 'integer', 'maximum': 120, 'minimum': 12}, 'padding_x': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'padding_y': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'background': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'font_family': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'font_weight': {'anyOf': [{'type': 'integer', 'maximum': 900, 'minimum': 100}, {'type': 'string'}]}, 'max_lines_per_chip': {'type': 'integer', 'maximum': 4, 'minimum': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'null'}]}, 'locale': {'type': ['string', 'null']}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'role', 'lines', 'slots', 'layout', 'visual'], 'properties': {'role': {'anyOf': [{'enum': ['hook', 'body', 'proof', 'cta'], 'type': 'string'}, {'type': 'null'}]}, 'index': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'lines': {'type': 'array', 'items': {'type': 'string'}}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'layout': {'anyOf': [{'enum': ['chip_stack_ui', 'chip_stack_face_safe', 'chip_stack_top', 'title_body_card'], 'type': 'string'}, {'type': 'null'}]}, 'visual': {'type': 'object', 'required': ['kind'], 'properties': {'html': {'type': 'string', 'maxLength': 80000, 'minLength': 20}, 'kind': {'enum': ['media_asset', 'generate', 'solid', 'gradient', 'html', 'template'], 'type': 'string'}, 'color': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'colors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'maxItems': 2, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 1000, 'minLength': 3}, 'model_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'source_media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'photo_url': {'anyOf': [{'type': 'string', 'maxLength': 4000, 'minLength': 1}, {'type': 'null'}]}, 'slot_urls': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'maxLength': 4000, 'minLength': 1}}}, 'additionalProperties': False}}, 'can_undo': {'type': 'boolean'}, 'platform': {'anyOf': [{'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, {'type': 'null'}]}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'field': {'type': 'string'}, 'repair': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'family', 'slots'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'family': {'enum': ['photo', 'designed'], 'type': 'string'}}, 'additionalProperties': False}}, 'project_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'next_actions': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'path', 'reason'], 'properties': {'path': {'type': 'string'}, 'method': {'enum': ['GET', 'POST', 'PATCH', 'DELETE'], 'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
carousels_compile
Compile Carousel
Create or replace a carousel project from a slide document. Server owns chip layout, safezones, and exact export pixels.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['platform', 'name', 'slides', 'idempotencyKey'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'style': {'type': 'object', 'properties': {'chip': {'type': 'object', 'properties': {'color': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'radius': {'type': 'integer', 'maximum': 48, 'minimum': 0}, 'font_size': {'type': 'integer', 'maximum': 120, 'minimum': 12}, 'padding_x': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'padding_y': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'background': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'font_family': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'font_weight': {'anyOf': [{'type': 'integer', 'maximum': 900, 'minimum': 100}, {'type': 'string'}]}, 'max_lines_per_chip': {'type': 'integer', 'maximum': 4, 'minimum': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'locale': {'type': 'string', 'maxLength': 12, 'minLength': 2}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['lines', 'visual'], 'properties': {'role': {'enum': ['hook', 'body', 'proof', 'cta'], 'type': 'string'}, 'lines': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'default': [], 'maxItems': 6}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'layout': {'enum': ['chip_stack_ui', 'chip_stack_face_safe', 'chip_stack_top', 'title_body_card'], 'type': 'string'}, 'visual': {'type': 'object', 'required': ['kind'], 'properties': {'html': {'type': 'string', 'maxLength': 80000, 'minLength': 20}, 'kind': {'enum': ['media_asset', 'generate', 'solid', 'gradient', 'html', 'template'], 'type': 'string'}, 'color': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'colors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'maxItems': 2, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 1000, 'minLength': 3}, 'model_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'source_media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'layout_overrides': {'type': 'object', 'properties': {'top_px': {'type': 'integer', 'maximum': 1920, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 35, 'minItems': 1}, 'platform': {'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, 'series_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'project_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'clear_existing': {'type': 'boolean'}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['project_id', 'revision', 'platform', 'slide_count', 'slides', 'frame', 'warnings', 'next_actions', 'mutationReceipt'], 'properties': {'frame': {'type': 'object', 'required': ['width', 'height', 'aspect_ratio'], 'properties': {'width': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}, 'job_id': {'type': ['string', 'null']}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'role', 'timeline_item_ids', 'overlay_ids', 'layout_applied', 'chip_band_px'], 'properties': {'role': {'anyOf': [{'enum': ['hook', 'body', 'proof', 'cta'], 'type': 'string'}, {'type': 'null'}]}, 'index': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'overlay_ids': {'type': 'array', 'items': {'type': 'string'}}, 'chip_band_px': {'type': 'object', 'required': ['top', 'bottom'], 'properties': {'top': {'type': 'number'}, 'bottom': {'type': 'number'}}, 'additionalProperties': False}, 'layout_applied': {'enum': ['chip_stack_ui', 'chip_stack_face_safe', 'chip_stack_top', 'title_body_card'], 'type': 'string'}, 'timeline_item_ids': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'platform': {'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'field': {'type': 'string'}, 'repair': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'project_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'slide_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'next_actions': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'path', 'reason'], 'properties': {'path': {'type': 'string'}, 'method': {'enum': ['GET', 'POST', 'PATCH', 'DELETE'], 'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}, 'ai_image_run_id': {'type': ['string', 'null']}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
carousels_expand_recipe
Expand Carousel Recipe
Turn a named recipe or a brief into compile-ready named-template slides. Expand never publishes and never invents metrics.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recipeId'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'brief': {'type': 'string', 'maxLength': 8000, 'minLength': 1}, 'offer': {'type': 'string', 'maxLength': 400, 'minLength': 1}, 'locale': {'type': 'string', 'maxLength': 12, 'minLength': 2}, 'product': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'audience': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'platform': {'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, 'recipeId': {'enum': ['curiosity_gap_ugc_7', 'result_first_demo_6', 'myth_guillotine_8', 'before_after_5', 'from_brief'], 'type': 'string'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recipe_id', 'name', 'platform', 'slides'], 'properties': {'name': {'type': 'string'}, 'locale': {'type': ['string', 'null']}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['lines', 'visual'], 'properties': {'role': {'enum': ['hook', 'body', 'proof', 'cta'], 'type': 'string'}, 'lines': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'default': [], 'maxItems': 6}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'layout': {'enum': ['chip_stack_ui', 'chip_stack_face_safe', 'chip_stack_top', 'title_body_card'], 'type': 'string'}, 'visual': {'type': 'object', 'required': ['kind'], 'properties': {'html': {'type': 'string', 'maxLength': 80000, 'minLength': 20}, 'kind': {'enum': ['media_asset', 'generate', 'solid', 'gradient', 'html', 'template'], 'type': 'string'}, 'color': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'colors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'maxItems': 2, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 1000, 'minLength': 3}, 'model_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'source_media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'layout_overrides': {'type': 'object', 'properties': {'top_px': {'type': 'integer', 'maximum': 1920, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'platform': {'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, 'recipe_id': {'enum': ['curiosity_gap_ugc_7', 'result_first_demo_6', 'myth_guillotine_8', 'before_after_5', 'from_brief'], 'type': 'string'}}, 'additionalProperties': False}
carousels_get
Get Carousel Document
Read the carousel slot document and the named template catalog.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id', 'revision', 'name', 'platform', 'locale', 'frame', 'style', 'slides', 'templates', 'can_undo', 'warnings', 'next_actions'], 'properties': {'kit': {'type': 'object', 'required': ['themes', 'templates', 'active_theme_id'], 'properties': {'themes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'fontFamily', 'titleColor', 'bodyColor', 'background', 'pageColor', 'overlayEnabled', 'overlayOpacity'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'bodyColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'pageColor': {'type': 'string', 'default': '', 'maxLength': 32}, 'background': {'type': 'string', 'default': '', 'maxLength': 32}, 'fontFamily': {'type': 'string', 'default': '', 'maxLength': 80}, 'titleColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'overlayEnabled': {'type': 'boolean'}, 'overlayOpacity': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 40}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'template_id', 'slots'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 40}, 'active_theme_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'name': {'type': 'string'}, 'frame': {'type': 'object', 'required': ['width', 'height', 'aspect_ratio'], 'properties': {'width': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}, 'style': {'anyOf': [{'type': 'object', 'properties': {'chip': {'type': 'object', 'properties': {'color': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'radius': {'type': 'integer', 'maximum': 48, 'minimum': 0}, 'font_size': {'type': 'integer', 'maximum': 120, 'minimum': 12}, 'padding_x': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'padding_y': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'background': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'font_family': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'font_weight': {'anyOf': [{'type': 'integer', 'maximum': 900, 'minimum': 100}, {'type': 'string'}]}, 'max_lines_per_chip': {'type': 'integer', 'maximum': 4, 'minimum': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'null'}]}, 'locale': {'type': ['string', 'null']}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'role', 'lines', 'slots', 'layout', 'visual'], 'properties': {'role': {'anyOf': [{'enum': ['hook', 'body', 'proof', 'cta'], 'type': 'string'}, {'type': 'null'}]}, 'index': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'lines': {'type': 'array', 'items': {'type': 'string'}}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'layout': {'anyOf': [{'enum': ['chip_stack_ui', 'chip_stack_face_safe', 'chip_stack_top', 'title_body_card'], 'type': 'string'}, {'type': 'null'}]}, 'visual': {'type': 'object', 'required': ['kind'], 'properties': {'html': {'type': 'string', 'maxLength': 80000, 'minLength': 20}, 'kind': {'enum': ['media_asset', 'generate', 'solid', 'gradient', 'html', 'template'], 'type': 'string'}, 'color': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'colors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'maxItems': 2, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 1000, 'minLength': 3}, 'model_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'source_media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'photo_url': {'anyOf': [{'type': 'string', 'maxLength': 4000, 'minLength': 1}, {'type': 'null'}]}, 'slot_urls': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'maxLength': 4000, 'minLength': 1}}}, 'additionalProperties': False}}, 'can_undo': {'type': 'boolean'}, 'platform': {'anyOf': [{'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, {'type': 'null'}]}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'field': {'type': 'string'}, 'repair': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'family', 'slots'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'family': {'enum': ['photo', 'designed'], 'type': 'string'}}, 'additionalProperties': False}}, 'project_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'next_actions': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'path', 'reason'], 'properties': {'path': {'type': 'string'}, 'method': {'enum': ['GET', 'POST', 'PATCH', 'DELETE'], 'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
carousels_kit
Carousel Theme Kit
Save or apply a theme, brand theme, or named slide template. Themes rewrite fonts, colors, overlay, and asset:<id> logos. Never persist signed URLs.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['idempotencyKey', 'projectId', 'op'], 'properties': {'op': {'enum': ['save_theme', 'apply_theme', 'delete_theme', 'save_template', 'apply_template', 'delete_template', 'apply_brand'], 'type': 'string'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'themeId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'slideIndex': {'type': 'integer', 'maximum': 34, 'minimum': 0}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'savedTemplateId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'kit': {'type': 'object', 'required': ['themes', 'templates', 'active_theme_id'], 'properties': {'themes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'fontFamily', 'titleColor', 'bodyColor', 'background', 'pageColor', 'overlayEnabled', 'overlayOpacity'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'bodyColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'pageColor': {'type': 'string', 'default': '', 'maxLength': 32}, 'background': {'type': 'string', 'default': '', 'maxLength': 32}, 'fontFamily': {'type': 'string', 'default': '', 'maxLength': 80}, 'titleColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'overlayEnabled': {'type': 'boolean'}, 'overlayOpacity': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 40}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'template_id', 'slots'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 40}, 'active_theme_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'name': {'type': 'string'}, 'frame': {'type': 'object', 'required': ['width', 'height', 'aspect_ratio'], 'properties': {'width': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}, 'style': {'anyOf': [{'type': 'object', 'properties': {'chip': {'type': 'object', 'properties': {'color': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'radius': {'type': 'integer', 'maximum': 48, 'minimum': 0}, 'font_size': {'type': 'integer', 'maximum': 120, 'minimum': 12}, 'padding_x': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'padding_y': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'background': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'font_family': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'font_weight': {'anyOf': [{'type': 'integer', 'maximum': 900, 'minimum': 100}, {'type': 'string'}]}, 'max_lines_per_chip': {'type': 'integer', 'maximum': 4, 'minimum': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'null'}]}, 'locale': {'type': ['string', 'null']}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'role', 'lines', 'slots', 'layout', 'visual'], 'properties': {'role': {'anyOf': [{'enum': ['hook', 'body', 'proof', 'cta'], 'type': 'string'}, {'type': 'null'}]}, 'index': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'lines': {'type': 'array', 'items': {'type': 'string'}}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'layout': {'anyOf': [{'enum': ['chip_stack_ui', 'chip_stack_face_safe', 'chip_stack_top', 'title_body_card'], 'type': 'string'}, {'type': 'null'}]}, 'visual': {'type': 'object', 'required': ['kind'], 'properties': {'html': {'type': 'string', 'maxLength': 80000, 'minLength': 20}, 'kind': {'enum': ['media_asset', 'generate', 'solid', 'gradient', 'html', 'template'], 'type': 'string'}, 'color': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'colors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'maxItems': 2, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 1000, 'minLength': 3}, 'model_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'source_media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'photo_url': {'anyOf': [{'type': 'string', 'maxLength': 4000, 'minLength': 1}, {'type': 'null'}]}, 'slot_urls': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'maxLength': 4000, 'minLength': 1}}}, 'additionalProperties': False}}, 'can_undo': {'type': 'boolean'}, 'platform': {'anyOf': [{'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, {'type': 'null'}]}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'field': {'type': 'string'}, 'repair': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'family', 'slots'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'family': {'enum': ['photo', 'designed'], 'type': 'string'}}, 'additionalProperties': False}}, 'project_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'next_actions': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'path', 'reason'], 'properties': {'path': {'type': 'string'}, 'method': {'enum': ['GET', 'POST', 'PATCH', 'DELETE'], 'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
carousels_migrate
Migrate Legacy Carousel
Rebuild a compile slot document from a legacy overlay carousel. Then patch slots like any compiled deck.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['idempotencyKey', 'projectId'], 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'kit': {'type': 'object', 'required': ['themes', 'templates', 'active_theme_id'], 'properties': {'themes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'fontFamily', 'titleColor', 'bodyColor', 'background', 'pageColor', 'overlayEnabled', 'overlayOpacity'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'bodyColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'pageColor': {'type': 'string', 'default': '', 'maxLength': 32}, 'background': {'type': 'string', 'default': '', 'maxLength': 32}, 'fontFamily': {'type': 'string', 'default': '', 'maxLength': 80}, 'titleColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'overlayEnabled': {'type': 'boolean'}, 'overlayOpacity': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 40}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'template_id', 'slots'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 40}, 'active_theme_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'name': {'type': 'string'}, 'frame': {'type': 'object', 'required': ['width', 'height', 'aspect_ratio'], 'properties': {'width': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}, 'style': {'anyOf': [{'type': 'object', 'properties': {'chip': {'type': 'object', 'properties': {'color': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'radius': {'type': 'integer', 'maximum': 48, 'minimum': 0}, 'font_size': {'type': 'integer', 'maximum': 120, 'minimum': 12}, 'padding_x': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'padding_y': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'background': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'font_family': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'font_weight': {'anyOf': [{'type': 'integer', 'maximum': 900, 'minimum': 100}, {'type': 'string'}]}, 'max_lines_per_chip': {'type': 'integer', 'maximum': 4, 'minimum': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'null'}]}, 'locale': {'type': ['string', 'null']}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'role', 'lines', 'slots', 'layout', 'visual'], 'properties': {'role': {'anyOf': [{'enum': ['hook', 'body', 'proof', 'cta'], 'type': 'string'}, {'type': 'null'}]}, 'index': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'lines': {'type': 'array', 'items': {'type': 'string'}}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'layout': {'anyOf': [{'enum': ['chip_stack_ui', 'chip_stack_face_safe', 'chip_stack_top', 'title_body_card'], 'type': 'string'}, {'type': 'null'}]}, 'visual': {'type': 'object', 'required': ['kind'], 'properties': {'html': {'type': 'string', 'maxLength': 80000, 'minLength': 20}, 'kind': {'enum': ['media_asset', 'generate', 'solid', 'gradient', 'html', 'template'], 'type': 'string'}, 'color': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'colors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'maxItems': 2, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 1000, 'minLength': 3}, 'model_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'source_media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'photo_url': {'anyOf': [{'type': 'string', 'maxLength': 4000, 'minLength': 1}, {'type': 'null'}]}, 'slot_urls': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'maxLength': 4000, 'minLength': 1}}}, 'additionalProperties': False}}, 'can_undo': {'type': 'boolean'}, 'platform': {'anyOf': [{'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, {'type': 'null'}]}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'field': {'type': 'string'}, 'repair': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'family', 'slots'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'family': {'enum': ['photo', 'designed'], 'type': 'string'}}, 'additionalProperties': False}}, 'project_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'next_actions': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'path', 'reason'], 'properties': {'path': {'type': 'string'}, 'method': {'enum': ['GET', 'POST', 'PATCH', 'DELETE'], 'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
carousels_patch_document
Patch Carousel Document
Reorder, remove, insert, duplicate, or undo slides on a compiled carousel. One write for the filmstrip. Insert rasters an empty named template unless sourceIndex copies a slide.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['idempotencyKey', 'projectId', 'op'], 'properties': {'op': {'enum': ['reorder', 'remove', 'insert', 'undo'], 'type': 'string'}, 'to': {'type': 'integer', 'maximum': 34, 'minimum': 0}, 'from': {'type': 'integer', 'maximum': 34, 'minimum': 0}, 'index': {'type': 'integer', 'maximum': 34, 'minimum': 0}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'templateId': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'sourceIndex': {'type': 'integer', 'maximum': 34, 'minimum': 0}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'kit': {'type': 'object', 'required': ['themes', 'templates', 'active_theme_id'], 'properties': {'themes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'fontFamily', 'titleColor', 'bodyColor', 'background', 'pageColor', 'overlayEnabled', 'overlayOpacity'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'bodyColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'pageColor': {'type': 'string', 'default': '', 'maxLength': 32}, 'background': {'type': 'string', 'default': '', 'maxLength': 32}, 'fontFamily': {'type': 'string', 'default': '', 'maxLength': 80}, 'titleColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'overlayEnabled': {'type': 'boolean'}, 'overlayOpacity': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 40}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'template_id', 'slots'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 40}, 'active_theme_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'name': {'type': 'string'}, 'frame': {'type': 'object', 'required': ['width', 'height', 'aspect_ratio'], 'properties': {'width': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}, 'style': {'anyOf': [{'type': 'object', 'properties': {'chip': {'type': 'object', 'properties': {'color': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'radius': {'type': 'integer', 'maximum': 48, 'minimum': 0}, 'font_size': {'type': 'integer', 'maximum': 120, 'minimum': 12}, 'padding_x': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'padding_y': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'background': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'font_family': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'font_weight': {'anyOf': [{'type': 'integer', 'maximum': 900, 'minimum': 100}, {'type': 'string'}]}, 'max_lines_per_chip': {'type': 'integer', 'maximum': 4, 'minimum': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'null'}]}, 'locale': {'type': ['string', 'null']}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'role', 'lines', 'slots', 'layout', 'visual'], 'properties': {'role': {'anyOf': [{'enum': ['hook', 'body', 'proof', 'cta'], 'type': 'string'}, {'type': 'null'}]}, 'index': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'lines': {'type': 'array', 'items': {'type': 'string'}}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'layout': {'anyOf': [{'enum': ['chip_stack_ui', 'chip_stack_face_safe', 'chip_stack_top', 'title_body_card'], 'type': 'string'}, {'type': 'null'}]}, 'visual': {'type': 'object', 'required': ['kind'], 'properties': {'html': {'type': 'string', 'maxLength': 80000, 'minLength': 20}, 'kind': {'enum': ['media_asset', 'generate', 'solid', 'gradient', 'html', 'template'], 'type': 'string'}, 'color': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'colors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'maxItems': 2, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 1000, 'minLength': 3}, 'model_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'source_media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'photo_url': {'anyOf': [{'type': 'string', 'maxLength': 4000, 'minLength': 1}, {'type': 'null'}]}, 'slot_urls': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'maxLength': 4000, 'minLength': 1}}}, 'additionalProperties': False}}, 'can_undo': {'type': 'boolean'}, 'platform': {'anyOf': [{'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, {'type': 'null'}]}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'field': {'type': 'string'}, 'repair': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'family', 'slots'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'family': {'enum': ['photo', 'designed'], 'type': 'string'}}, 'additionalProperties': False}}, 'project_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'next_actions': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'path', 'reason'], 'properties': {'path': {'type': 'string'}, 'method': {'enum': ['GET', 'POST', 'PATCH', 'DELETE'], 'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
carousels_patch_slide
Patch Carousel Slide
Patch named slots or template_id on one slide. Re-rasters that slide only. Never rewrite HTML.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['idempotencyKey', 'projectId', 'slideIndex'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 6}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'slideIndex': {'type': 'integer', 'maximum': 34, 'minimum': 0}, 'templateId': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'mediaAssetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'kit': {'type': 'object', 'required': ['themes', 'templates', 'active_theme_id'], 'properties': {'themes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'fontFamily', 'titleColor', 'bodyColor', 'background', 'pageColor', 'overlayEnabled', 'overlayOpacity'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'bodyColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'pageColor': {'type': 'string', 'default': '', 'maxLength': 32}, 'background': {'type': 'string', 'default': '', 'maxLength': 32}, 'fontFamily': {'type': 'string', 'default': '', 'maxLength': 80}, 'titleColor': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'overlayEnabled': {'type': 'boolean'}, 'overlayOpacity': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 40}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'scope', 'template_id', 'slots'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'scope': {'enum': ['project', 'brand'], 'type': 'string'}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 40}, 'active_theme_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'name': {'type': 'string'}, 'frame': {'type': 'object', 'required': ['width', 'height', 'aspect_ratio'], 'properties': {'width': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}, 'style': {'anyOf': [{'type': 'object', 'properties': {'chip': {'type': 'object', 'properties': {'color': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'radius': {'type': 'integer', 'maximum': 48, 'minimum': 0}, 'font_size': {'type': 'integer', 'maximum': 120, 'minimum': 12}, 'padding_x': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'padding_y': {'type': 'integer', 'maximum': 80, 'minimum': 0}, 'background': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'font_family': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'font_weight': {'anyOf': [{'type': 'integer', 'maximum': 900, 'minimum': 100}, {'type': 'string'}]}, 'max_lines_per_chip': {'type': 'integer', 'maximum': 4, 'minimum': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'null'}]}, 'locale': {'type': ['string', 'null']}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'role', 'lines', 'slots', 'layout', 'visual'], 'properties': {'role': {'anyOf': [{'enum': ['hook', 'body', 'proof', 'cta'], 'type': 'string'}, {'type': 'null'}]}, 'index': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'lines': {'type': 'array', 'items': {'type': 'string'}}, 'slots': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'layout': {'anyOf': [{'enum': ['chip_stack_ui', 'chip_stack_face_safe', 'chip_stack_top', 'title_body_card'], 'type': 'string'}, {'type': 'null'}]}, 'visual': {'type': 'object', 'required': ['kind'], 'properties': {'html': {'type': 'string', 'maxLength': 80000, 'minLength': 20}, 'kind': {'enum': ['media_asset', 'generate', 'solid', 'gradient', 'html', 'template'], 'type': 'string'}, 'color': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'colors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'maxItems': 2, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 1000, 'minLength': 3}, 'model_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'template_id': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'source_media_asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'photo_url': {'anyOf': [{'type': 'string', 'maxLength': 4000, 'minLength': 1}, {'type': 'null'}]}, 'slot_urls': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'maxLength': 4000, 'minLength': 1}}}, 'additionalProperties': False}}, 'can_undo': {'type': 'boolean'}, 'platform': {'anyOf': [{'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, {'type': 'null'}]}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'field': {'type': 'string'}, 'repair': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'family', 'slots'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label'], 'properties': {'key': {'type': 'string'}, 'label': {'type': 'string'}}, 'additionalProperties': False}}, 'family': {'enum': ['photo', 'designed'], 'type': 'string'}}, 'additionalProperties': False}}, 'project_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'next_actions': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'path', 'reason'], 'properties': {'path': {'type': 'string'}, 'method': {'enum': ['GET', 'POST', 'PATCH', 'DELETE'], 'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
carousels_preview
Preview Carousel
Render JPEG stills for a compiled carousel at the exact platform frame and return them as MCP images so you can inspect chips on the real slides.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['projectId', 'chrome'], 'properties': {'chrome': {'enum': ['tiktok', 'instagram', 'none'], 'type': 'string', 'default': 'none'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'slideIndexes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 34, 'minimum': 0}, 'maxItems': 35}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id', 'revision', 'platform', 'frame', 'slides', 'warnings', 'next_actions'], 'properties': {'frame': {'type': 'object', 'required': ['width', 'height', 'aspect_ratio'], 'properties': {'width': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'aspect_ratio': {'type': 'string'}}, 'additionalProperties': False}, 'slides': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'preview_url', 'width', 'height', 'expires_at'], 'properties': {'index': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'print': {'enum': ['slots', 'ingested'], 'type': 'string'}, 'width': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'height': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'expires_at': {'type': 'string'}, 'preview_url': {'type': 'string'}}, 'additionalProperties': False}}, 'platform': {'anyOf': [{'enum': ['tiktok_photo', 'instagram_4x5', 'linkedin'], 'type': 'string'}, {'type': 'null'}]}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'field': {'type': 'string'}, 'repair': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'project_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'next_actions': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'path', 'reason'], 'properties': {'path': {'type': 'string'}, 'method': {'enum': ['GET', 'POST', 'PATCH', 'DELETE'], 'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
characters_apply
Apply Reusable Character
Create or update a reference-based character for repeatable faceless story generation.
Idempotent
Input schema
{'type': 'object', 'required': ['name', 'idempotencyKey'], 'properties': {'name': {'type': 'string'}, 'type': {'enum': ['human', 'fictional', 'other'], 'type': 'string', 'default': 'human'}, 'species': {'type': 'string'}, 'storyFacts': {'type': 'array', 'items': {'type': 'string'}}, 'characterId': {'type': 'string'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace UUID. Defaults to the user's default workspace. UUID string."}, 'defaultVoiceId': {'type': 'string'}, 'idempotencyKey': {'type': 'string'}, 'defaultVoiceStyle': {'type': 'string'}, 'referenceAssetIds': {'type': 'array', 'items': {'type': 'string'}}, 'canonicalDescription': {'type': 'string'}, 'confirmLikenessConsent': {'type': 'boolean', 'default': False, 'description': "For a human character, set true only after the user confirms consent to use the depicted person's likeness."}, 'primaryReferenceAssetId': {'type': 'string'}, 'confirmRightsToReferences': {'type': 'boolean', 'default': False, 'description': 'Set true only after the user confirms they own the reference media or have permission to use it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['character', 'mutationReceipt'], 'properties': {'character': {'type': 'object'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
characters_get
Get Reusable Character
Inspect one reusable character and its ordered reference-image set before planning a story.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['characterId'], 'properties': {'characterId': {'type': 'string'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace UUID. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['character'], 'properties': {'character': {'type': 'object'}}, 'additionalProperties': False}
characters_list
List Reusable Characters
List bounded reusable characters with identity, voice, facts, and image-reference metadata.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'number', 'default': 0, 'minimum': 0}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace UUID. Defaults to the user's default workspace. UUID string."}, 'includeArchived': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['characters', 'bounds'], 'properties': {'bounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}, 'characters': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': False}
clip_batches_delete
Delete Clip Batch
Preview or delete a terminal clip batch. Dry-run is the default; real deletion requires explicit confirmation, retention choice, workspace delete permission, and an idempotency key.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['batchId', 'idempotencyKey'], 'properties': {'dryRun': {'type': 'boolean', 'default': True}, 'batchId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'retention': {'enum': ['retain_projects_and_exports', 'delete_projects_and_exports'], 'type': 'string', 'default': 'retain_projects_and_exports'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'confirmDelete': {'type': 'boolean', 'default': False}, 'idempotencyKey': {'type': 'string', 'maxLength': 255, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
clips_candidates_list
Review Clip Candidates
Read existing suggested moments with source ranges, hooks, transcript excerpts and thumbnails before producing videos. Results are bounded; this does not generate suggestions or render clips.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'assetId', 'limit', 'offset'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'assetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
clips_create
Create Clips
Create a private BlitzReels clip batch from an existing asset or a user-provided video URL. Supports public social videos, Google Drive, and direct media URLs.
Open world
Input schema
{'type': 'object', 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Video URL to import before clipping. Supports social video links, Google Drive file links, and direct video file URLs.'}, 'assetId': {'type': 'string', 'format': 'uuid', 'description': 'Existing BlitzReels video asset ID. Provide assetId or url, not both. UUID string.'}, 'seriesId': {'type': 'string', 'description': 'Optional Series UUID. Omitted inherits the source Series; null creates standalone clips.'}, 'clipCount': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Maximum clips requested. Available source moments and account limits can yield fewer.'}, 'selection': {'anyOf': [{'type': 'object', 'required': ['includeIds', 'excludeIds'], 'properties': {'excludeIds': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50, 'uniqueItems': True}, 'includeIds': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50, 'minItems': 1, 'uniqueItems': True}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'default': None, 'description': 'Existing asset only: reviewed candidate IDs to include in order or exclude. Resolve IDs with clips_candidates_list first. Null delegates selection.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'clipPresetId': {'enum': ['default', 'high-retention', 'demo-focus'], 'type': 'string', 'default': 'default', 'description': 'Clip style preset. Use high-retention for High Retention clips or demo-focus for product and screen demos.'}, 'captionThemeId': {'type': 'string', 'description': 'Saved theme UUID or built-in caption look. Omitted inherits Series defaults; null uses workspace captions.'}, 'durationBounds': {'anyOf': [{'type': 'object', 'required': ['minSeconds', 'maxSeconds'], 'properties': {'maxSeconds': {'type': ['number', 'null'], 'maximum': 180, 'minimum': 1}, 'minSeconds': {'type': ['number', 'null'], 'maximum': 180, 'minimum': 1}}, 'additionalProperties': False}, {'type': 'null'}], 'default': None, 'description': 'Requested clip duration bounds. Selection preserves complete moments; minimum cannot exceed maximum.'}, 'idempotencyKey': {'type': 'string', 'description': 'Retry key. Reuse only with identical inputs.'}, 'autoTrimSilence': {'type': 'boolean', 'default': True, 'description': 'Trim silence around selected moments.'}, 'createSharePage': {'type': 'boolean', 'default': False, 'description': 'Create a public showcase page where completed clips appear.'}, 'selectedAudioLanguage': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Audio language track for a social-video URL, using the language reported by media_import_inspect. Null uses source default. Existing assets and direct files preserve source audio.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result', 'batch'], 'properties': {'batch': {'type': 'object', 'required': ['id', 'status', 'assetId', 'projectFolderId', 'estimatedClipCount', 'totalClipCount', 'renderedCount', 'failedCount', 'reviewCount', 'clipPreset', 'selectedQuality', 'lastErrorMessage', 'sourceUrl', 'studioUrl', 'projectFolderUrl', 'zipDownloadUrl', 'downloadUrlExpiresInSeconds', 'polling', 'clips'], 'properties': {'id': {'type': 'string'}, 'clips': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'suggestionId', 'projectId', 'exportId', 'title', 'status', 'downloadUrl', 'thumbnailUrl', 'errorMessage'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'status': {'type': 'string'}, 'exportId': {'type': ['string', 'null']}, 'projectId': {'type': ['string', 'null']}, 'downloadUrl': {'type': ['string', 'null']}, 'errorMessage': {'type': ['string', 'null']}, 'suggestionId': {'type': ['string', 'null']}, 'thumbnailUrl': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'status': {'type': 'string'}, 'assetId': {'type': 'string'}, 'polling': {'type': 'object', 'required': ['state', 'stage', 'isTerminal', 'shouldPoll', 'suggestedTool', 'nextPollAfterSeconds', 'maxPollSeconds', 'maxPollAttempts'], 'properties': {'stage': {'type': 'string'}, 'state': {'type': 'string'}, 'isTerminal': {'type': 'boolean'}, 'shouldPoll': {'type': 'boolean'}, 'suggestedTool': {'enum': ['clips_get', 'clips_status_get'], 'type': 'string'}, 'maxPollSeconds': {'type': 'number'}, 'maxPollAttempts': {'type': 'number'}, 'nextPollAfterSeconds': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'sourceUrl': {'type': 'string'}, 'studioUrl': {'type': 'string'}, 'clipPreset': {'anyOf': [{'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'failedCount': {'type': 'number'}, 'reviewCount': {'type': 'number'}, 'renderedCount': {'type': 'number'}, 'totalClipCount': {'type': 'number'}, 'zipDownloadUrl': {'type': ['string', 'null']}, 'projectFolderId': {'type': ['string', 'null']}, 'selectedQuality': {'type': ['string', 'null']}, 'lastErrorMessage': {'type': ['string', 'null']}, 'projectFolderUrl': {'type': ['string', 'null']}, 'estimatedClipCount': {'type': 'number'}, 'downloadUrlExpiresInSeconds': {'type': 'number'}}, 'additionalProperties': False}, 'result': {'type': 'object', 'required': ['batch', 'importedAssetId', 'sourceKind', 'mutationReceipt'], 'properties': {'batch': {'type': 'object', 'required': ['id', 'status', 'assetId', 'projectFolderId', 'estimatedClipCount', 'totalClipCount', 'renderedCount', 'failedCount', 'reviewCount', 'clipPreset', 'selectedQuality', 'lastErrorMessage', 'sourceUrl', 'studioUrl', 'projectFolderUrl', 'zipDownloadUrl', 'downloadUrlExpiresInSeconds', 'polling', 'clips'], 'properties': {'id': {'type': 'string'}, 'clips': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'suggestionId', 'projectId', 'exportId', 'title', 'status', 'downloadUrl', 'thumbnailUrl', 'errorMessage'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'status': {'type': 'string'}, 'exportId': {'type': ['string', 'null']}, 'projectId': {'type': ['string', 'null']}, 'downloadUrl': {'type': ['string', 'null']}, 'errorMessage': {'type': ['string', 'null']}, 'suggestionId': {'type': ['string', 'null']}, 'thumbnailUrl': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'status': {'type': 'string'}, 'assetId': {'type': 'string'}, 'polling': {'type': 'object', 'required': ['state', 'stage', 'isTerminal', 'shouldPoll', 'suggestedTool', 'nextPollAfterSeconds', 'maxPollSeconds', 'maxPollAttempts'], 'properties': {'stage': {'type': 'string'}, 'state': {'type': 'string'}, 'isTerminal': {'type': 'boolean'}, 'shouldPoll': {'type': 'boolean'}, 'suggestedTool': {'enum': ['clips_get', 'clips_status_get'], 'type': 'string'}, 'maxPollSeconds': {'type': 'number'}, 'maxPollAttempts': {'type': 'number'}, 'nextPollAfterSeconds': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'sourceUrl': {'type': 'string'}, 'studioUrl': {'type': 'string'}, 'clipPreset': {'anyOf': [{'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'failedCount': {'type': 'number'}, 'reviewCount': {'type': 'number'}, 'renderedCount': {'type': 'number'}, 'totalClipCount': {'type': 'number'}, 'zipDownloadUrl': {'type': ['string', 'null']}, 'projectFolderId': {'type': ['string', 'null']}, 'selectedQuality': {'type': ['string', 'null']}, 'lastErrorMessage': {'type': ['string', 'null']}, 'projectFolderUrl': {'type': ['string', 'null']}, 'estimatedClipCount': {'type': 'number'}, 'downloadUrlExpiresInSeconds': {'type': 'number'}}, 'additionalProperties': False}, 'sourceKind': {'type': 'string'}, 'importedAssetId': {'type': 'string'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}
clips_export
Export One Clip
Render one managed clip at an existing-account-supported quality. Returns persisted export state; inspect until the accepted delivery file is ready. Can spend existing account credits.
Idempotent
Input schema
{'type': 'object', 'required': ['clipId', 'idempotencyKey'], 'properties': {'clipId': {'type': ['string', 'null'], 'default': None}, 'format': {'enum': ['mp4', 'mov'], 'type': 'string', 'default': 'mp4'}, 'resolution': {'enum': ['720p', '1080p'], 'type': 'string', 'default': '1080p'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'idempotencyKey': {'type': ['string', 'null'], 'default': None}, 'coverFrameSeconds': {'type': 'number', 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
clips_get
Get Clip Batch
Get status, generated clips, render counts, and download links for a BlitzReels clip batch.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['batchId'], 'properties': {'batchId': {'type': 'string', 'format': 'uuid', 'description': 'Clip batch ID. UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['batch'], 'properties': {'batch': {'type': 'object', 'required': ['id', 'status', 'assetId', 'projectFolderId', 'estimatedClipCount', 'totalClipCount', 'renderedCount', 'failedCount', 'reviewCount', 'clipPreset', 'selectedQuality', 'lastErrorMessage', 'sourceUrl', 'studioUrl', 'projectFolderUrl', 'zipDownloadUrl', 'downloadUrlExpiresInSeconds', 'polling', 'clips'], 'properties': {'id': {'type': 'string'}, 'clips': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'suggestionId', 'projectId', 'exportId', 'title', 'status', 'downloadUrl', 'thumbnailUrl', 'errorMessage'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'status': {'type': 'string'}, 'exportId': {'type': ['string', 'null']}, 'projectId': {'type': ['string', 'null']}, 'downloadUrl': {'type': ['string', 'null']}, 'errorMessage': {'type': ['string', 'null']}, 'suggestionId': {'type': ['string', 'null']}, 'thumbnailUrl': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'status': {'type': 'string'}, 'assetId': {'type': 'string'}, 'polling': {'type': 'object', 'required': ['state', 'stage', 'isTerminal', 'shouldPoll', 'suggestedTool', 'nextPollAfterSeconds', 'maxPollSeconds', 'maxPollAttempts'], 'properties': {'stage': {'type': 'string'}, 'state': {'type': 'string'}, 'isTerminal': {'type': 'boolean'}, 'shouldPoll': {'type': 'boolean'}, 'suggestedTool': {'enum': ['clips_get', 'clips_status_get'], 'type': 'string'}, 'maxPollSeconds': {'type': 'number'}, 'maxPollAttempts': {'type': 'number'}, 'nextPollAfterSeconds': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'sourceUrl': {'type': 'string'}, 'studioUrl': {'type': 'string'}, 'clipPreset': {'anyOf': [{'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'failedCount': {'type': 'number'}, 'reviewCount': {'type': 'number'}, 'renderedCount': {'type': 'number'}, 'totalClipCount': {'type': 'number'}, 'zipDownloadUrl': {'type': ['string', 'null']}, 'projectFolderId': {'type': ['string', 'null']}, 'selectedQuality': {'type': ['string', 'null']}, 'lastErrorMessage': {'type': ['string', 'null']}, 'projectFolderUrl': {'type': ['string', 'null']}, 'estimatedClipCount': {'type': 'number'}, 'downloadUrlExpiresInSeconds': {'type': 'number'}}, 'additionalProperties': False}}, 'additionalProperties': False}
clip_share_get
Read Clip Review Link
Read whether the source video's clip share page is public and which clips are visible. Does not publish content.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'assetId'], 'properties': {'assetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
clip_share_publish
Publish a Clip Review Link
Make the selected source video's clip page public with reviewed title, description and explicit download permission. Requires confirmPublicSharing=true from the user. Returns the verified public URL; no social network post is made.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'assetId', 'title', 'description', 'allowDownloads', 'confirmPublicSharing'], 'properties': {'title': {'type': 'string', 'maxLength': 140, 'minLength': 1}, 'assetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'description': {'type': 'string', 'default': '', 'maxLength': 500}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'allowDownloads': {'type': 'boolean'}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'confirmPublicSharing': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
clip_share_unpublish
Unpublish a Clip Review Link
Disable public access to the selected clip page. Changes an existing publication; preserves private projects and exports.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'assetId'], 'properties': {'assetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
clip_share_visibility_set
Set Shared Clip Visibility
Show or hide one identified clip on an existing public review page after explicit user confirmation. Preserves the other clips and private project data.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'assetId', 'clipId', 'visibility', 'confirmPublicSharing'], 'properties': {'clipId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'visibility': {'enum': ['visible', 'hidden'], 'type': 'string'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'confirmPublicSharing': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
clips_inspect
Inspect One Clip
Read one managed clip's selected source range, project, workflow state and delivery information.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['clipId'], 'properties': {'clipId': {'type': ['string', 'null'], 'default': None}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
clips_list
List Clips
List bounded managed clips from the selected source or project with their current workflow state.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'number', 'default': 0, 'minimum': 0}, 'status': {'type': 'string'}, 'assetId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
clips_manage
Manage Clips
List or inspect clips, regenerate, repair visual QA, start export, promote an accepted delivery export, inspect caption words, or apply a verified caption look.
Open world
Input schema
{'type': 'object', 'required': ['operation'], 'properties': {'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1}, 'clipId': {'type': 'string'}, 'format': {'enum': ['mp4', 'mov'], 'type': 'string', 'default': 'mp4'}, 'lookId': {'type': 'string'}, 'offset': {'type': 'number', 'default': 0, 'minimum': 0}, 'status': {'type': 'string'}, 'assetId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'exportId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'matchText': {'type': 'string'}, 'operation': {'enum': ['list', 'get', 'reselect', 'repair', 'export', 'promote_export', 'list_caption_words', 'set_caption_look'], 'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'endSeconds': {'type': 'number'}, 'layoutMode': {'enum': ['auto', 'people_first', 'screen_first', 'preserve_full_source', 'prefer_split', 'prefer_focus', 'prefer_tutorial', 'prefer_demo'], 'type': 'string'}, 'repairMode': {'enum': ['auto', 'prefer_split', 'prefer_focus', 'prefer_tutorial', 'prefer_demo', 'move_captions_off_faces'], 'type': 'string', 'default': 'auto'}, 'resolution': {'enum': ['720p', '1080p'], 'type': 'string', 'default': '1080p'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'startSeconds': {'type': 'number', 'minimum': 0}, 'suggestionId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'selectionMode': {'enum': ['auto_best', 'suggestion', 'time_range'], 'type': 'string'}, 'idempotencyKey': {'type': 'string'}, 'timelineItemId': {'type': 'string'}, 'captionsEnabled': {'type': 'boolean'}, 'confirmVisualQa': {'type': 'boolean', 'default': False}, 'contentTypeHint': {'enum': ['auto', 'podcast', 'tutorial', 'demo', 'generic'], 'type': 'string'}, 'captionWordLimit': {'type': 'number', 'default': 100, 'maximum': 500, 'minimum': 1}, 'coverFrameSeconds': {'type': 'number', 'minimum': 0}, 'clearWordOverrides': {'type': 'boolean', 'default': False}, 'maxDurationSeconds': {'type': 'number'}, 'minDurationSeconds': {'type': 'number'}, 'allowBlockingQaBypass': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
clips_presets_list
List Clip Presets
List available clip batch presets and their clipping/caption defaults.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['presets'], 'properties': {'presets': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': False}
clips_recover
Recover Missing Clips
Recover a terminal batch's missing clip count through the persisted recovery workflow. Preserves accepted clips and returns the recovery batch ID. Can spend existing account credits; retry with the identical idempotency key.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'batchId', 'targetClipCount'], 'properties': {'batchId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'targetClipCount': {'anyOf': [{'type': 'integer', 'maximum': 30, 'minimum': 1}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
clips_repair
Repair One Clip Layout
Request a layout repair for one managed clip, such as preserving a screen demo or moving captions away from faces. Changes that clip's project; preserves the other clips.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['clipId', 'idempotencyKey'], 'properties': {'clipId': {'type': ['string', 'null'], 'default': None}, 'repairMode': {'enum': ['auto', 'prefer_split', 'prefer_focus', 'prefer_tutorial', 'prefer_demo', 'move_captions_off_faces'], 'type': 'string', 'default': 'auto'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'idempotencyKey': {'type': ['string', 'null'], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
clips_reselect
Revise Selected Moment
Replace the source moment for one managed clip using a verified suggestion or explicit time range. Can spend existing account credits. Preserves the other clips; read current state before retrying.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['clipId', 'selectionMode', 'idempotencyKey'], 'properties': {'clipId': {'type': ['string', 'null'], 'default': None}, 'lookId': {'type': 'string'}, 'endSeconds': {'type': 'number'}, 'layoutMode': {'enum': ['auto', 'people_first', 'screen_first', 'preserve_full_source', 'prefer_split', 'prefer_focus', 'prefer_tutorial', 'prefer_demo'], 'type': 'string'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'startSeconds': {'type': 'number', 'minimum': 0}, 'suggestionId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'selectionMode': {'enum': ['auto_best', 'suggestion', 'time_range'], 'type': ['string', 'null'], 'default': None}, 'idempotencyKey': {'type': ['string', 'null'], 'default': None}, 'captionsEnabled': {'type': 'boolean'}, 'contentTypeHint': {'enum': ['auto', 'podcast', 'tutorial', 'demo', 'generic'], 'type': 'string'}, 'maxDurationSeconds': {'type': 'number'}, 'minDurationSeconds': {'type': 'number'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
clips_status_get
Refresh Clip Progress
Read one existing batch's progress, ready clips and renewed signed links without opening or remounting a review widget. Safe for bounded polling and widget refresh; does not recreate or repair clips.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['batchId'], 'properties': {'batchId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['batch'], 'properties': {'batch': {'type': 'object', 'required': ['id', 'status', 'assetId', 'projectFolderId', 'estimatedClipCount', 'totalClipCount', 'renderedCount', 'failedCount', 'reviewCount', 'clipPreset', 'selectedQuality', 'lastErrorMessage', 'sourceUrl', 'studioUrl', 'projectFolderUrl', 'zipDownloadUrl', 'downloadUrlExpiresInSeconds', 'polling', 'clips'], 'properties': {'id': {'type': 'string'}, 'clips': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'suggestionId', 'projectId', 'exportId', 'title', 'status', 'downloadUrl', 'thumbnailUrl', 'errorMessage'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'status': {'type': 'string'}, 'exportId': {'type': ['string', 'null']}, 'projectId': {'type': ['string', 'null']}, 'downloadUrl': {'type': ['string', 'null']}, 'errorMessage': {'type': ['string', 'null']}, 'suggestionId': {'type': ['string', 'null']}, 'thumbnailUrl': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'status': {'type': 'string'}, 'assetId': {'type': 'string'}, 'polling': {'type': 'object', 'required': ['state', 'stage', 'isTerminal', 'shouldPoll', 'suggestedTool', 'nextPollAfterSeconds', 'maxPollSeconds', 'maxPollAttempts'], 'properties': {'stage': {'type': 'string'}, 'state': {'type': 'string'}, 'isTerminal': {'type': 'boolean'}, 'shouldPoll': {'type': 'boolean'}, 'suggestedTool': {'enum': ['clips_get', 'clips_status_get'], 'type': 'string'}, 'maxPollSeconds': {'type': 'number'}, 'maxPollAttempts': {'type': 'number'}, 'nextPollAfterSeconds': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'sourceUrl': {'type': 'string'}, 'studioUrl': {'type': 'string'}, 'clipPreset': {'anyOf': [{'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'failedCount': {'type': 'number'}, 'reviewCount': {'type': 'number'}, 'renderedCount': {'type': 'number'}, 'totalClipCount': {'type': 'number'}, 'zipDownloadUrl': {'type': ['string', 'null']}, 'projectFolderId': {'type': ['string', 'null']}, 'selectedQuality': {'type': ['string', 'null']}, 'lastErrorMessage': {'type': ['string', 'null']}, 'projectFolderUrl': {'type': ['string', 'null']}, 'estimatedClipCount': {'type': 'number'}, 'downloadUrlExpiresInSeconds': {'type': 'number'}}, 'additionalProperties': False}}, 'additionalProperties': False}
content_performance_list
Read Published Content Performance
Read bounded existing provider-reported engagement in the selected workspace, sorted by views. Returns source title, caption, published date and views/likes/comments/shares/saves. Does not import new data, start monitoring or infer attributable leads, sales or revenue.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'platform', 'range', 'limit', 'offset', 'search'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'range': {'enum': ['7d', '30d', '90d', 'all'], 'type': 'string', 'default': '30d'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'search': {'type': 'string', 'default': '', 'maxLength': 200}, 'platform': {'enum': ['all', 'youtube', 'instagram', 'facebook', 'tiktok'], 'type': 'string', 'default': 'all'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
delete_timeline_items
Delete Timeline Items
Preview or delete up to 100 timeline items and optionally remove linked captions.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['projectId', 'timelineItemIds'], 'properties': {'dryRun': {'type': 'boolean', 'default': True}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'confirmDelete': {'type': 'boolean', 'default': False}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8}, 'timelineItemIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 100, 'minItems': 1}, 'expectedRevision': {'type': 'integer', 'minimum': 0, 'description': 'Expected sequence revision, or null.'}, 'removeAssociatedCaptions': {'type': 'boolean', 'default': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['dryRun', 'plan'], 'properties': {'plan': {'type': 'object'}, 'dryRun': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, {'type': 'object', 'required': ['dryRun', 'mutation'], 'properties': {'dryRun': {'type': 'boolean', 'const': False}, 'mutation': {'type': 'object', 'required': ['operationId', 'projectId', 'baseRevision', 'revision', 'replayed', 'txid', 'affectedTimelineItemIds', 'createdTimelineItemIds', 'deletedTimelineItemIds', 'warnings', 'result', 'mutationReceipt'], 'properties': {'txid': {'type': 'number'}, 'result': {'type': 'object'}, 'replayed': {'type': 'boolean'}, 'revision': {'type': 'integer'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'projectId': {'type': 'string'}, 'operationId': {'type': 'string'}, 'baseRevision': {'type': 'integer'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'createdTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'deletedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'affectedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}]}
editor_asset_replace
editor asset replace
Replace one shot's media asset while preserving the other timeline items. Revision checked; dryRun previews by default. Requires a current editor snapshot and an asset in the same workspace.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itemId', 'assetId', 'workspaceId', 'idempotencyKey', 'projectId', 'expectedRevision', 'dryRun'], 'properties': {'dryRun': {'type': 'boolean', 'default': True}, 'itemId': {'type': 'string'}, 'assetId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
editor_assets_insert
editor assets insert
Insert a workspace image, generated shot or audio asset at an explicit project time. Revision checked; dryRun previews by default.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assetId', 'startSeconds', 'durationSeconds', 'layerIndex', 'workspaceId', 'idempotencyKey', 'projectId', 'expectedRevision', 'dryRun'], 'properties': {'dryRun': {'type': 'boolean', 'default': True}, 'assetId': {'type': 'string', 'format': 'uuid', 'minLength': 1, 'description': 'UUID string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'layerIndex': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'startSeconds': {'type': 'number', 'minimum': 0}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'durationSeconds': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
editor_audio_set
editor audio set
Adjust one item's volume and audio fades. Revision checked; dryRun previews by default. Preserves the rest of the project.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itemId', 'volume', 'fadeInSeconds', 'fadeOutSeconds', 'workspaceId', 'idempotencyKey', 'projectId', 'expectedRevision', 'dryRun'], 'properties': {'dryRun': {'type': 'boolean', 'default': True}, 'itemId': {'type': 'string'}, 'volume': {'type': 'number', 'maximum': 2, 'minimum': 0}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'fadeInSeconds': {'type': 'number', 'minimum': 0}, 'fadeOutSeconds': {'type': 'number', 'minimum': 0}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
editor_crop_set
editor crop set
Adjust the crop of one existing source view after a layout has been applied. Revision checked; dryRun previews by default. Preserves the other shots.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itemId', 'crop', 'workspaceId', 'idempotencyKey', 'projectId', 'expectedRevision', 'dryRun'], 'properties': {'crop': {'type': 'object', 'required': ['x', 'y', 'width', 'height'], 'properties': {'x': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'y': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'width': {'type': 'number', 'maximum': 1, 'minimum': 0.0001}, 'height': {'type': 'number', 'maximum': 1, 'minimum': 0.0001}}, 'additionalProperties': False}, 'dryRun': {'type': 'boolean', 'default': True}, 'itemId': {'type': 'string', 'minLength': 1}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
editor_edit_undo
Undo Saved Edit
Restore one saved editor action at the expected current revision. Requires the action ID from edit history and an idempotency key. Existing project data is changed.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['projectId', 'actionId', 'expectedRevision', 'workspaceId', 'idempotencyKey'], 'properties': {'actionId': {'type': 'string', 'minLength': 1}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
editor_history_list
List Edit History
Read up to 50 saved edit actions, their labels and undo state. Does not restore or change the project.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'projectId', 'limit'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
editor_items_move
editor items move
Move selected timeline items to explicit times and layers. Revision checked; dryRun previews by default.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['items', 'workspaceId', 'idempotencyKey', 'projectId', 'expectedRevision', 'dryRun'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'startSeconds', 'layerIndex'], 'properties': {'id': {'type': 'string', 'minLength': 1}, 'layerIndex': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'startSeconds': {'type': 'number', 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'dryRun': {'type': 'boolean', 'default': True}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
editor_items_remove
editor items remove
Remove selected timeline items and, if requested, their linked captions. Revision checked; dryRun previews by default. The saved action can be undone.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itemIds', 'removeAssociatedCaptions', 'workspaceId', 'idempotencyKey', 'projectId', 'expectedRevision', 'dryRun'], 'properties': {'dryRun': {'type': 'boolean', 'default': True}, 'itemIds': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 500, 'minItems': 1}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'removeAssociatedCaptions': {'type': 'boolean'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
editor_snapshot_get
Read Editor Snapshot
Read the current revision, stable timeline IDs, captions, style and bounded media context before a precise revision. Signed media links are refreshed by reading again.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'projectId', 'offset', 'limit', 'expectedRevision'], 'properties': {'limit': {'type': 'integer', 'default': 100, 'maximum': 200, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'expectedRevision': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
editor_text_set
editor text set
Create or revise one title or text overlay with explicit timing. Revision checked; dryRun previews by default. This edits project text, not spoken audio or captions.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['itemId', 'text', 'textKind', 'spec', 'startSeconds', 'durationSeconds', 'workspaceId', 'idempotencyKey', 'projectId', 'expectedRevision', 'dryRun'], 'properties': {'spec': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}]}, 'text': {'type': 'string', 'minLength': 1}, 'dryRun': {'type': 'boolean', 'default': True}, 'itemId': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'textKind': {'enum': ['overlay', 'title_card'], 'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'startSeconds': {'type': 'number', 'minimum': 0}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'durationSeconds': {'type': 'number', 'minimum': 0, 'exclusiveMinimum': 0}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
exports_caption_track_get
Read Export Caption Track
Read a WebVTT caption track from the completed export's immutable canonical speech snapshot, preserving the actual export trims. Returns unavailable for older exports or unverified speech; never fabricates captions from titles or current edited timelines.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'exportId'], 'properties': {'exportId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
exports_list
List Exports
List exports with render status and progress. Completed exports include a signed download URL. Pass exportId to return one export.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum exports to return when exportId is absent (1-50).'}, 'offset': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Export offset when exportId is absent.'}, 'exportId': {'type': 'string', 'format': 'uuid', 'description': 'Return only this export, including its signed download URL when the render is complete. UUID string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'Filter exports by project ID. UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['exports', 'bounds'], 'properties': {'bounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}, 'exports': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': False}
exports_start
Start Export
Render a BlitzReels video project and return export and job IDs for status checks.
Input schema
{'type': 'object', 'required': ['projectId'], 'properties': {'format': {'enum': ['mp4', 'mov', 'fcpxml'], 'type': 'string', 'default': 'mp4', 'description': 'Export container format'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'BlitzReels project ID. UUID string.'}, 'resolution': {'enum': ['720p', '1080p', '4k'], 'type': 'string', 'default': '1080p', 'description': 'Export resolution'}, 'idempotencyKey': {'type': 'string', 'description': 'Retry key. Reuse only with identical inputs.'}, 'coverFrameSeconds': {'type': 'number', 'minimum': 0, 'description': 'Optional cover thumbnail timestamp'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['export'], 'properties': {'export': {'type': 'object', 'required': ['mutationReceipt'], 'properties': {'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}}}, 'additionalProperties': False}
generation_faceless_create
Generate Faceless Video
Turn a script into a full faceless video project: scene plan, generated visuals, optional voiceover, captions, music, and sound. Spends AI credits and returns a job to poll with generation_jobs_get.
Open world Idempotent
Input schema
{'type': 'object', 'required': ['script'], 'properties': {'script': {'type': 'string', 'maxLength': 30000, 'minLength': 1, 'description': 'The narration or story to turn into a video.'}, 'voiceId': {'type': 'string', 'maxLength': 200, 'description': 'Optional voice override from the BlitzReels voice catalog. The Story Kit narrator voice is used when omitted.'}, 'seriesId': {'type': 'string', 'description': 'Optional Series UUID. Inherits its Story Kit and branding defaults for this new video.'}, 'storyKitId': {'type': 'string', 'description': 'Reusable Story Kit UUID for characters, references, locations, style, and narrator voice.'}, 'videoModel': {'enum': ['seedance-2.5-edit', 'kling-o3-standard-edit', 'kling-o3-pro-edit', 'kling-v3-standard-motion-control', 'kling-v3-pro-motion-control', 'wan-2.2-animate-replace', 'kling-2.1', 'kling-2.6-pro', 'kling-o1', 'kling-3.0', 'kling-o3-standard', 'kling-o3-pro', 'kling-o3-4k', 'kling-v3-pro', 'minimax-01', 'minimax-hailuo-02', 'minimax-hailuo-2.3-pro', 'minimax-h3-max', 'luma-ray-2', 'luma-ray-3.2', 'veo3', 'veo3.1', 'veo3.1-fast', 'gemini-omni-flash-ref2v', 'gemini-omni-flash-edit', 'gemini-omni-flash', 'wan-2.7', 'wan-2.7-ref2v', 'wan-3.0', 'happy-horse', 'happy-horse-ref2v', 'pixverse-v6', 'grok-imagine', 'seedance-2.0-pro', 'seedance-2.5', 'seedance-2.0-pro-fast', 'seedance-2.0-ref2v', 'seedance-2.0-ref2v-fast', 'seedance-1.5-pro', 'seedance-1.0-pro', 'seedance-1.0-pro-fast', 'seedance-1.0-lite', 'seedance-1.0-lite-ref2v', 'ltx-2-19b', 'ltx-2-19b-distilled', 'ltx-2.3', 'ltx-2.3-fast'], 'type': 'string', 'default': 'seedance-2.0-ref2v', 'description': 'Image-to-video model used to animate scenes.'}, 'projectName': {'type': 'string', 'default': 'Faceless Video', 'maxLength': 200, 'minLength': 1, 'description': 'Name for the created BlitzReels project.'}, 'visualStyle': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Optional art direction override. A Story Kit style is used when omitted.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'imageModelId': {'type': 'string', 'default': 'fal-ai/nano-banana-pro', 'maxLength': 200, 'minLength': 3, 'description': 'Model used to generate scene images.'}, 'captionStyleId': {'type': 'string', 'maxLength': 200, 'description': 'Optional caption theme ID from captions_themes_list.'}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'plannerModelId': {'type': 'string', 'default': 'google/gemini-3.8-flash', 'maxLength': 200, 'minLength': 3, 'description': 'Model used to plan the video scenes.'}, 'includeCaptions': {'type': 'boolean', 'default': True, 'description': 'Burn captions into the timeline.'}, 'generateVoiceover': {'type': 'boolean', 'default': True, 'description': 'Narrate the script with a generated voice.'}, 'generateSoundEffects': {'type': 'boolean', 'default': False, 'description': 'Add generated sound effects.'}, 'targetDurationSeconds': {'type': 'number', 'default': 45, 'maximum': 120, 'minimum': 10, 'description': 'Target runtime between 10 and 120 seconds.'}, 'styleReferenceAssetIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'default': [], 'maxItems': 10, 'description': 'Optional stills that lock rendering medium, palette, lighting and texture. Not used as scene frames.'}, 'generateBackgroundMusic': {'type': 'boolean', 'default': False, 'description': 'Add a generated background track.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['generation'], 'properties': {'generation': {'type': 'object', 'required': ['job_id', 'kind', 'status', 'mutationReceipt'], 'properties': {'kind': {'enum': ['image', 'video', 'voiceover', 'music', 'sound', 'faceless'], 'type': 'string'}, 'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'media_id': {'type': ['string', 'null']}, 'project_id': {'type': ['string', 'null']}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'estimated_credits': {'type': ['number', 'null']}}}}, 'additionalProperties': False}
generation_image_create
Generate Image
Queue an AI image generation into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
Open world Idempotent
Input schema
{'type': 'object', 'required': ['prompt'], 'properties': {'model': {'enum': ['fal-ai/gpt-image-1', 'fal-ai/gpt-image-1.5', 'fal-ai/gpt-image-2', 'fal-ai/gpt-image-2.5-flare', 'fal-ai/gpt-image-2.5-sunburst', 'xai/grok-imagine-image-2.0', 'fal-ai/bytedance/seedream/v5/lite/text-to-image', 'bytedance/seedream/v5/pro/text-to-image', 'fal-ai/krea-2/turbo', 'fal-ai/krea/v2/medium/turbo/text-to-image', 'fal-ai/krea/v2/medium/text-to-image', 'fal-ai/nano-banana-2', 'google/nano-banana-2-lite', 'fal-ai/nano-banana-pro'], 'type': 'string', 'default': 'fal-ai/nano-banana-2', 'description': 'Image model. Call generation_options_list for costs.'}, 'prompt': {'type': 'string', 'maxLength': 5000, 'minLength': 8, 'description': 'What the image should show (8-5000 characters).'}, 'folderId': {'type': 'string', 'format': 'uuid', 'description': 'Optional media library folder ID.'}, 'resolution': {'anyOf': [{'enum': ['0.5k', '1k', '2k', '4k'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Native image resolution. Call generation_options_list for model support and resolution pricing. Unsupported settings are rejected.'}, 'aspectRatio': {'enum': ['1:1', '16:9', '9:16', '4:3', '3:4', '3:2', '2:3', '5:4', '4:5', '21:9'], 'type': 'string', 'default': '1:1', 'description': 'Output aspect ratio.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'enhancePrompt': {'type': 'boolean', 'default': False, 'description': 'Enhance using BlitzReels model grammar and actual input context.'}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'referenceAssetIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'default': [], 'maxItems': 14, 'description': 'Ordered image references. Model-specific limits are listed in generation_options_list; unsupported references fail.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['generation'], 'properties': {'generation': {'type': 'object', 'required': ['job_id', 'kind', 'status', 'mutationReceipt'], 'properties': {'kind': {'enum': ['image', 'video', 'voiceover', 'music', 'sound', 'faceless'], 'type': 'string'}, 'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'media_id': {'type': ['string', 'null']}, 'project_id': {'type': ['string', 'null']}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'estimated_credits': {'type': ['number', 'null']}}}}, 'additionalProperties': False}
generation_jobs_cancel
Cancel Generation Job
Request cancellation of the identified queued or running generation. Work already performed can consume credits; cancellation does not establish a refund.
Destructive Open world Idempotent
Input schema
{'type': 'object', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'format': 'uuid', 'description': 'Job ID returned by any generation_*_create tool.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['job'], 'properties': {'job': {'type': 'object', 'required': ['job_id', 'kind', 'status', 'progress'], 'properties': {'kind': {'enum': ['image', 'video', 'voiceover', 'music', 'sound', 'faceless'], 'type': 'string'}, 'error': {'type': ['string', 'null']}, 'job_id': {'type': 'string'}, 'status': {'enum': ['queued', 'processing', 'complete', 'failed', 'canceled'], 'type': 'string'}, 'media_id': {'type': ['string', 'null']}, 'progress': {'type': 'number'}, 'created_at': {'type': 'string'}, 'project_id': {'type': ['string', 'null']}, 'completed_at': {'type': ['string', 'null']}, 'download_url': {'type': ['string', 'null']}, 'estimated_credits': {'type': ['number', 'null']}}}}, 'additionalProperties': False}
generation_jobs_get
Get Generation Job
Check a queued generation. Completed jobs carry the media asset ID and a download URL.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'format': 'uuid', 'description': 'Job ID returned by any generation_*_create tool.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['job'], 'properties': {'job': {'type': 'object', 'required': ['job_id', 'kind', 'status', 'progress'], 'properties': {'kind': {'enum': ['image', 'video', 'voiceover', 'music', 'sound', 'faceless'], 'type': 'string'}, 'error': {'type': ['string', 'null']}, 'job_id': {'type': 'string'}, 'status': {'enum': ['queued', 'processing', 'complete', 'failed', 'canceled'], 'type': 'string'}, 'media_id': {'type': ['string', 'null']}, 'progress': {'type': 'number'}, 'created_at': {'type': 'string'}, 'project_id': {'type': ['string', 'null']}, 'completed_at': {'type': ['string', 'null']}, 'download_url': {'type': ['string', 'null']}, 'estimated_credits': {'type': ['number', 'null']}}}}, 'additionalProperties': False}
generation_music_create
Generate Music
Queue a background music track into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
Open world Idempotent
Input schema
{'type': 'object', 'properties': {'mood': {'enum': ['curiosity', 'intrigue', 'urgency', 'tension', 'concern', 'surprise', 'hope', 'satisfaction', 'inspiration', 'revelation', 'neutral'], 'type': 'string', 'default': 'neutral', 'description': 'Track mood.'}, 'prompt': {'type': 'string', 'default': '', 'maxLength': 500, 'description': 'Optional description of the track.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'durationSeconds': {'type': 'number', 'default': 30, 'maximum': 120, 'minimum': 10, 'description': 'Track length between 10 and 120 seconds.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['generation'], 'properties': {'generation': {'type': 'object', 'required': ['job_id', 'kind', 'status', 'mutationReceipt'], 'properties': {'kind': {'enum': ['image', 'video', 'voiceover', 'music', 'sound', 'faceless'], 'type': 'string'}, 'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'media_id': {'type': ['string', 'null']}, 'project_id': {'type': ['string', 'null']}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'estimated_credits': {'type': ['number', 'null']}}}}, 'additionalProperties': False}
generation_options_list
List Generation Options
List the models, defaults, limits, and credit costs available for one generation kind before queueing it. Video duration is an enum per model (durations_seconds), not a min-max range.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['image', 'video', 'voiceover', 'music', 'sound', 'faceless'], 'type': 'string', 'description': 'Generation kind to describe.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['options'], 'properties': {'options': {'type': 'object'}}, 'additionalProperties': False}
generation_plan_brief
Get Generation Plan Brief
Read a generation brief from rawPrompt. Source-video edits return execution for generation_video_create with required assets and transformation controls. New scenes return an authoring grammar and planJsonSchema for generation_plan_validate. This read does not generate media or spend credits.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'genre': {'type': 'string', 'description': "Genre pack id (e.g. pixar-culture-skit). The brief lists available ids in availableGenres; the pack's beats and visual contract override the generic grammar."}, 'rawPrompt': {'type': 'string', 'maxLength': 5000, 'description': 'Original request. Clone or character-replacement requests select a video transformation brief instead of a new-story plan.'}, 'aspectRatio': {'enum': ['9:16', '16:9', '1:1'], 'type': 'string', 'default': '9:16'}, 'visualStyle': {'type': 'string', 'description': 'Visual style preset id; its locked style contract is included in the brief.'}, 'videoModelId': {'type': 'string', 'description': 'Target video model id (see generation_options_list, kind: video). Defaults to the strongest single-take model.'}, 'targetDurationSeconds': {'type': 'number', 'default': 15, 'maximum': 300, 'minimum': 2, 'description': 'Desired final video duration in seconds.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['brief'], 'properties': {'brief': {'type': 'object', 'required': ['instructions', 'videoModelId', 'modelLabel', 'supportsNativeAudio', 'maxSingleTakeSeconds', 'allowedModes', 'targetDurationSeconds', 'aspectRatio', 'styleContract', 'grammar', 'planJsonSchema'], 'properties': {'grammar': {'type': 'string'}, 'execution': {'type': ['object', 'null'], 'description': 'Source-video operation, model and required assets; null for new-story plans.'}, 'genrePack': {'type': ['string', 'null']}, 'modelLabel': {'type': 'string'}, 'aspectRatio': {'type': 'string'}, 'allowedModes': {'type': 'array', 'items': {'type': 'string'}}, 'instructions': {'type': 'string'}, 'videoModelId': {'type': 'string'}, 'styleContract': {'type': ['string', 'null']}, 'planJsonSchema': {'type': 'object'}, 'availableGenres': {'type': 'array', 'items': {'type': 'string'}}, 'supportsNativeAudio': {'type': 'boolean'}, 'maxSingleTakeSeconds': {'type': 'number'}, 'targetDurationSeconds': {'type': 'number'}}}}, 'additionalProperties': False}
generation_plan_validate
Validate Generation Plan
Validate a self-authored generation plan against the schema and the target model's real capabilities before execution. Returns directive errors to fix and revalidate; only a valid plan is executable.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['plan'], 'properties': {'plan': {'type': 'object', 'description': "The generation plan object authored from generation_plan_brief's planJsonSchema.", 'additionalProperties': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['valid', 'errors'], 'properties': {'valid': {'type': 'boolean'}, 'errors': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Empty when valid. Each entry states exactly what to change.'}}, 'additionalProperties': False}
generation_sound_create
Generate Sound Effect
Queue a sound effect into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
Open world Idempotent
Input schema
{'type': 'object', 'required': ['prompt'], 'properties': {'loop': {'type': 'boolean', 'default': False, 'description': 'Produce a seamlessly loopable effect.'}, 'prompt': {'type': 'string', 'maxLength': 500, 'minLength': 3, 'description': 'The sound to create (3-500 characters).'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'durationSeconds': {'type': 'number', 'default': 2, 'maximum': 30, 'minimum': 0.5, 'description': 'Effect length between 0.5 and 30 seconds.'}, 'promptInfluence': {'type': 'number', 'default': 0.5, 'maximum': 1, 'minimum': 0, 'description': 'How literally to follow the prompt, between 0 and 1. Higher is more literal.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['generation'], 'properties': {'generation': {'type': 'object', 'required': ['job_id', 'kind', 'status', 'mutationReceipt'], 'properties': {'kind': {'enum': ['image', 'video', 'voiceover', 'music', 'sound', 'faceless'], 'type': 'string'}, 'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'media_id': {'type': ['string', 'null']}, 'project_id': {'type': ['string', 'null']}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'estimated_credits': {'type': ['number', 'null']}}}}, 'additionalProperties': False}
generation_video_create
Generate Video
Queue video generation, image animation, source-video editing or character replacement into the media library. Editing accepts referenceVideoAssetIds and transformation controls, including original-audio preservation. Spends AI credits and returns a job readable with generation_jobs_get.
Open world Idempotent
Input schema
{'type': 'object', 'required': ['prompt'], 'properties': {'seed': {'type': 'integer', 'description': 'Optional seed for reproducible output.'}, 'model': {'enum': ['seedance-2.5-edit', 'kling-o3-standard-edit', 'kling-o3-pro-edit', 'kling-v3-standard-motion-control', 'kling-v3-pro-motion-control', 'wan-2.2-animate-replace', 'kling-2.1', 'kling-2.6-pro', 'kling-o1', 'kling-3.0', 'kling-o3-standard', 'kling-o3-pro', 'kling-o3-4k', 'kling-v3-pro', 'minimax-01', 'minimax-hailuo-02', 'minimax-hailuo-2.3-pro', 'minimax-h3-max', 'luma-ray-2', 'luma-ray-3.2', 'minimax-hailuo-2.3-pro-t2v', 'minimax-h3-max-t2v', 'luma-ray-3.2-t2v', 'veo3', 'veo3.1', 'veo3.1-fast', 'gemini-omni-flash-ref2v', 'gemini-omni-flash-edit', 'gemini-omni-flash', 'veo3-fast', 'gemini-omni-flash-t2v', 'wan-2.1', 'wan-2.7', 'wan-2.7-ref2v', 'wan-2.7-t2v', 'wan-3.0', 'wan-3.0-t2v', 'happy-horse', 'happy-horse-ref2v', 'happy-horse-t2v', 'pixverse-v6', 'pixverse-v6-t2v', 'krea-wan-14b-t2v', 'grok-imagine', 'grok-imagine-t2v', 'seedance-2.0-pro', 'seedance-2.5', 'seedance-2.0-pro-fast', 'seedance-2.0-ref2v', 'seedance-2.0-ref2v-fast', 'seedance-2.0-pro-t2v', 'seedance-2.5-t2v', 'seedance-2.0-pro-fast-t2v', 'seedance-1.5-pro', 'seedance-1.5-pro-t2v', 'seedance-1.0-pro', 'seedance-1.0-pro-t2v', 'seedance-1.0-pro-fast', 'seedance-1.0-pro-fast-t2v', 'seedance-1.0-lite', 'seedance-1.0-lite-t2v', 'seedance-1.0-lite-ref2v', 'kling-o3-standard-t2v', 'kling-o3-pro-t2v', 'kling-v3-standard-t2v', 'kling-v3-pro-t2v', 'ltx-2-19b', 'ltx-2-19b-distilled', 'ltx-2.3', 'ltx-2.3-fast', 'ltx-2-19b-t2v', 'ltx-2-19b-distilled-t2v', 'ltx-2.3-t2v', 'ltx-2.3-fast-t2v'], 'type': 'string', 'default': 'wan-2.1', 'description': 'Video model. generation_options_list publishes generation type, source limits, character controls, resolution and pricing for each model.'}, 'prompt': {'type': 'string', 'maxLength': 5000, 'minLength': 3, 'description': 'What should happen in the shot (3-5000 characters).'}, 'folderId': {'type': 'string', 'format': 'uuid', 'description': 'Optional media library folder ID.'}, 'provider': {'enum': ['auto', 'byteplus-modelark', 'fal'], 'type': 'string', 'default': 'auto', 'description': 'Explicit provider must support the model and input mode. auto uses a configured compatible provider.'}, 'resolution': {'anyOf': [{'enum': ['480p', '720p', '768p', '1080p', '4k'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Output resolution. Call generation_options_list for model-specific supported values and defaults. Unsupported settings are rejected.'}, 'aspectRatio': {'enum': ['9:16', '16:9', '1:1'], 'type': 'string', 'default': '9:16', 'description': 'Output aspect ratio.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'enhancePrompt': {'type': 'boolean', 'default': False, 'description': 'Enhance using BlitzReels model grammar and actual input context.'}, 'generateAudio': {'type': 'boolean', 'description': 'null uses model audio behavior. Explicit true/false must be supported by the selected model.'}, 'sourceAssetId': {'type': 'string', 'format': 'uuid', 'description': "First-frame still. Required only when that model's parameters.source_asset_id.required is true. Optional on reference-capable I2V including Seedance 2.5. Text-to-video rejects it. Cannot combine with reference arrays and end_frame_asset_id."}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'negativePrompt': {'type': 'string', 'maxLength': 2500, 'description': 'What to avoid in the shot.'}, 'transformation': {'anyOf': [{'type': 'object', 'required': ['characters', 'sourcePersonCount', 'keepOriginalAudio', 'characterOrientation'], 'properties': {'characters': {'type': 'array', 'items': {'type': 'object', 'required': ['sourceRole', 'frontalAssetId', 'referenceAssetIds'], 'properties': {'sourceRole': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'frontalAssetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'referenceAssetIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'default': [], 'maxItems': 3}}, 'additionalProperties': False}, 'default': [], 'maxItems': 4}, 'keepOriginalAudio': {'type': 'boolean', 'default': True}, 'sourcePersonCount': {'anyOf': [{'type': 'integer', 'maximum': 1000, 'minimum': 1}, {'type': 'null'}], 'default': None}, 'characterOrientation': {'enum': ['video', 'image'], 'type': 'string', 'default': 'video'}}, 'additionalProperties': False}, {'type': 'null'}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'default': None}, 'durationSeconds': {'type': 'integer', 'default': 5, 'maximum': 30, 'minimum': 2, 'description': "Video transformations inherit the processed source duration and aspect ratio; duration_seconds is not a trim request. Choose a value from the selected model's durations_seconds. duration_seconds_min and duration_seconds_max are the bounds of that list, not a continuous range."}, 'endFrameAssetId': {'type': 'string', 'format': 'uuid', 'description': 'Last-frame still. Interpolates from the source first frame to this image across the full duration. Requires a source first frame; cannot combine with reference arrays.'}, 'referenceAssetIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'default': [], 'maxItems': 30, 'description': 'Ordered reference images: Seedance 2.5 up to 30; Seedance 2.0 ref2v up to 9; other reference models up to 4. Source counts toward the limit.'}, 'referenceAudioAssetIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'default': [], 'maxItems': 10, 'description': 'Reference audio: Seedance 2.5 up to 10; Seedance 2.0 ref2v and fast up to 3. Other models reject them.'}, 'referenceVideoAssetIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'default': [], 'maxItems': 10, 'description': 'Video transformations require one processed source video. Other reference modes have model-specific counts published by generation_options_list.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['generation'], 'properties': {'generation': {'type': 'object', 'required': ['job_id', 'kind', 'status', 'mutationReceipt'], 'properties': {'kind': {'enum': ['image', 'video', 'voiceover', 'music', 'sound', 'faceless'], 'type': 'string'}, 'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'media_id': {'type': ['string', 'null']}, 'project_id': {'type': ['string', 'null']}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'estimated_credits': {'type': ['number', 'null']}}}}, 'additionalProperties': False}
generation_voiceover_create
Generate Voiceover
Queue a text-to-speech voiceover into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
Open world Idempotent
Input schema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 8000, 'minLength': 3, 'description': 'Script to read aloud (3-8000 characters).'}, 'speed': {'type': 'number', 'default': 1, 'maximum': 1.6, 'minimum': 0.5, 'description': 'Speaking rate between 0.5 and 1.6.'}, 'voiceId': {'enum': ['pNInz6obpgDQGcFmaJgB', 'TX3LPaxmHKxFdv7VOQHJ', 'FGY2WhTYpPnrIDTdsKH5', 'IKne3meq5aSn9XLyUdCD', 'cgSgspJ2msm6clMCkdW9', 'bIHbv24MWmeRgasZH58o', 'nPczCjzI2devNBz1zQrb', 'JBFqnCBsd6RMkjVDRZzb', 'SOYHLrjzK2X1ezoPC6cr', 'N2lVS1w4EtoT3dr4eOWO', 'S9EGwlCtMF7VXtENq79v', 'VhxAIIZM8IRmnl5fyeyk', 'hpp4J3VqNfWAUOO0d1Us', 'EXAVITQu4vr4xnSDxMaL', 'pFZP5JQG7iQjIQuC4Bku', 'SAz9YHcvj6GT2YYXdXww', 'Xb7hH8MSUJpSbSDYk0k2', 'XrExE9yKIg1WjnnlVkGX', 'onwK4e9ZLuTAKqWW03F9', 'pqHfZKP75CvOlQylNhV4', 'CwhRBWXzGAHq8TQ4Fs17', 'cjVigY5qzO86Huf0OWal', 'iP95p4xoKVk53GoZ742B'], 'type': 'string', 'default': 'pNInz6obpgDQGcFmaJgB', 'maxLength': 200, 'minLength': 1, 'description': 'Voice ID. Call generation_options_list with kind voiceover for the catalog.'}, 'voiceStyle': {'enum': ['curiosity', 'intrigue', 'urgency', 'tension', 'concern', 'surprise', 'hope', 'satisfaction', 'inspiration', 'revelation', 'neutral'], 'type': 'string', 'default': 'neutral', 'description': 'Delivery emotion.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['generation'], 'properties': {'generation': {'type': 'object', 'required': ['job_id', 'kind', 'status', 'mutationReceipt'], 'properties': {'kind': {'enum': ['image', 'video', 'voiceover', 'music', 'sound', 'faceless'], 'type': 'string'}, 'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'media_id': {'type': ['string', 'null']}, 'project_id': {'type': ['string', 'null']}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'estimated_credits': {'type': ['number', 'null']}}}}, 'additionalProperties': False}
media_assets_get
Get Media Asset
Get metadata and processing state for one media-library asset without returning transcript segments.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['assetId'], 'properties': {'assetId': {'type': 'string', 'format': 'uuid', 'description': 'Media asset UUID. UUID string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['asset'], 'properties': {'asset': {'type': 'object', 'required': ['id', 'name', 'description', 'folderId', 'assetType', 'mimeType', 'fileSizeBytes', 'durationSeconds', 'dimensionsWidth', 'dimensionsHeight', 'optimizedDimensionsWidth', 'optimizedDimensionsHeight', 'fps', 'hasAudioStream', 'processing', 'transcription', 'reframeAnalysis', 'createdAt', 'updatedAt'], 'properties': {'id': {'type': 'string'}, 'fps': {'type': ['number', 'null']}, 'name': {'type': 'string'}, 'folderId': {'type': ['string', 'null']}, 'mimeType': {'type': ['string', 'null']}, 'assetType': {'enum': ['video', 'audio', 'image', 'document'], 'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'processing': {'type': 'object'}, 'description': {'type': ['string', 'null']}, 'fileSizeBytes': {'type': 'number'}, 'transcription': {'type': 'object'}, 'hasAudioStream': {'type': ['boolean', 'null']}, 'dimensionsWidth': {'type': ['number', 'null']}, 'durationSeconds': {'type': ['number', 'null']}, 'reframeAnalysis': {'type': 'object'}, 'dimensionsHeight': {'type': ['number', 'null']}, 'optimizedDimensionsWidth': {'type': ['number', 'null']}, 'optimizedDimensionsHeight': {'type': ['number', 'null']}}}}, 'additionalProperties': False}
media_assets_preview
Preview Media Asset
Return one bounded JPEG as MCP image content for visual inspection. Images use the stored visual; videos use the existing thumbnail.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['assetId'], 'properties': {'assetId': {'type': 'string', 'format': 'uuid', 'description': 'Media asset UUID. UUID string.'}, 'maxDimension': {'type': 'integer', 'default': 1024, 'maximum': 1536, 'minimum': 256, 'description': 'Maximum preview width or height in pixels (256-1536).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['asset', 'preview'], 'properties': {'asset': {'type': 'object', 'required': ['id', 'name', 'assetType'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'assetType': {'type': 'string'}}}, 'preview': {'type': 'object', 'required': ['mimeType', 'width', 'height', 'byteLength'], 'properties': {'width': {'type': 'number'}, 'height': {'type': 'number'}, 'mimeType': {'type': 'string'}, 'byteLength': {'type': 'number'}}}}, 'additionalProperties': False}
media_assets_update
Update Media Asset
Rename one media asset, edit its description, move it to a folder, or change B-roll eligibility. Provide at least one of name, description, folderId, or allowUsingAsBroll.
Idempotent
Input schema
{'type': 'object', 'required': ['assetId'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'New media asset name.'}, 'assetId': {'type': 'string', 'format': 'uuid', 'description': 'Media asset UUID. UUID string.'}, 'folderId': {'type': 'string', 'format': 'uuid', 'description': 'Target folder UUID, or null to move the asset to root.'}, 'description': {'type': 'string', 'maxLength': 5000, 'description': 'New description, or null to clear it.'}, 'idempotencyKey': {'type': 'string', 'description': 'Retry key. Reuse only with identical inputs.'}, 'allowUsingAsBroll': {'type': 'boolean', 'description': 'Whether the asset may be selected as B-roll.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['asset', 'updatedFields', 'txid', 'mutationReceipt'], 'properties': {'txid': {'type': ['number', 'null']}, 'asset': {'type': 'object'}, 'updatedFields': {'type': 'array', 'items': {'type': 'string'}}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
media_folders_create
Create Media Folder
Create one media-library folder in a workspace and return a retry-safe mutation receipt.
Idempotent
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Folder name.'}, 'iconType': {'enum': ['folder', 'code', 'video', 'audio', 'image', 'document', 'star', 'spark'], 'type': 'string', 'default': 'folder', 'description': 'Folder icon type.'}, 'description': {'type': 'string', 'maxLength': 1000, 'description': 'Optional folder description.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'Workspace UUID, or null for the default workspace. UUID string.'}, 'idempotencyKey': {'type': 'string', 'description': 'Retry key. Reuse only with identical inputs.'}, 'parentFolderId': {'type': 'string', 'format': 'uuid', 'description': 'Parent folder UUID, or null for the root.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['folder', 'mutationReceipt'], 'properties': {'folder': {'type': 'object'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
media_folders_list
List Media Folders
List one bounded level of media-library folders and direct asset counts.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum folders to return (1-50).'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Folder offset.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': 'Workspace UUID, or null for the default workspace. UUID string.'}, 'parentFolderId': {'type': 'string', 'format': 'uuid', 'description': 'Parent folder UUID, or null for root folders.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['folders', 'bounds'], 'properties': {'bounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}, 'folders': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': False}
media_import_inspect
Inspect Import URL
Inspect a user-provided public social-video or Google Drive URL and return available import metadata without creating media.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Public video URL. Supports social video links and Google Drive file links.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['preview'], 'properties': {'preview': {'type': 'object'}}, 'additionalProperties': False}
media_import_scan_page
Scan Page For Video
Scan a user-controlled public page and return an importable video URL found on it without creating media.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Video page URL or direct media URL to inspect for an importable video.'}, 'confirmAuthorizedToScan': {'type': 'boolean', 'default': False, 'description': 'Set true only after the user confirms they control the page or are authorized to scan it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['resolved'], 'properties': {'resolved': {'type': 'object'}}, 'additionalProperties': False}
media_import_url
Import Media From URL
Import a video, audio, or image from a user-provided direct URL into the private BlitzReels media library.
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'URL of the media file to download and upload'}, 'name': {'type': 'string', 'description': 'Optional name for the file'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'Optional project ID to associate the upload with. UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string."}, 'contentHashSha256': {'type': 'string', 'pattern': '^[a-fA-F0-9]{64}$', 'description': 'Optional SHA-256 hex hash of file bytes for dedupe optimization. 64-character hex string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['media'], 'properties': {'media': {'type': 'object'}}, 'additionalProperties': False}
media_list
List Media
List media files in user's library (videos, audio, images)
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of assets to return (1-50)'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Media asset offset.'}, 'assetType': {'enum': ['video', 'audio', 'image', 'all'], 'type': 'string', 'default': 'all', 'description': 'Filter by asset type'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['assets', 'bounds'], 'properties': {'assets': {'type': 'array', 'items': {'type': 'object'}}, 'bounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': False}
media_transcript_get
Get Media Transcript
Get transcript summary metadata or a bounded window of transcription segments for a video asset.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['assetId'], 'properties': {'mode': {'enum': ['summary', 'text', 'full'], 'type': 'string', 'default': 'summary', 'description': 'Summary returns metadata only. Text returns joined text for a bounded segment window. Full returns the bounded segment objects without duplicating their text.'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Maximum transcript segments to return (1-200).'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Transcript segment offset.'}, 'assetId': {'type': 'string', 'format': 'uuid', 'description': 'The media asset ID to get transcript for. UUID string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['transcript'], 'properties': {'error': {'type': 'string'}, 'transcript': {'type': ['object', 'null'], 'required': ['text', 'segments', 'segmentBounds'], 'properties': {'text': {'type': ['string', 'null']}, 'segments': {'type': 'array', 'items': {'type': 'object'}}, 'segmentBounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}}}}, 'additionalProperties': False}
media_upload_file
Upload File
Import a video, audio, or image file from ChatGPT into the BlitzReels media library. Use this for a file the user attached or picked, and for an image ChatGPT generated in this conversation that the user wants to keep, animate, or edit in BlitzReels.
Input schema
{'type': 'object', 'required': ['file'], 'properties': {'file': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string'}, 'file_name': {'type': 'string'}, 'mime_type': {'type': 'string'}, 'download_url': {'type': 'string', 'format': 'uri'}}, 'description': 'A file from ChatGPT: attached by the user, picked from their file library, or produced earlier in this conversation. ChatGPT provides this value.'}, 'name': {'type': 'string', 'description': 'Optional name to use in BlitzReels.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'Optional BlitzReels project ID to associate with the uploaded file. UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['media'], 'properties': {'media': {'type': 'object'}}, 'additionalProperties': False}
media_upload_finish
Finish Media Upload
Complete the upload process after uploading to a presigned URL
Input schema
{'type': 'object', 'required': ['storageKey', 'fileName', 'contentType', 'fileSizeBytes'], 'properties': {'fileName': {'type': 'string', 'description': 'Name of the uploaded file'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'Optional project ID to associate the upload with. UUID string.'}, 'storageKey': {'type': 'string', 'description': 'Storage key for the uploaded file'}, 'contentType': {'type': 'string', 'description': 'MIME type of the file'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string."}, 'fileSizeBytes': {'type': 'number', 'minimum': 1, 'description': 'Size of the uploaded file in bytes'}, 'contentHashSha256': {'type': 'string', 'pattern': '^[a-fA-F0-9]{64}$', 'description': 'Optional SHA-256 hex hash of file bytes for dedupe optimization. 64-character hex string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['media'], 'properties': {'media': {'type': 'object'}}, 'additionalProperties': False}
media_upload_start
Start Media Upload
Get a presigned URL for direct file upload (for large files)
Input schema
{'type': 'object', 'required': ['fileName', 'contentType'], 'properties': {'fileName': {'type': 'string', 'description': 'Name of the file to upload'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'Optional project ID to associate the upload with. UUID string.'}, 'contentType': {'type': 'string', 'description': 'MIME type (e.g., video/mp4, audio/mp3, image/jpeg)'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['uploadInfo'], 'properties': {'uploadInfo': {'type': 'object'}}, 'additionalProperties': False}
media_upscale
Upscale Video
Queue a ByteDance upscale of one stored video asset to 1080p or 4k. Call media_upscale_estimate first. Spends AI credits and returns a new pending media asset to poll with media_assets_get.
Idempotent
Input schema
{'type': 'object', 'required': ['assetId', 'targetResolution'], 'properties': {'assetId': {'type': 'string', 'format': 'uuid', 'description': 'Source video asset UUID. UUID string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'Optional project UUID to attach the credit spend. UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'idempotencyKey': {'type': 'string', 'description': 'Retry key. Reuse only with identical inputs.'}, 'targetResolution': {'enum': ['1080p', '4k'], 'type': 'string', 'description': 'Output long-edge target.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['assetId', 'sourceAssetId', 'targetResolution', 'creditsRequired', 'runId', 'status', 'mutationReceipt'], 'properties': {'runId': {'type': 'string'}, 'status': {'enum': ['queued'], 'type': 'string'}, 'assetId': {'type': 'string'}, 'sourceAssetId': {'type': 'string'}, 'creditsRequired': {'type': 'number'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'targetResolution': {'enum': ['1080p', '4k'], 'type': 'string'}}, 'additionalProperties': False}
media_upscale_estimate
Estimate Video Upscale
Estimate ByteDance upscale eligibility and credits for one stored video. Does not spend credits or queue a job. Call this before media_upscale.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['assetId', 'targetResolution'], 'properties': {'assetId': {'type': 'string', 'format': 'uuid', 'description': 'Source video asset UUID. UUID string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'Optional project UUID for the estimate context. UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'targetResolution': {'enum': ['1080p', '4k'], 'type': 'string', 'description': 'Output long-edge target.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['eligible', 'ineligibleReason', 'targetResolution', 'targetFps', 'creditsRequired', 'durationSeconds', 'sourceLongEdge', 'targetLongEdge'], 'properties': {'eligible': {'type': 'boolean'}, 'targetFps': {'enum': ['30fps', '60fps'], 'type': 'string'}, 'sourceLongEdge': {'type': 'number'}, 'targetLongEdge': {'type': 'number'}, 'creditsRequired': {'type': 'number'}, 'durationSeconds': {'type': 'number'}, 'ineligibleReason': {'type': ['string', 'null']}, 'targetResolution': {'enum': ['1080p', '4k'], 'type': 'string'}}, 'additionalProperties': False}
mute_clip_audio
Mute Clip Audio
Set one timeline media item's volume to zero.
Idempotent
Input schema
{'type': 'object', 'required': ['projectId', 'timelineItemId', 'idempotencyKey'], 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'timelineItemId': {'type': 'string', 'format': 'uuid'}, 'expectedRevision': {'type': 'integer', 'minimum': 0, 'description': 'Expected sequence revision, or null.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['operationId', 'projectId', 'baseRevision', 'revision', 'replayed', 'txid', 'affectedTimelineItemIds', 'createdTimelineItemIds', 'deletedTimelineItemIds', 'warnings', 'result', 'mutationReceipt'], 'properties': {'txid': {'type': 'number'}, 'result': {'type': 'object'}, 'replayed': {'type': 'boolean'}, 'revision': {'type': 'integer'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'projectId': {'type': 'string'}, 'operationId': {'type': 'string'}, 'baseRevision': {'type': 'integer'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'createdTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'deletedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'affectedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
projects_create
Create Project
Create a new private BlitzReels video project.
Input schema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Project name (1-100 characters)'}, 'seriesId': {'type': 'string', 'description': 'Optional Series UUID for this new project.'}, 'frameRate': {'enum': ['24', '25', '30', '50', '60'], 'type': 'string', 'default': '30', 'description': 'Video frame rate'}, 'aspectRatio': {'enum': ['16:9', '9:16', '1:1'], 'type': 'string', 'default': '9:16', 'description': 'Video aspect ratio'}, 'description': {'type': 'string', 'description': 'Project description (optional, max 500 characters)'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}, 'idempotencyKey': {'type': 'string', 'description': 'Retry key. Reuse only with identical inputs.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['project'], 'properties': {'project': {'type': 'object', 'required': ['mutationReceipt'], 'properties': {'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}}}, 'additionalProperties': False}
projects_get
Get Project
Get details for one BlitzReels project, including timeline summary, clips, captions, and current recovery state with an app path and next read tool.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'description': 'The project ID to get details for. UUID string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['project'], 'properties': {'error': {'type': 'string'}, 'project': {'type': ['object', 'null']}}, 'additionalProperties': False}
projects_inspect
Inspect Project
Read bounded project context for editing, including timeline items, media assets, transcripts, captions, and stable IDs.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['projectId'], 'properties': {'mode': {'enum': ['summary', 'assets', 'timeline', 'transcript', 'full'], 'type': 'string', 'default': 'timeline', 'description': 'Bounded project context view to return.'}, 'search': {'type': 'string', 'description': 'Optional media search when mode is assets or full.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'Project UUID. UUID string.'}, 'assetLimit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Maximum media assets to return (1-50).'}, 'assetOffset': {'type': 'integer', 'minimum': 0, 'description': 'Media asset offset.'}, 'timelineLimit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum timeline items to return (1-1000).'}, 'timelineOffset': {'type': 'integer', 'minimum': 0, 'description': 'Timeline item offset.'}, 'transcriptLimit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum transcript segments to return (1-500).'}, 'captionWordLimit': {'type': 'integer', 'maximum': 2000, 'minimum': 1, 'description': 'Maximum caption words to return (1-2000).'}, 'transcriptOffset': {'type': 'integer', 'minimum': 0, 'description': 'Transcript segment offset.'}, 'captionWordOffset': {'type': 'integer', 'minimum': 0, 'description': 'Caption word offset.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['mode', 'data', 'bounds'], 'properties': {'data': {'type': 'object'}, 'mode': {'enum': ['summary', 'assets', 'timeline', 'transcript', 'full'], 'type': 'string'}, 'bounds': {'type': 'object', 'required': ['collections'], 'properties': {'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'offset', 'limit', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'name': {'type': 'string'}, 'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}}}}}}, 'additionalProperties': False}
projects_list
List Projects
List the user's BlitzReels projects with status, duration, and basic metadata.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of projects to return (1-50)'}, 'offset': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Project offset.'}, 'search': {'type': 'string', 'description': 'Search projects by name'}, 'status': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'default': 'active', 'description': 'Filter by project status'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace ID. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['projects', 'bounds'], 'properties': {'bounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}, 'projects': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'description', 'updatedAt', 'lastExportAt', 'durationSeconds', 'clipCount', 'thumbnailUrl', 'status', 'projectUrl'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'status': {'enum': ['ready', 'exporting', 'needs_captions', 'processing', 'failed'], 'type': 'string'}, 'clipCount': {'type': 'number'}, 'updatedAt': {'type': 'string'}, 'projectUrl': {'type': 'string'}, 'description': {'type': ['string', 'null']}, 'lastExportAt': {'type': ['string', 'null']}, 'thumbnailUrl': {'type': ['string', 'null']}, 'durationSeconds': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
recording_sets_clips_create
Clip a Synchronized Recording
Produce a batch from a ready synchronized camera and screen recording, with optional clip count, maximum duration and caption look. Preserves readable screen context through the existing layout pipeline. Can spend existing credits; follows clips_get with the returned batch_id.
Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'recordingSetId', 'clipCount', 'maxDurationSeconds', 'captionThemeId'], 'properties': {'clipCount': {'anyOf': [{'type': 'integer', 'maximum': 30, 'minimum': 1}, {'type': 'null'}], 'default': None}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'captionThemeId': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'recordingSetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxDurationSeconds': {'anyOf': [{'type': 'integer', 'const': 30}, {'type': 'integer', 'const': 60}, {'type': 'integer', 'const': 90}, {'type': 'integer', 'const': 180}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
recording_sets_create
Create Synchronized Recording
Create an empty camera and screen recording set in the explicit workspace. Requires existing recording-set access; does not import files or start processing.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
recording_sets_finalize
Synchronize Recording Tracks
Finalize the collected camera and screen tracks and queue analysis. Can spend existing transcription credits. Inspect returned alignment and warnings before clipping.
Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'recordingSetId'], 'properties': {'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'recordingSetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
recording_sets_get
Inspect Synchronized Recording
Read one camera and screen recording set, its primary speaker, content windows, alignment and warnings. Separate audio-only tracks are not supported.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'recordingSetId'], 'properties': {'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'recordingSetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
recording_sets_list
List Synchronized Recordings
Read bounded camera and screen recording sets in the selected workspace with status, duration and alignment warnings.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'status', 'limit', 'offset'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'status': {'anyOf': [{'enum': ['collecting_assets', 'analyzing', 'finalizing', 'ready', 'failed'], 'type': 'string'}, {'type': 'null'}], 'default': None}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
recording_sets_track_attach
Attach Camera or Screen Recording
Attach one existing authorized video asset as a camera or screen track. Specify the main speaker when known; alignment happens during finalization.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'recordingSetId', 'asset_id', 'role', 'participant_label', 'participant_name', 'is_primary'], 'properties': {'role': {'enum': ['camera', 'screen'], 'type': 'string'}, 'asset_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'is_primary': {'type': 'boolean', 'default': False}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'recordingSetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'participant_name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'default': None}, 'participant_label': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
series_apply
Apply Series
Create or replace a Growth+ Series identity and defaults. defaultCreationMode selects podcast branding or faceless Story Kit defaults; membership stays mixed. Updates require expectedRevision. Existing content keeps its settings.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'defaultCreationMode', 'description', 'coverAssetId', 'logoAssetId', 'storyKitId', 'captionThemeId', 'seriesId', 'expectedRevision', 'workspaceId', 'idempotencyKey'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'seriesId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'storyKitId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}], 'default': None}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'coverAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'captionThemeId': {'anyOf': [{'type': 'string', 'maxLength': 120, 'minLength': 1}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}], 'default': None}, 'defaultCreationMode': {'enum': ['podcast', 'faceless'], 'type': 'string', 'default': 'podcast'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['series', 'mutationReceipt'], 'properties': {'series': {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'defaultCreationMode', 'description', 'coverAssetId', 'logoAssetId', 'storyKitId', 'captionThemeId', 'id', 'revision', 'createdAt', 'updatedAt'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'createdAt': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'storyKitId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}], 'default': None}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'coverAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'captionThemeId': {'anyOf': [{'type': 'string', 'maxLength': 120, 'minLength': 1}, {'type': 'null'}], 'default': None}, 'defaultCreationMode': {'enum': ['podcast', 'faceless'], 'type': 'string', 'default': 'podcast'}}, 'additionalProperties': False}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
series_assign
Assign Series Content
Assign, move or detach one source or project using expectedSeriesId. Moving a source does not move existing clips or change branding.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['kind', 'contentId', 'seriesId', 'expectedSeriesId', 'workspaceId', 'idempotencyKey'], 'properties': {'kind': {'enum': ['project', 'source'], 'type': 'string'}, 'seriesId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'contentId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'expectedSeriesId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'kind', 'seriesId', 'previousSeriesId', 'changed', 'mutationReceipt'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'kind': {'enum': ['project', 'source'], 'type': 'string'}, 'changed': {'type': 'boolean'}, 'seriesId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'previousSeriesId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}, 'additionalProperties': False}
series_content
List Series Content
List sources or projects in a Series. Null seriesId lists standalone content. sourceId filters projects by clip origin.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['limit', 'offset', 'seriesId', 'kind', 'sourceId', 'search', 'workspaceId'], 'properties': {'kind': {'enum': ['project', 'source'], 'type': 'string'}, 'limit': {'type': 'integer', 'default': 30, 'maximum': 100, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'search': {'type': 'string', 'default': '', 'maxLength': 120}, 'seriesId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'sourceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['items', 'bounds'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'kind', 'name', 'seriesId', 'sourceId', 'thumbnailUrl', 'durationSeconds'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'kind': {'enum': ['project', 'source'], 'type': 'string'}, 'name': {'type': 'string'}, 'seriesId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'sourceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'thumbnailUrl': {'type': ['string', 'null']}, 'durationSeconds': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'bounds': {'type': 'object', 'required': ['limit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'hasMore': {'type': 'boolean'}, 'returned': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': False}
series_delete
Delete Series
Delete the Series container at an expected revision and detach its content. Sources, projects and exports are preserved.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['seriesId', 'expectedRevision', 'workspaceId', 'idempotencyKey'], 'properties': {'seriesId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'detachedProjects', 'detachedSources', 'contentPreserved', 'mutationReceipt'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'detachedSources': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'contentPreserved': {'type': 'boolean', 'const': True}, 'detachedProjects': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}
series_get
Get Series
Read a Series identity, creative defaults and revision.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'seriesId'], 'properties': {'seriesId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['series'], 'properties': {'series': {'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'defaultCreationMode', 'description', 'coverAssetId', 'logoAssetId', 'storyKitId', 'captionThemeId', 'id', 'revision', 'createdAt', 'updatedAt'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'createdAt': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'storyKitId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}], 'default': None}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'coverAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'captionThemeId': {'anyOf': [{'type': 'string', 'maxLength': 120, 'minLength': 1}, {'type': 'null'}], 'default': None}, 'defaultCreationMode': {'enum': ['podcast', 'faceless'], 'type': 'string', 'default': 'podcast'}}, 'additionalProperties': False}}, 'additionalProperties': False}
series_list
List Series
List optional Series with bounded counts and cover previews.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['limit', 'offset', 'workspaceId'], 'properties': {'limit': {'type': 'integer', 'default': 30, 'maximum': 100, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['items', 'bounds'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'defaultCreationMode', 'description', 'coverAssetId', 'logoAssetId', 'storyKitId', 'captionThemeId', 'id', 'revision', 'createdAt', 'updatedAt', 'coverUrl', 'projectCount', 'sourceCount'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'coverUrl': {'type': ['string', 'null']}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'createdAt': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'storyKitId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}], 'default': None}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'sourceCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'coverAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'projectCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'captionThemeId': {'anyOf': [{'type': 'string', 'maxLength': 120, 'minLength': 1}, {'type': 'null'}], 'default': None}, 'defaultCreationMode': {'enum': ['podcast', 'faceless'], 'type': 'string', 'default': 'podcast'}}, 'additionalProperties': False}}, 'bounds': {'type': 'object', 'required': ['limit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'hasMore': {'type': 'boolean'}, 'returned': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': False}
story_kits_apply
Apply Story Kit
Create or update a Story Kit with optimistic concurrency and an idempotent mutation receipt.
Idempotent
Input schema
{'type': 'object', 'required': ['name', 'visualStyle', 'idempotencyKey'], 'properties': {'name': {'type': 'string', 'description': 'Stable Story Kit name.'}, 'facts': {'type': 'array', 'items': {'type': 'string'}}, 'locations': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'canonicalDescription', 'referenceAssetIds', 'facts'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'facts': {'type': 'array', 'items': {'type': 'string'}}, 'referenceAssetIds': {'type': 'array', 'items': {'type': 'string'}}, 'canonicalDescription': {'type': 'string'}}, 'additionalProperties': False}}, 'storyKitId': {'type': 'string'}, 'description': {'type': 'string'}, 'visualStyle': {'type': 'string', 'description': 'Canonical visual-style contract.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace UUID. Defaults to the user's default workspace. UUID string."}, 'characterIds': {'type': 'array', 'items': {'type': 'string'}}, 'idempotencyKey': {'type': 'string'}, 'expectedRevision': {'type': 'number'}, 'narratorCharacterId': {'type': 'string'}, 'styleReferenceAssetIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['storyKit', 'mutationReceipt'], 'properties': {'storyKit': {'type': 'object'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
story_kits_get
Get Story Kit
Inspect one Story Kit and its revision before generating or updating a story.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['storyKitId'], 'properties': {'storyKitId': {'type': 'string'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace UUID. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['storyKit'], 'properties': {'storyKit': {'type': 'object'}}, 'additionalProperties': False}
story_kits_list
List Story Kits
List bounded reusable Story Kits that bind characters, locations, style, facts, and narrator voice.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'number', 'default': 0, 'minimum': 0}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional workspace UUID. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['storyKits', 'bounds'], 'properties': {'bounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}, 'storyKits': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': False}
timeline_audio_add
Add Audio To Timeline
Place an audio asset onto a BlitzReels project timeline at a timestamp for voiceover, music, or sound.
Input schema
{'type': 'object', 'required': ['projectId', 'assetId'], 'properties': {'loop': {'type': 'boolean', 'default': False, 'description': 'Loop audio to fill requested duration'}, 'volume': {'type': 'number', 'default': 1, 'description': 'Audio volume multiplier, 1 is normal'}, 'assetId': {'type': 'string', 'format': 'uuid', 'description': 'Audio media asset ID. UUID string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'BlitzReels project ID. UUID string.'}, 'startSeconds': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Timeline start time in seconds'}, 'fadeInSeconds': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Fade-in length in seconds'}, 'fadeOutSeconds': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Fade-out length in seconds'}, 'durationSeconds': {'type': 'number', 'minimum': 0, 'description': 'Optional duration. Required if the audio asset duration is not known yet.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object'}}, 'additionalProperties': False}
timeline_edit_apply
Apply Timeline Edit
Trim or extend one timeline item. Split one timeline item at an exact sequence position.
Idempotent
Input schema
{'type': 'object', 'required': ['projectId', 'operation', 'expectedRevision', 'idempotencyKey'], 'properties': {'operation': {'oneOf': [{'type': 'object', 'required': ['operationId', 'timelineItemId', 'trimStartDeltaSeconds', 'trimEndDeltaSeconds', 'snapToFrame'], 'properties': {'operationId': {'type': 'string', 'const': 'timeline.item.trim'}, 'snapToFrame': {'type': 'boolean'}, 'timelineItemId': {'type': 'string', 'format': 'uuid'}, 'trimEndDeltaSeconds': {'type': 'number'}, 'trimStartDeltaSeconds': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['operationId', 'timelineItemId', 'splitAtSeconds', 'snapToFrame'], 'properties': {'operationId': {'type': 'string', 'const': 'timeline.item.split'}, 'snapToFrame': {'type': 'boolean'}, 'splitAtSeconds': {'type': 'number', 'minimum': 0}, 'timelineItemId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}]}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'type': ['integer', 'null'], 'minimum': 0, 'description': 'Expected sequence revision, or null.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['result', 'mutationReceipt'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['success', 'operation_id', 'project_id', 'mutation_receipt_id', 'idempotency_key', 'base_revision', 'revision', 'replayed', 'txid', 'affected_timeline_item_ids', 'created_timeline_item_ids', 'deleted_timeline_item_ids', 'warnings', 'result'], 'properties': {'txid': {'type': 'number', 'minimum': 0}, 'result': {'type': 'object', 'required': ['timeline_item_id', 'trim_start_units', 'trim_end_units', 'trim_start_seconds', 'trim_end_seconds', 'message'], 'properties': {'message': {'type': 'string'}, 'trim_end_units': {'type': 'string'}, 'timeline_item_id': {'type': 'string', 'format': 'uuid'}, 'trim_end_seconds': {'type': 'number'}, 'trim_start_units': {'type': 'string'}, 'trim_start_seconds': {'type': 'number'}}, 'additionalProperties': False}, 'success': {'type': 'boolean', 'const': True}, 'replayed': {'type': 'boolean'}, 'revision': {'type': 'number', 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'operation_id': {'type': 'string', 'const': 'timeline.item.trim'}, 'base_revision': {'type': 'number', 'minimum': 0}, 'idempotency_key': {'type': 'string'}, 'mutation_receipt_id': {'type': 'string'}, 'created_timeline_item_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, 'deleted_timeline_item_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, 'affected_timeline_item_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}}, 'additionalProperties': False}, {'type': 'object', 'required': ['success', 'operation_id', 'project_id', 'mutation_receipt_id', 'idempotency_key', 'base_revision', 'revision', 'replayed', 'txid', 'affected_timeline_item_ids', 'created_timeline_item_ids', 'deleted_timeline_item_ids', 'warnings', 'result'], 'properties': {'txid': {'type': 'number', 'minimum': 0}, 'result': {'type': 'object', 'required': ['left_timeline_item_id', 'right_timeline_item_id', 'split_at_units', 'split_at_seconds'], 'properties': {'split_at_units': {'type': 'string'}, 'split_at_seconds': {'type': 'number'}, 'left_timeline_item_id': {'type': 'string', 'format': 'uuid'}, 'right_timeline_item_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}, 'success': {'type': 'boolean', 'const': True}, 'replayed': {'type': 'boolean'}, 'revision': {'type': 'number', 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'operation_id': {'type': 'string', 'const': 'timeline.item.split'}, 'base_revision': {'type': 'number', 'minimum': 0}, 'idempotency_key': {'type': 'string'}, 'mutation_receipt_id': {'type': 'string'}, 'created_timeline_item_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, 'deleted_timeline_item_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, 'affected_timeline_item_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}}, 'additionalProperties': False}]}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'message', 'retryable', 'details'], 'properties': {'code': {'enum': ['validation_error', 'not_found', 'permission_denied', 'revision_conflict', 'idempotency_conflict', 'operation_in_progress', 'operation_previous_failure', 'sequence_busy', 'mutation_failed'], 'type': 'string'}, 'details': {'type': 'object', 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}}, 'message': {'type': 'string'}, 'retryable': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}
timeline_edit_preview
Preview Timeline Edit
Preview without mutation. Trim or extend one timeline item. Split one timeline item at an exact sequence position.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['projectId', 'operation', 'expectedRevision'], 'properties': {'operation': {'oneOf': [{'type': 'object', 'required': ['operationId', 'timelineItemId', 'trimStartDeltaSeconds', 'trimEndDeltaSeconds', 'snapToFrame'], 'properties': {'operationId': {'type': 'string', 'const': 'timeline.item.trim'}, 'snapToFrame': {'type': 'boolean'}, 'timelineItemId': {'type': 'string', 'format': 'uuid'}, 'trimEndDeltaSeconds': {'type': 'number'}, 'trimStartDeltaSeconds': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['operationId', 'timelineItemId', 'splitAtSeconds', 'snapToFrame'], 'properties': {'operationId': {'type': 'string', 'const': 'timeline.item.split'}, 'snapToFrame': {'type': 'boolean'}, 'splitAtSeconds': {'type': 'number', 'minimum': 0}, 'timelineItemId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}]}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'expectedRevision': {'type': ['integer', 'null'], 'minimum': 0, 'description': 'Expected sequence revision, or null.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['plan'], 'properties': {'plan': {'type': 'object', 'required': ['operation_id', 'project_id', 'current_revision', 'expected_revision', 'destructive', 'affected_timeline_item_ids', 'would_create_timeline_item_ids', 'would_delete_timeline_item_ids', 'change_count', 'warnings'], 'properties': {'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'destructive': {'type': 'boolean'}, 'change_count': {'type': 'number', 'minimum': 0}, 'operation_id': {'enum': ['timeline.item.trim', 'timeline.item.split'], 'type': 'string'}, 'current_revision': {'type': 'number', 'minimum': 0}, 'expected_revision': {'type': ['number', 'null'], 'minimum': 0}, 'affected_timeline_item_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, 'would_create_timeline_item_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, 'would_delete_timeline_item_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'message', 'retryable', 'details'], 'properties': {'code': {'enum': ['validation_error', 'not_found', 'permission_denied', 'revision_conflict', 'idempotency_conflict', 'operation_in_progress', 'operation_previous_failure', 'sequence_busy', 'mutation_failed'], 'type': 'string'}, 'details': {'type': 'object', 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}}, 'message': {'type': 'string'}, 'retryable': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': False}]}
timeline_media_add
Add Media To Timeline
Place an image or video asset onto a BlitzReels project timeline at a timestamp, including B-roll and static images.
Input schema
{'type': 'object', 'required': ['projectId', 'assetId'], 'properties': {'assetId': {'type': 'string', 'format': 'uuid', 'description': 'Image or video media asset ID. UUID string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'BlitzReels project ID. UUID string.'}, 'layerIndex': {'type': 'number', 'minimum': 0, 'description': 'Exact timeline layer to use. Lower layer numbers render on top. Omit for intent-based placement.'}, 'startSeconds': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Timeline start time in seconds'}, 'allowDuplicate': {'type': 'boolean', 'default': True, 'description': 'Allow inserting the same asset more than once'}, 'positionPreset': {'enum': ['center', 'fullscreen', 'pip-top-left', 'pip-top-right', 'pip-bottom-left', 'pip-bottom-right'], 'type': 'string', 'default': 'fullscreen', 'description': 'Visual placement preset'}, 'animationPreset': {'enum': ['none', 'fadeIn', 'fadeOut', 'zoomIn', 'zoomOut', 'slideLeft', 'slideRight', 'slideUp', 'slideDown', 'popIn', 'bounce', 'spin'], 'type': 'string', 'default': 'none', 'description': 'Optional visual animation preset'}, 'durationSeconds': {'type': 'number', 'minimum': 0, 'description': 'Duration in seconds. Required for still images when a specific length is needed.'}, 'placementIntent': {'enum': ['overlay', 'background', 'exact'], 'type': 'string', 'default': 'overlay', 'description': 'Layer intent used when layerIndex is omitted. Use overlay for visible B-roll/logo/sticker over video, background for behind video, exact when layerIndex is supplied.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object'}}, 'additionalProperties': False}
update_timeline_clip
Update Timeline Clip
Update one timeline item's start, duration, trim, layer, ignored state, or blurred background. Provide at least one field to update besides timelineItemId.
Idempotent
Input schema
{'type': 'object', 'required': ['projectId', 'timelineItemId', 'idempotencyKey'], 'properties': {'ignored': {'type': 'boolean'}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'UUID string.'}, 'layerIndex': {'type': 'integer', 'minimum': 0}, 'startSeconds': {'type': 'number', 'minimum': 0}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8, 'description': 'Retry key. Reuse only with identical inputs.'}, 'timelineItemId': {'type': 'string', 'format': 'uuid'}, 'trimEndSeconds': {'type': 'number', 'minimum': 0}, 'durationSeconds': {'type': 'number', 'minimum': 0, 'exclusiveMinimum': 0}, 'expectedRevision': {'type': 'integer', 'minimum': 0, 'description': 'Expected sequence revision, or null.'}, 'trimStartSeconds': {'type': 'number', 'minimum': 0}, 'blurredBackground': {'type': 'boolean'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['operationId', 'projectId', 'baseRevision', 'revision', 'replayed', 'txid', 'affectedTimelineItemIds', 'createdTimelineItemIds', 'deletedTimelineItemIds', 'warnings', 'result', 'mutationReceipt'], 'properties': {'txid': {'type': 'number'}, 'result': {'type': 'object'}, 'replayed': {'type': 'boolean'}, 'revision': {'type': 'integer'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'projectId': {'type': 'string'}, 'operationId': {'type': 'string'}, 'baseRevision': {'type': 'integer'}, 'mutationReceipt': {'type': 'object', 'required': ['id', 'key', 'operation', 'status', 'replayed'], 'properties': {'id': {'type': ['string', 'null']}, 'key': {'type': ['string', 'null']}, 'status': {'enum': ['completed'], 'type': 'string'}, 'replayed': {'type': 'boolean'}, 'operation': {'type': 'string'}}, 'additionalProperties': False}, 'createdTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'deletedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}, 'affectedTimelineItemIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
video_assets_approve
Approve Previews and Produce Video
After the user approves the generated previews and animation cost, confirmApproved=true starts scene animation, narration and editable timeline assembly. Can replace the project's generated timeline and spend existing credits. Follow the revision and then export the finished project.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'projectId', 'revisionId', 'confirmApproved'], 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'revisionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'confirmApproved': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
video_feedback_save
Save Video Quality Feedback
Save the user's 1-5 rating and optional quality category/comment against one completed playable video export. Replaces that user's previous feedback for this export; does not change accepted clips or defaults. Requires the feedback storage migration to be installed.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'exportId', 'rating', 'category', 'comment'], 'properties': {'rating': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'comment': {'type': 'string', 'maxLength': 2000}, 'category': {'anyOf': [{'enum': ['moments', 'captions', 'pacing', 'framing', 'editing', 'export', 'other'], 'type': 'string'}, {'type': 'null'}]}, 'exportId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
video_storyboard_approve
Approve Storyboard Previews
After showing the storyboard and its credit estimate, confirmApproved=true starts production of reference images and scene keyframes. Spends existing credits. This stage produces reviewable previews, not animated videos.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'projectId', 'revisionId', 'confirmApproved'], 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'revisionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'confirmApproved': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
video_storyboard_asset_regenerate
Regenerate Selected Storyboard Preview
Replace the identified preview after user approval of the new credit cost. A scene_keyframe changes one keyframe; a character_anchor refreshes its dependent keyframes; a style_anchor refreshes every keyframe. Preserves unaffected previews. Does not regenerate an already finished video shot.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['projectId', 'revisionId', 'asset_type', 'workspaceId', 'idempotencyKey', 'confirmRegeneration'], 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'asset_type': {'enum': ['style_anchor', 'character_anchor', 'scene_keyframe'], 'type': 'string', 'description': 'style_anchor regenerates the shared style reference and every keyframe; character_anchor requires character_id and refreshes dependent keyframes; scene_keyframe requires scene_index.'}, 'revisionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'scene_index': {'type': 'integer', 'maximum': 11, 'minimum': 0}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'character_id': {'type': 'string', 'minLength': 1}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'confirmRegeneration': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
video_storyboard_create
Plan an Approved Video Script
Create a vertical video storyboard for the user-approved script in an existing project. Spends planning credits; returns scene narration, factual review notes, references and the production credit estimate. Does not generate images or animate video. Existing account access applies.
Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['projectId', 'script', 'workspaceId', 'idempotencyKey', 'confirmScriptApproved'], 'properties': {'script': {'type': 'string', 'maxLength': 30000, 'minLength': 1}, 'voice_id': {'type': 'string', 'maxLength': 200}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'series_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'video_model': {'type': 'string', 'maxLength': 200, 'minLength': 3}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'story_kit_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'visual_style': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'character_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 8}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'image_model_id': {'type': 'string', 'maxLength': 200, 'minLength': 3}, 'caption_style_id': {'type': 'string', 'maxLength': 200}, 'include_captions': {'type': 'boolean'}, 'planner_model_id': {'type': 'string', 'maxLength': 200, 'minLength': 3}, 'confirmScriptApproved': {'type': 'boolean', 'const': True}, 'generate_sound_effects': {'type': 'boolean'}, 'target_duration_seconds': {'type': 'number', 'maximum': 120, 'minimum': 10}, 'generate_background_music': {'type': 'boolean'}, 'style_reference_asset_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 10}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
video_storyboard_get
Review Video Storyboard
Read one authorized storyboard revision, its scene and reference previews, estimate, approvals and bounded polling guidance. Refreshes signed previews. Complete means the editable timeline is assembled; use exports_start and exports_list for a downloadable MP4.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'projectId', 'revisionId'], 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'revisionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
video_storyboard_revise
Revise Selected Storyboard Scenes
Create a new immutable draft from a known revision with selected scene, character or model changes. Preserves other scene definitions; requires review and production approval again. Does not generate media or overwrite an approved revision.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['projectId', 'revisionId', 'workspaceId', 'idempotencyKey'], 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'revisionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'video_model': {'type': 'string', 'maxLength': 200, 'minLength': 3}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'scene_updates': {'type': 'array', 'items': {'type': 'object', 'required': ['scene_index'], 'properties': {'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'scene_index': {'type': 'integer', 'maximum': 11, 'minimum': 0}, 'image_prompt': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'character_ids': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 2}, 'motion_prompt': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 12}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'image_model_id': {'type': 'string', 'maxLength': 200, 'minLength': 3}, 'character_updates': {'type': 'array', 'items': {'type': 'object', 'required': ['character_id'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'character_id': {'type': 'string', 'minLength': 1}, 'anchor_prompt': {'type': 'string', 'maxLength': 3000, 'minLength': 1}, 'canonical_description': {'type': 'string', 'maxLength': 3000, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 8}, 'style_anchor_prompt': {'type': 'string', 'maxLength': 3000, 'minLength': 1, 'description': 'Self-contained prompt for the single reference frame that locks rendering medium, palette, lighting, and grain for every scene. No characters, no text, no interfaces.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': False}
visuals_apply
Apply visual presets
Create or update up to 20 visual blocks in one call after edit timing is settled. Presets: broll-headline, steps, quote, end-screen, key-number, before-after, screenshot-focus, chapter. IDs are scoped to the project; repeating an ID updates it. Asset IDs must belong to the workspace. Atomic, undoable; dryRun validates without writing. Returns IDs and revision. No generation pass.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['projectId', 'items', 'expectedRevision', 'dryRun', 'idempotencyKey'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'at', 'duration', 'preset', 'text'], 'properties': {'at': {'type': 'number', 'maximum': 86400, 'minimum': 0}, 'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9_-]{1,80}$'}, 'cta': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'Required for end-screen.'}, 'text': {'type': 'string', 'maxLength': 220, 'minLength': 1, 'description': 'Heading, or quote. Max 120 characters except quote: 220.'}, 'focus': {'type': 'object', 'required': ['x', 'y', 'width', 'height'], 'properties': {'x': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'y': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'width': {'type': 'number', 'maximum': 1, 'exclusiveMinimum': 0}, 'height': {'type': 'number', 'maximum': 1, 'exclusiveMinimum': 0}}, 'description': 'Required for screenshot-focus. Normalized rectangle inside the source image.', 'additionalProperties': False}, 'steps': {'type': 'array', 'items': {'type': 'string', 'maxLength': 48, 'minLength': 1}, 'maxItems': 5, 'minItems': 2, 'description': 'Required for steps.'}, 'value': {'type': 'number', 'maximum': 999999, 'minimum': -999999, 'description': 'Required for key-number.'}, 'number': {'type': 'string', 'maxLength': 4, 'minLength': 1, 'description': 'Required for chapter.'}, 'preset': {'enum': ['broll-headline', 'steps', 'quote', 'end-screen', 'key-number', 'before-after', 'screenshot-focus', 'chapter'], 'type': 'string'}, 'suffix': {'type': 'string', 'maxLength': 8, 'description': 'Required for key-number; empty string allowed.'}, 'assetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Required for broll-headline and screenshot-focus.'}, 'duration': {'type': 'number', 'maximum': 30, 'minimum': 1}, 'attribution': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': 'Required for quote.'}, 'logoAssetId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Required for end-screen; null for no logo.'}, 'afterAssetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Required for before-after.'}, 'beforeAssetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Required for before-after.'}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1, 'description': 'Supply only the fields for the selected preset.'}, 'dryRun': {'type': 'boolean'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'idempotencyKey': {'type': 'string', 'pattern': '^[A-Za-z0-9._:-]+$', 'maxLength': 200, 'minLength': 8}, 'expectedRevision': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['success', 'dryRun', 'revision', 'mutationReceiptId', 'replayed', 'items', 'warnings'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'timelineItemId', 'contentItemId', 'compositionId', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'enum': ['created', 'updated'], 'type': 'string'}, 'compositionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'contentItemId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'timelineItemId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}}, 'dryRun': {'type': 'boolean'}, 'success': {'type': 'boolean', 'const': True}, 'replayed': {'type': 'boolean'}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'mutationReceiptId': {'type': ['string', 'null']}}, 'additionalProperties': False}
workflow_runs_create
Create Workflow Run
Create an interactive workflow run from a workflow and optional inputs.
Input schema
{'type': 'object', 'required': ['workflowId'], 'properties': {'inputs': {'type': 'object', 'default': {}, 'description': 'Optional workflow input values. Omit to use workflow defaults.', 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': 'string'}}, {'type': 'object', 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}]}}, {'type': 'null'}]}}, 'projectId': {'type': 'string', 'format': 'uuid', 'description': 'Optional project ID for workflows that operate on an existing project. UUID string.'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'description': 'Workflow ID to run. UUID string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['run'], 'properties': {'run': {'type': 'object'}}, 'additionalProperties': False}
workflow_runs_execute_step
Execute Workflow Run Step
Execute one pending workflow run step and return updated run status.
Input schema
{'type': 'object', 'required': ['runId', 'stepRunId'], 'properties': {'runId': {'type': 'string', 'format': 'uuid', 'description': 'Workflow run ID. UUID string.'}, 'stepRunId': {'type': 'string', 'format': 'uuid', 'description': 'Step run ID from workflow_runs_create or workflow_runs_get. UUID string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result', 'run'], 'properties': {'run': {'type': 'object'}, 'result': {'type': 'object'}}, 'additionalProperties': False}
workflow_runs_get
Get Workflow Run
Get workflow run status, step statuses, outputs, warnings, and dashboard URL.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'format': 'uuid', 'description': 'Workflow run ID. UUID string.'}, 'stepLimit': {'type': 'number', 'default': 20, 'description': 'Maximum workflow run steps to return (1-100).'}, 'stepOffset': {'type': 'number', 'default': 0, 'description': 'Workflow run step offset.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['run'], 'properties': {'run': {'type': 'object', 'required': ['steps', 'stepBounds'], 'properties': {'steps': {'type': 'array', 'items': {'type': 'object'}}, 'stepBounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}}}}, 'additionalProperties': False}
workflows_get
Get Workflow
Get a workflow definition, input schema, defaults, and ordered steps.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['workflowId'], 'properties': {'stepLimit': {'type': 'number', 'default': 20, 'description': 'Maximum workflow steps to return (1-100).'}, 'stepOffset': {'type': 'number', 'default': 0, 'description': 'Workflow step offset.'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'description': 'Workflow ID. UUID string.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'object', 'required': ['steps', 'stepBounds'], 'properties': {'steps': {'type': 'array', 'items': {'type': 'object'}}, 'stepBounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}}}}, 'additionalProperties': False}
workflows_import
Import Workflow
Import a public BlitzReels workflow into the user's workspace.
Input schema
{'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'description': 'Public workflow ID to import. UUID string.'}, 'workspaceId': {'type': 'string', 'format': 'uuid', 'description': "Optional target workspace ID. Defaults to the user's default workspace. UUID string."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'object', 'required': ['steps', 'stepBounds'], 'properties': {'steps': {'type': 'array', 'items': {'type': 'object'}}, 'stepBounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}}}}, 'additionalProperties': False}
workflows_list
List Workflows
List public BlitzReels workflows that can be imported into a workspace.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum workflows to return (1-50).'}, 'offset': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Pagination offset.'}, 'search': {'type': 'string', 'description': 'Optional search query for workflow name or description.'}, 'trigger': {'enum': ['video_uploaded', 'project_created', 'export_started', 'manual'], 'type': 'string', 'description': 'Optional trigger filter.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['workflows', 'bounds'], 'properties': {'bounds': {'type': 'object', 'required': ['limit', 'maxLimit', 'offset', 'total', 'returned', 'hasMore', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'maxLimit': {'type': 'number'}, 'returned': {'type': 'number'}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}, 'workflows': {'type': 'array', 'items': {'type': 'object'}}}, 'additionalProperties': False}
workspace_brand_scan
Inspect Supplied Business Website
Start extracting a brand profile from the exact website the user supplied and authorized to scan. Saves a draft profile for review; does not apply discovered fields to existing videos. Can spend existing account credits.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'websiteUrl', 'confirmAuthorizedToScan'], 'properties': {'websiteUrl': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'confirmAuthorizedToScan': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
workspace_brand_scan_get
Read Website Brand Draft
Read one authorized website extraction run and its draft business profile. Show the extracted fields to the user for review before saving them as defaults.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'runId'], 'properties': {'runId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'UUID string.'}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
workspace_context_get
Read Business Context
Read the selected workspace's business audience, offer, reviewed brand defaults, protected vocabulary, editorial purpose, language, avoided terms, pronunciation notes and existing account entitlements. Returns current export quality and watermark constraints without pricing or upgrade links.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId'], 'properties': {'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
workspace_context_save
Save Reviewed Business Context
Save the user-reviewed business name, audience, offer, conversion goal, tone, protected vocabulary and editorial preferences for the selected workspace. Requires workspace settings permission and confirmReviewed=true; changes future assistant guidance, preserving existing projects. Pronunciation notes guide script drafting; they do not retime or replace source speech.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['workspaceId', 'idempotencyKey', 'brandName', 'audience', 'offer', 'conversionGoal', 'tone', 'editorialPreferences', 'protectedWords', 'confirmReviewed'], 'properties': {'tone': {'anyOf': [{'type': 'string', 'maxLength': 240}, {'type': 'null'}]}, 'offer': {'anyOf': [{'type': 'string', 'maxLength': 500}, {'type': 'null'}]}, 'audience': {'anyOf': [{'type': 'string', 'maxLength': 500}, {'type': 'null'}]}, 'brandName': {'anyOf': [{'type': 'string', 'maxLength': 160}, {'type': 'null'}]}, 'workspaceId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'default': None}, 'conversionGoal': {'anyOf': [{'type': 'string', 'maxLength': 500}, {'type': 'null'}]}, 'idempotencyKey': {'type': 'string', 'maxLength': 200, 'minLength': 8}, 'protectedWords': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'maxItems': 40}, 'confirmReviewed': {'type': 'boolean', 'const': True}, 'editorialPreferences': {'anyOf': [{'type': 'object', 'required': ['purpose', 'preferredLanguage', 'avoidTerms', 'pronunciationNotes'], 'properties': {'purpose': {'anyOf': [{'enum': ['authority', 'education', 'product_demo', 'lead_generation'], 'type': 'string'}, {'type': 'null'}]}, 'avoidTerms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'maxItems': 40}, 'preferredLanguage': {'anyOf': [{'type': 'string', 'maxLength': 40, 'minLength': 2}, {'type': 'null'}]}, 'pronunciationNotes': {'type': 'array', 'items': {'type': 'object', 'required': ['term', 'pronunciation'], 'properties': {'term': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'pronunciation': {'type': 'string', 'maxLength': 160, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 40}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
workspaces_list
List Workspaces
List bounded workspaces the connected user belongs to, with their role and default workspace. Selecting a workspace for the task does not change account defaults.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['limit', 'offset'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
Changed
generation_jobs_cancel
Oct. 1, 2026, 2:53 a.m.
Changed
generation_faceless_create
Oct. 1, 2026, 2:53 a.m.
Changed
generation_sound_create
Oct. 1, 2026, 2:53 a.m.
Changed
generation_music_create
Oct. 1, 2026, 2:53 a.m.
Changed
generation_voiceover_create
Oct. 1, 2026, 2:53 a.m.
Changed
generation_video_create
Oct. 1, 2026, 2:53 a.m.
Changed
generation_image_create
Oct. 1, 2026, 2:53 a.m.
Added
captions_look_apply
Oct. 1, 2026, 2:53 a.m.
Added
clips_export
Oct. 1, 2026, 2:53 a.m.
Added
clips_repair
Oct. 1, 2026, 2:53 a.m.
Added
clips_reselect
Oct. 1, 2026, 2:53 a.m.
Added
clips_inspect
Oct. 1, 2026, 2:53 a.m.
Added
clips_list
Oct. 1, 2026, 2:53 a.m.
Added
clips_status_get
Oct. 1, 2026, 2:53 a.m.
Changed
clips_get
Oct. 1, 2026, 2:53 a.m.
Changed
clips_create
Oct. 1, 2026, 2:53 a.m.
Added
workspace_brand_scan_get
Oct. 1, 2026, 2:53 a.m.
Added
workspace_brand_scan
Oct. 1, 2026, 2:53 a.m.
Added
workspace_context_save
Oct. 1, 2026, 2:53 a.m.
Added
workspace_context_get
Oct. 1, 2026, 2:53 a.m.
Added
workspaces_list
Oct. 1, 2026, 2:53 a.m.
Added
clips_recover
Oct. 1, 2026, 2:53 a.m.
Added
captions_source_prepare
Oct. 1, 2026, 2:53 a.m.
Added
video_feedback_save
Oct. 1, 2026, 2:53 a.m.
Added
captions_words_correct
Oct. 1, 2026, 2:53 a.m.
Added
captions_words_list
Oct. 1, 2026, 2:53 a.m.
Added
clips_candidates_list
Oct. 1, 2026, 2:53 a.m.
Added
editor_edit_undo
Oct. 1, 2026, 2:53 a.m.
Added
editor_history_list
Oct. 1, 2026, 2:53 a.m.
Added
editor_snapshot_get
Oct. 1, 2026, 2:53 a.m.