Edit ops
The edit MCP tool (and POST /api/v1/edit) changes a canvas through one catalogue of ops. 316 ops today. Call op describe for the live list.
- canvas: nodes and free elements on the canvas.
- frame: what is inside a frame (elements, props, keyframes, clips).
- editor: editor actions.
Access read and write are free, spend uses credits, editor needs a chat turn in the app.
canvas ops (96)
Section titled “canvas ops (96)”list_canvases
Section titled “list_canvases”The canvases of the project.
Access: read
No input.
list_nodes
Section titled “list_nodes”Live nodes of a canvas.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | Canvas id from list_canvases. |
canvas_snapshot
Section titled “canvas_snapshot”Nodes, connections, runs, products, posts, influencers and revision of a canvas in one read.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes |
canvas_revision
Section titled “canvas_revision”Live revision of a canvas, or that canvas or project is gone.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes |
create_node
Section titled “create_node”Create a typed node at x,y (data per describe_node_types).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
type | string | yes | |
x | number | yes | |
y | number | yes | |
displayName | string | ||
data | object |
update_node
Section titled “update_node”Patch the data of one node; null removes a field.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | |
data | object | yes | Only the fields to change. |
set_node_color
Section titled “set_node_color”Tag a node with a colour (red, orange, yellow, green, blue, purple, grey); null clears it.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | |
color | red / orange / yellow / green / blue / purple / grey / null | yes | null removes the tag |
move_node
Section titled “move_node”Move a node to x,y.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | |
x | number | yes | |
y | number | yes | |
z | number | Stacking order. Omit to leave it unchanged. |
write_nodes
Section titled “write_nodes”Patch many nodes at once, each with its expected version; answers written, conflict or not_found per node.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
items | array of object | yes |
paste_nodes
Section titled “paste_nodes”Create several nodes and the edges between them in one call.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodes | array of object | yes | |
edges | array of object |
estimate_text_cost
Section titled “estimate_text_cost”Token estimate of a text node run.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeId | string | yes | |
prompt | string | ||
model | string | Omit for the default text model. |
suggest_next_steps
Section titled “suggest_next_steps”Next nodes worth adding after this one.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeId | string | yes |
undo_gesture
Section titled “undo_gesture”Replay the inverse of a recorded gesture; refused when the canvas moved on.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
items | array of any | yes | the gesture items the canvas recorded, newest write first |
run_demo
Section titled “run_demo”Build the first-run example chain.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes |
end_onboarding
Section titled “end_onboarding”Mark onboarding dismissed or completed.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
status | dismissed / completed | yes |
connect_nodes
Section titled “connect_nodes”Draw a line from a source node to a target node (a frame takes no inputs: use place_in_frame).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
sourceNodeId | string | yes | |
targetNodeId | string | yes | |
sourceHandle | string | ||
targetHandle | string |
create_formats
Section titled “create_formats”Editable copies of a frame in other formats, content refitted, placed to its right.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
frameId | string | yes | |
targets | array of object / object | yes | each {format: 1:1 | 4:5 | 9:16 | 16:9 …} or {size: {width, height}} px |
combine_scenes
Section titled “combine_scenes”One video frame that plays the picked scene frames left to right; the scenes stay live, referenced not copied.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
frameIds | array of string | yes | scene frames; they play left to right as placed on the canvas |
export_selection
Section titled “export_selection”Export frames or frame elements as png, jpg, webp, svg or pdf, one file or a zip; answers a url.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
frameIds | array of string | ||
elements | array of object | ||
rows | array of object | yes | value: 0.5–4 for scale, px for width/height |
name | string |
styles
Section titled “styles”List, define, apply or rename the named styles shared by the frames of a canvas.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
name | string | ||
to | string | rename: the new name, in every frame that has the style | |
style | any | define: restyles every frame with this name | |
ids | array of string | apply name to frameId:elementId; none of style/ids lists the canvas styles |
variables
Section titled “variables”Variable collections shared by the frames: list, define a value (synced to every frame that has the collection), switch a mode per frame, bind an element.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
collection | string | ||
name | string | ||
type | colour / number / string / boolean | ||
values | object | define: {mode: value or {alias: “Collection/name”}}; every mode of the collection needs one | |
modes | array of string | define: the modes of a new collection, first is the default | |
mode | string | switch the collection to this mode, in the frames named (all frames that have it when none) | |
frames | array of string | define: frames to put a new collection in; mode: the frames to switch | |
ids | array of string | bind (with collection, name, target) to frameId:elementId; none of values/mode/ids lists the canvas collections |
move_frame_element
Section titled “move_frame_element”Move an element inside its frame, to another frame, or out onto the canvas.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
frameId | string | yes | the Frame node the element is in |
elementId | string | yes | the clip id inside that frame |
toFrameId | string | the Frame to put it in; omit to make a new Frame on the canvas | |
x | number | ||
y | number | ||
canvasX | number | canvas position of a new Frame | |
canvasY | number |
copy_frame_element
Section titled “copy_frame_element”Copy an element the same way move_frame_element moves it; the source keeps it.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
frameId | string | yes | the Frame node the element is in |
elementId | string | yes | the clip id inside that frame |
toFrameId | string | the Frame to put it in; omit to make a new Frame on the canvas | |
x | number | ||
y | number | ||
canvasX | number | canvas position of a new Frame | |
canvasY | number |
draw_element
Section titled “draw_element”Draw a free Text, Box, Ellipse or Path on the canvas, outside any frame.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
drawn | any | yes | {tool:text|rectangle|ellipse|polygon|star, box:{left,top,width,height}}, {tool:line|arrow, from:{x,y}, to:{x,y}, stroke?:#hex}, or {tool:pen, path:SVG d}, in canvas units |
draw_frame
Section titled “draw_frame”Draw an empty frame at x,y with a width and a preset format or a height.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
x | number | yes | |
y | number | yes | |
w | number | yes | |
h | number | ||
format | 16:9 / 9:16 / 1:1 / 4:5 / 1:1 1440 / A poster / custom | ||
still | number | seconds into the frame to keep, making it a still graphic (post, poster) instead of a video |
group_elements
Section titled “group_elements”Group 2 or more free elements, or wrap any nodes in a Section.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeIds | array of string | yes | free elements on the canvas (element nodes), at least 2; or any nodes with section true |
section | boolean | wrap the nodes in a Section instead of a Group |
ungroup_element
Section titled “ungroup_element”Dissolve a Group.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeId | string | yes | a free element holding several shapes |
rotate_group
Section titled “rotate_group”Turn a Group and its members around its centre.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeId | string | yes | a Group on the canvas |
degrees | number | yes | clockwise, added to its current angle |
scale_group
Section titled “scale_group”Resize a Group and scale its members.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeId | string | yes | a Group on the canvas |
width | number | yes | |
height | number | yes |
move_group
Section titled “move_group”Move a Group and its members.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeId | string | yes | a Group on the canvas |
x | number | yes | |
y | number | yes |
place_in_frame
Section titled “place_in_frame”Put a generated media node into a frame.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | the Generate image, Generate video or Generate text node |
toFrameId | string | the Frame to put it in; omit to make a new Frame on the canvas | |
x | number | ||
y | number | ||
canvasX | number | canvas position of a new Frame | |
canvasY | number |
delete_node
Section titled “delete_node”Soft-delete a node and drop its lines.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes |
run_node
Section titled “run_node”Generate with a node (spends credits).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | |
medium | text / image / video / audio / model3d | yes | |
prompt | string | Omit to keep the prompt already on the node. | |
model | string | Omit to keep the model already on the node. | |
params | object | e.g. { aspectRatio: “1:1”, duration: 8 }. | |
provider | string | A provider id from list_models routes (e.g. “kie”, “openrouter”); omit or “auto” for the cheapest healthy one. | |
variants | integer | 1, 2, 4 or 8 results; omit for one. | |
into | nodes / history | With variants: new nodes (default) or this node’s history. | |
expectedVersion | integer | yes |
image_tool
Section titled “image_tool”Remove an image’s background, upscale it or split it into layers, in a new node (spends credits).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | An image node with a result. |
tool | remove_background / upscale / split_layers / inpaint / outpaint | yes | |
factor | 2 / 4 | upscale only: 2 or 4 (default 2). | |
prompt | string | inpaint: what to paint in the masked area. | |
extend | object | outpaint: how far to grow each side, as a fraction (0-1) of the image width (left/right) or height (top/bottom). | |
mask | object | inpaint: the area to repaint, as brush strokes {points:[[x,y]…],width} and/or regions {left,top,width,height}, all fractions 0-1 of the image; width is a fraction of its shorter side. |
layers_to_frame
Section titled “layers_to_frame”A frame holding a split image’s base and layers as image elements.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes |
list_models
Section titled “list_models”Models this project can run for a medium, with credits and routes.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
medium | text / image / video / audio / model3d | yes | Which kind of node the models generate. |
list_runs
Section titled “list_runs”Runs of a node.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes |
preview_node_loop
Section titled “preview_node_loop”Quote a node loop.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes |
run_node_loop
Section titled “run_node_loop”Run a node loop (spends credits).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | |
confirm | boolean | Required true above 50 combinations, after the user agreed to the cost. |
cancel_node_loop
Section titled “cancel_node_loop”Cancel a running node loop.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes |
cancel_run
Section titled “cancel_run”Stop one node run.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes |
preview_run_graph
Section titled “preview_run_graph”Ordered steps and credits of a graph run, before running it.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
graph | downstream / stale | yes | downstream: nodeId and every node it feeds, in order. stale: results older than their inputs. |
nodeId | string | downstream: the node to start from. | |
canvasId | string | stale: the canvas. | |
nodeIds | array of string | stale: only these nodes. Omit for the whole canvas. |
run_graph
Section titled “run_graph”Run a graph downstream or the stale part of a canvas (spends credits).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
graph | downstream / stale | yes | downstream: nodeId and every node it feeds, in order. stale: results older than their inputs. |
nodeId | string | downstream: the node to start from. | |
canvasId | string | stale: the canvas. | |
nodeIds | array of string | stale: only these nodes. Omit for the whole canvas. |
create_canvas
Section titled “create_canvas”Add a canvas to the project.
Access: write
No input.
rename_canvas
Section titled “rename_canvas”Rename a canvas.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
name | string | yes |
delete_canvas
Section titled “delete_canvas”Delete a canvas.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes |
rename_project
Section titled “rename_project”Rename the project.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes |
list_connections
Section titled “list_connections”Lines of a canvas.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes |
disconnect_nodes
Section titled “disconnect_nodes”Remove a line.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
connectionId | string | yes | from list_connections |
set_edge_mode
Section titled “set_edge_mode”Set a line to fixed or iterate.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
connectionId | string | yes | |
mode | fixed / iterate | yes | iterate makes the line a loop axis |
rename_node
Section titled “rename_node”Rename a node; empty resets it.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | |
name | string | yes |
resize_node
Section titled “resize_node”Set the width and height of a node.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | |
width | number | yes | |
height | number | yes |
duplicate_nodes
Section titled “duplicate_nodes”Duplicate nodes with the lines among them.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeIds | array of string | yes | |
offset | object | where the copies land relative to the originals; omitted = a small step |
save_canvas_version
Section titled “save_canvas_version”Save the whole canvas under a name.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
name | string | yes | e.g. “Client review” |
export_canvas_file
Section titled “export_canvas_file”Save a whole canvas as a .feega file; answers a download url.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes |
request_canvas_import
Section titled “request_canvas_import”Signed URL to PUT a .feega file before import_canvas_file.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
bytes | integer | yes |
import_canvas_file
Section titled “import_canvas_file”Open an uploaded .feega file as a new canvas in this project.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
path | string | yes | from request_canvas_import |
list_canvas_versions
Section titled “list_canvas_versions”Saved versions of a canvas, newest first.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes |
restore_canvas_version
Section titled “restore_canvas_version”Put the canvas back to a saved version; the moment before is saved first.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
versionId | string | yes | from list_canvas_versions |
list_canvas_comments
Section titled “list_canvas_comments”Comment threads of a canvas, with replies and where each is pinned, and the teammates that can be mentioned.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes |
add_canvas_comment
Section titled “add_canvas_comment”Start a comment thread on the canvas or on a node, or reply to one.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
body | string | yes | |
nodeId | string | pin to this node; x/y are then relative to its top-left | |
parentId | string | reply to this thread (a comment id from list_canvas_comments) | |
x | number | ||
y | number | ||
timeMs | integer | the moment of a motion frame the comment is about, in milliseconds | |
mentions | array of string | teammate ids from list_canvas_comments; write @Name in the body too |
edit_canvas_comment
Section titled “edit_canvas_comment”Edit the text of a comment you wrote.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
commentId | string | yes | |
body | string | yes | |
mentions | array of string |
delete_canvas_comment
Section titled “delete_canvas_comment”Delete a comment you wrote; deleting the first comment removes its thread.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
commentId | string | yes |
resolve_canvas_comment
Section titled “resolve_canvas_comment”Resolve or reopen a comment thread.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
commentId | string | yes | the first comment of the thread |
resolved | boolean | yes |
share_canvas
Section titled “share_canvas”Turn the view-only link of a canvas on or off.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
on | boolean | yes | true mints a view-only link; false revokes it |
share_doc
Section titled “share_doc”Turn the share link of a doc node on or off.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | a doc node |
on | boolean | yes |
list_templates
Section titled “list_templates”Canvas templates that can be inserted.
Access: read
No input.
insert_template
Section titled “insert_template”Insert a template at x,y.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
templateId | string | yes | from list_templates |
x | number | yes | |
y | number | yes |
list_techniques
Section titled “list_techniques”Saved techniques of the workspace: packaged flows with their input and output slots.
Access: read
No input.
save_technique
Section titled “save_technique”Package a connected selection of nodes as a reusable technique with input and output slots.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeIds | array of string | yes | |
name | string | yes | kebab-case, at most 48 characters |
run_technique
Section titled “run_technique”Place a copy of a technique at x,y, fill its input slots and run its inner graph (spends credits; run:false only places it).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
techniqueId | string | yes | from list_techniques |
x | number | yes | |
y | number | yes | |
inputs | array of object | one value per input slot of the technique: the prompt of that node | |
run | boolean | default true: run the inner graph (spends credits); false only places it |
place_technique
Section titled “place_technique”Place a live technique node at x,y; editing the technique updates it.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
techniqueId | string | yes | |
x | number | yes | |
y | number | yes |
run_technique_node
Section titled “run_technique_node”Run a technique node on the texts wired into it (spends credits).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes |
detach_technique
Section titled “detach_technique”Swap a technique node for a copy of its graph.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeId | string | yes |
open_technique
Section titled “open_technique”Write a technique graph on its own canvas to edit; save_technique under the same name bumps the version.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
techniqueId | string | yes |
delete_technique
Section titled “delete_technique”Delete a saved technique.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
techniqueId | string | yes |
add_frame_from_template
Section titled “add_frame_from_template”Add a frame made from a template, in a format, at x,y.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
templateId | string | yes | a motion template id (list_motion_templates) |
format | 16:9 / 9:16 / 1:1 / 4:5 / 1:1 1440 / A poster / custom | ||
values | object | field key → value, as set_template_values takes them | |
x | number | yes | |
y | number | yes |
show_run
Section titled “show_run”Show an older result of a node.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | |
runId | string | yes | from list_runs |
sync_node
Section titled “sync_node”Re-sync a products or social feed node.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes |
retry_loop_combination
Section titled “retry_loop_combination”Retry one combination of a node loop.
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes | |
outputListNodeId | string | yes | |
label | string | yes | |
runId | string |
preview_workflow
Section titled “preview_workflow”Quote a workflow over chosen nodes.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeIds | array of string | yes |
run_workflow
Section titled “run_workflow”Run a workflow over chosen nodes (spends credits).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
nodeIds | array of string | yes |
cancel_workflow
Section titled “cancel_workflow”Cancel a workflow.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
workflowId | string | yes |
cancel_render
Section titled “cancel_render”Cancel a render of a node.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
nodeId | string | yes |
request_upload
Section titled “request_upload”Signed URL to PUT a file into storage.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
fileName | string | yes | |
mimeType | string | yes | |
bytes | integer | yes |
register_upload
Section titled “register_upload”Turn an uploaded file into a node and an asset.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
canvasId | string | yes | |
path | string | yes | from request_upload, after the bytes were PUT to its uploadUrl |
fileName | string | yes | |
mimeType | string | yes | |
bytes | integer | yes | |
x | number | ||
y | number |
import_link
Section titled “import_link”Copy a picture or video from a link into the project library.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
url | string | yes | https link to a picture or video |
list_voices
Section titled “list_voices”Custom voices of the org.
Access: read
No input.
voice_library
Section titled “voice_library”Search the shared voice library.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
search | string | ||
language | string | ||
gender | string | ||
accent | string | ||
useCase | string | ||
page | integer |
use_library_voice
Section titled “use_library_voice”Add a library voice to the org.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
ownerId | string | yes | |
voiceId | string | yes | |
name | string | yes |
design_voice
Section titled “design_voice”Design a voice from a description (spends credits).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
description | string | yes |
save_voice
Section titled “save_voice”Save a designed voice.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
generatedVoiceId | string | yes | |
name | string | yes | |
description | string |
clone_voice
Section titled “clone_voice”Clone a voice from a sample, with consent (spends credits).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | |
consentBasis | own_voice / consented_speaker | yes | |
speaker | string | consented_speaker: the name of the person who consented | |
attested | boolean | yes | true only when the user confirmed the consent |
seconds | number | yes | length of the recording |
sampleBase64 | string | yes | the recording, base64, at most 3MB |
mimeType | string |
delete_voice
Section titled “delete_voice”Delete a custom voice.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes | a custom voice id from list_voices |
read_video_reference
Section titled “read_video_reference”Read a video asset into transcript, scenes and style (spends on first read).
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
assetId | string | yes | A video asset of this project or the library: a video node data.assetId or a chat attachment. |
withdraw_from_gallery
Section titled “withdraw_from_gallery”Take an item out of the gallery.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
itemId | string | yes |
frame ops (190)
Section titled “frame ops (190)”get_motion_doc
Section titled “get_motion_doc”Read the video being edited: size, duration in seconds, tracks and clips (start/duration in seconds), and the clips the user has selected.
Access: read
No input.
measure_text
Section titled “measure_text”The rendered box of a text clip (Title, Text, Kicker, Caption) at rest, in px of the frame: {left, top, width, height} of the ink lines (top-left corner, before transform, keyframes and animators) and the lines as they wrap.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes |
list_components
Section titled “list_components”Every component a clip can use: the library (its track and props, ranges in the units of the prompt for this video size) and the custom components written in code for this video.
Access: read
No input.
list_assets
Section titled “list_assets”Images, videos, audio and 3D models of this project that clips can use, by id.
Access: read
No input.
add_clip
Section titled “add_clip”Add a clip of a library component at a time in seconds.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
component | Title / Text / Kicker / Caption / Image / Video / Audio / Shape / Logo / Null / BrandBackground / ProductCard / SocialMockup / CanvasMock / Model3D / Shape3D / Text3D / Logo3D / Device3D / Composition / Particles / LiquidGlass / LiquidBlob / ShaderEffect / Precomp / Adjustment / Custom | yes | |
start | number | yes | |
duration | number | ||
props | object | ||
track_id | string | ||
effects | array of object |
set_timing
Section titled “set_timing”Change when a clip starts and how long it lasts, in seconds.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
start | number | ||
duration | number |
set_props
Section titled “set_props”Change some props of a clip; the rest are kept (left/top keep the size, x/y the centre).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
props | object | yes |
text_style
Section titled “text_style”Rich text: style characters start..end (end exclusive) of a Text clip only.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
start | integer | ||
end | integer | ||
style | object | ||
list | bullet / number / none / nest / lift | ||
clear | boolean |
set_transition
Section titled “set_transition”Set the transition at the start (in) or end (out) of a clip.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
side | in / out | yes | |
kind | none / fade / slide-up / slide-down / slide-left / slide-right / scale / wipe / blur | yes | |
duration | number | yes |
set_clip_transition
Section titled “set_clip_transition”Transition between two clips at a cut, like a dissolve in an editor: put it on the clip that arrives (clip_id); the clip that ends exactly where it starts (same track first, else any video track) is the one that leaves.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
kind | crossfade / dip-to-black / push-left / push-right / wipe / zoom / blur / none | yes | |
duration | number |
edit_scenes
Section titled “edit_scenes”Scenes of a video frame made by combining frames: each scene is another frame on the canvas, played by reference, back to back.
Access: write
No input.
trim_clip
Section titled “trim_clip”Move the start or the end edge of a clip to a time in seconds, keeping the other edge.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
edge | start / end | yes | |
at | number | yes |
move_clip
Section titled “move_clip”Move a clip to a new start time (seconds) or to a marker by its label, and optionally to another track of the same kind.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
start | number | ||
marker | string | ||
track_id | string |
set_marker
Section titled “set_marker”Add a labelled marker at time (seconds): on the video, or on a clip (time from the clip start) with clip_id.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
label | string | yes | |
time | number | yes | |
clip_id | string |
remove_marker
Section titled “remove_marker”Remove a marker by its label, from the video or from a clip (clip_id).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
label | string | yes | |
clip_id | string |
set_work_area
Section titled “set_work_area”Set the work area (seconds) the editor previews and loops, or clear it with clear true.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
start | number | ||
end | number | ||
clear | boolean |
set_visibility
Section titled “set_visibility”Hide (left out of the render) or lock (not moved by edits) a track (track_id) or a clip (clip_id).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
track_id | string | ||
clip_id | string | ||
hidden | boolean | ||
locked | boolean | ||
bleed | boolean | ||
clip_content | boolean | ||
lock_ratio | boolean |
rename_clip
Section titled “rename_clip”Name a clip as it shows in Layers.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
name | string | yes |
arrange_clips
Section titled “arrange_clips”Arrange clips in time, in their start order: nudge (move all by seconds, negative earlier), sequence (end to end, seconds = gap), stagger (each start seconds after the previous), align_start, align_end, distribute (even starts between first and last).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
op | nudge / sequence / stagger / align_start / align_end / distribute | yes | |
seconds | number |
arrange_space
Section titled “arrange_space”Arrange clips in the frame, like a design tool: align_left/center/right/top/middle/bottom lines up several clips on the edge of their joint box (one clip aligns to the frame); distribute_x/distribute_y spreads 3+ clips so the gaps between them are equal, or with spacing (px) puts exactly that gap between each (2+ clips, the first stays); tidy lays a row or column out with its most common gap, or a grid from its top-left corner (Tidy up); move shifts them by dx/dy px; scale (Scale tool) multiplies size, text size and stroke weight by factor from the top-left of their joint box; scale_group (factor, optional factor_y for a different vertical factor) and rotate_group (degrees) transform the clips together around the centre of their joint box, like dragging the selection handles.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
op | align_left / align_center / align_right / align_top / align_middle / align_bottom / distribute_x / distribute_y / tidy / move / scale / scale_group / rotate_group | yes | |
dx | number | ||
dy | number | ||
factor | number | ||
degrees | number | ||
factor_y | number | ||
spacing | number | ||
at | number | ||
mode | design / motion |
remove_clip
Section titled “remove_clip”Remove one or more clips.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes |
split_clip
Section titled “split_clip”Split clips in two at a frame, like the editor Split: the first part ends at frame, the second starts there with its own id.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
frame | integer | yes |
duplicate_clip
Section titled “duplicate_clip”Duplicate clips, like the editor Duplicate: each copy starts where its original ends, on the same track.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes |
fit_duration
Section titled “fit_duration”Fit the video length to its content: it ends where the last content ends plus the style hold (the last frame stays on screen), and backgrounds and music past that end are trimmed.
Access: write
No input.
set_transform
Section titled “set_transform”Set base transform values of a clip; the rest are kept.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
transform | object | yes |
set_keyframes
Section titled “set_keyframes”Animate one prop of a clip: replaces its keyframes.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
prop | string | yes | |
keyframes | array of object | yes |
animate_to
Section titled “animate_to”Animate a clip to a target: for each prop in to, key its current value at start (s from the clip start, default 0) and the target duration s later (default 1).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
to | object | yes | |
start | number | ||
duration | number | ||
ease | standard / enter / exit / linear / overshoot / elastic / bounce / array of any |
edit_lane
Section titled “edit_lane”Edit one keyframe lane (prop) of a clip.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
prop | string | yes | |
action | mute / unmute / duplicate | yes | |
times | array of number |
set_key_interpolation
Section titled “set_key_interpolation”Change the interpolation of keyframes a clip already has on one prop, all of them or only those at the given times (seconds from the clip start).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
prop | string | yes | |
times | array of number | ||
in | bezier / linear / hold / auto / continuous | ||
out | bezier / linear / hold / auto / continuous | ||
roving | boolean |
apply_ease_preset
Section titled “apply_ease_preset”Apply an ease preset to keyframes of one prop (all, or those at the given times in seconds from the clip start).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
prop | string | yes | |
times | array of number | ||
preset | easy-ease / easy-ease-in / easy-ease-out / apple-default / apple-ease-in / apple-ease-out / apple-ease-in-out | yes |
set_ease_handles
Section titled “set_ease_handles”Shape the segment leaving the keyframe at time (seconds from the clip start), like dragging the bezier handles in a graph editor: influence 0..100 (% of the segment the handle reaches), speed in the units of the prop per second (px/s for x/y, %/s for scale; 0 = eased to a stop).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
prop | string | yes | |
time | number | yes | |
out_influence | number | ||
out_speed | number | ||
in_influence | number | ||
in_speed | number |
set_motion_path
Section titled “set_motion_path”Turn the x/y position keyframes of a clip into one curved motion path (enabled true) or back to separate x and y animations (false).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
enabled | boolean | ||
auto_orient | boolean |
set_path_tangent
Section titled “set_path_tangent”Bend the motion path at the position keyframe at time (seconds from the clip start): in and out are the bezier handles as [dx, dy] offsets from the key point, in px of the frame (like x/y).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
time | number | yes | |
in | array of any | ||
out | array of any |
analyze_audio
Section titled “analyze_audio”Analyse an audio or video asset (from list_assets): tempo in BPM, beat grid and onsets (seconds in the file), speech regions (seconds in the file).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
asset_id | string | yes |
frame_read_video_reference
Section titled “frame_read_video_reference”Read a reference video asset (attached in chat or from list_assets): voice-over transcript, scenes with timestamps and durations, on-screen text, UI elements shown, camera moves, transitions, pacing, palette and typography.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
asset_id | string | yes |
pulse_with_music
Section titled “pulse_with_music”Make a clip pulse with the music: sets an audio-reactive expression on scale, opacity, blur (scale and opacity follow the loudness, blur flashes on each beat).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
prop | scale / opacity / blur | yes | |
source | string | ||
strength | number |
beat_times
Section titled “beat_times”Where the music hits, on the timeline: the beat grid (hit: beats) or every detected onset (hit: onsets) of the Audio clips, in seconds from the start of the video.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
hit | beats / onsets |
mark_beats
Section titled “mark_beats”Add a timeline marker on every beat (hit: beats, labelled “beat N”) or every onset of the music (hit: onsets, “hit N”).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
hit | beats / onsets |
cut_to_beat
Section titled “cut_to_beat”Re-time clips to the beat: in time order, the first starts on the nearest beat and each one ends on the beat nearest its length, the next starting there, so every cut lands on a beat.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
division | beat / half |
duck_audio
Section titled “duck_audio”Duck music under a voice-over: writes volume keyframes on the music clip so it drops while the voice speaks (its analysed speech regions, or the whole clip) and comes back after.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
music_clip_id | string | yes | |
voice_clip_id | string | yes | |
depth | number | ||
attack | number | ||
release | number |
remove_keyframes
Section titled “remove_keyframes”Remove the keyframes of one prop of a clip, all of them or only those at the given times (seconds from the clip start).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
prop | string | yes | |
times | array of number |
set_mask
Section titled “set_mask”Mask a clip: only the inside of the mask shows (invert shows the outside).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
mask | object | yes |
set_mask_stack
Section titled “set_mask_stack”Stack up to 7 more masks after the clip’s first mask (set_mask first), in order.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
masks | array of object | yes |
remove_mask
Section titled “remove_mask”Remove the mask of a clip, its stacked masks and its mask keyframes.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes |
set_track_matte
Section titled “set_track_matte”Use the clip directly above (on the track above, overlapping in time) as a matte for this clip.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
matte | none / alpha / alpha-inverted / luma / luma-inverted | yes |
use_as_mask
Section titled “use_as_mask”“Use as mask”: of clip_ids, the bottom-most clip (lowest track) becomes the mask of the others, which must sit on tracks above it.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes |
release_mask
Section titled “release_mask”Undo use_as_mask: every clip masked by mask_id draws whole again, and the mask clip paints as itself.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
mask_id | string | yes |
set_camera
Section titled “set_camera”Turn on the virtual camera of the video, change its base values, or turn it off (enabled false).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | ||
values | object | ||
dof | boolean |
apply_device_preset
Section titled “apply_device_preset”Animate a Device3D clip with a ready-made move over the clip: spin-in — spins in from behind and settles at a three-quarter view; hero-turn — a slow turn from one three-quarter view to the other across the clip; lid-open — a laptop opens from closed to working angle; fold-open — a foldable phone unfolds from closed to flat; screen-scroll — scrolls a tall screenshot or page from top to bottom.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
preset | spin-in / hero-turn / lid-open / fold-open / screen-scroll | yes |
add_particles
Section titled “add_particles”Add a Particles clip (seeded, deterministic emitter) from a preset: sparks — hot streaks bursting up from a point and falling back; dust — fine motes drifting slowly through the whole frame; confetti — colourful paper squares thrown up, tumbling and fluttering down; bokeh — large soft out-of-focus discs floating gently; snow — flakes falling from above the frame, swaying side to side.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
preset | sparks / dust / confetti / bokeh / snow | yes | |
start | number | yes | |
duration | number | ||
props | object | ||
track_id | string | ||
effects | array of object |
add_shader_effect
Section titled “add_shader_effect”Add a ShaderEffect clip: a GPU effect from the open-source shaders library, seeked frame by frame so preview and export agree.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
effect | mesh-gradient / flowing-gradient / aurora / plasma / swirl / simplex-noise / film-grain / fluted-glass / liquid-metal / brushed-metal / chrome / godrays / lens-flare / light-leak / vignette / wave-distortion / chromatic-aberration / iris-wipe / noise-dissolve / ripple-wipe / zoom-blur / progressive-blur / cursor-ripples / chroma-flow | yes | |
start | number | yes | |
duration | number | ||
image | string | ||
props | object | ||
track_id | string | ||
effects | array of object |
apply_particle_preset
Section titled “apply_particle_preset”Restyle a Particles clip with a preset (sparks, dust, confetti, bokeh, snow); its seed and keyframes are kept.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
preset | sparks / dust / confetti / bokeh / snow | yes |
add_liquid_glass
Section titled “add_liquid_glass”Add a drop of liquid glass on a new top track: a lens over everything below it that magnifies and bends what it covers (strongest at its rim), frosts it with a blur, and draws a lit rim and a specular highlight.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
start | number | yes | |
duration | number | yes | |
x | number | ||
y | number | ||
diameter | number | ||
path | array of object | ||
spring | ui / soft / camera / lead / trail | ||
stiffness | number | ||
damping | number | ||
refraction | number | ||
frost | number | ||
rim | number | ||
tint | string | ||
tint_amount | number | ||
wobble | number | ||
wobble_speed | number | ||
fade_in | number | ||
fade_out | number |
add_liquid_blob
Section titled “add_liquid_blob”Add a real 3D drop of liquid glass on a new top track, rendered in WebGL over everything below it: true refraction through its curved surface (the content magnifies, bends and flips at the rim), chromatic dispersion, a soft studio reflection, sharp highlights, a thin lit rim, a soft shadow with a caustic.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
start | number | yes | |
duration | number | yes | |
x | number | ||
y | number | ||
diameter | number | ||
path | array of object | ||
spring | ui / soft / camera / lead / trail | ||
stiffness | number | ||
damping | number | ||
drops | integer | ||
split | number | ||
split_angle | number | ||
blend | number | ||
ior | number | ||
dispersion | number | ||
frost | number | ||
reflection | number | ||
tint | string | ||
tint_amount | number | ||
viscosity | number | ||
wobble | number | ||
wobble_speed | number | ||
stretch | number | ||
seed | integer | ||
fade_in | number | ||
fade_out | number |
set_time_remap
Section titled “set_time_remap”Retime a Video clip, in every render path.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
clear | boolean | ||
speed | number | ||
reverse | boolean | ||
keyframes | array of object |
freeze_frame
Section titled “freeze_frame”Freeze a Video clip on the source frame showing at a time of the video (seconds), for the whole clip.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
at | number | yes |
add_device_row
Section titled “add_device_row”Add three Device3D clips side by side that enter staggered and turn at different rates (parallax row).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
device | phone-pro / phone / foldable / android / laptop-pro / laptop-air / monitor / tablet / browser | yes | |
start | number | yes | |
duration | number | yes | |
screens | array of string | ||
track_id | string | ||
effects | array of object |
set_look
Section titled “set_look”Set how 3D clips (3D model, 3D shape, 3D text, 3D logo) are lit: image-based environment (presets: none — no image-based light; room — neutral procedural studio room, soft and even (the studio look); overpass — soft overcast city light; sunset — warm low sun over a city; sunrise — cool morning sky, open field; quarry — bright outdoor daylight; night — dark night sky, low key), its intensity (0–5) and rotation (degrees), soft shadow maps and a contact shadow under the object.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | ||
environment | object | ||
soft_shadows | boolean | ||
contact_shadow | boolean |
set_light
Section titled “set_light”Add or edit a light of the 3D look by id (kind is required to add one): directional, point, spot, area (area is a soft rectangular panel, it casts no shadow map).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes | |
kind | directional / point / spot / area | ||
color | string | ||
intensity | number | ||
x | number | ||
y | number | ||
z | number | ||
cast_shadow | boolean |
remove_light
Section titled “remove_light”Remove a light of the 3D look by id.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes |
set_light_keyframes
Section titled “set_light_keyframes”Animate one value of a light: replaces its keyframes.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes | |
prop | intensity / x / y / z | yes | |
keyframes | array of object | yes |
set_camera_keyframes
Section titled “set_camera_keyframes”Animate one camera value: replaces its keyframes.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
prop | x / y / z / rotateX / rotateY / rotateZ / fov / focusDistance / aperture | yes | |
keyframes | array of object | yes |
apply_camera_preset
Section titled “apply_camera_preset”Add a ready-made camera move between start and start+duration (seconds of the video); it starts from wherever the camera is then and keeps keys outside that span, so moves chain.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
preset | dolly-in / dolly-out / truck / pan / orbit / crane / dolly-zoom / rack-focus | yes | |
start | number | yes | |
duration | number | yes | |
amount | number | ||
target | number | ||
from_clip | string | ||
to_clip | string | ||
ease | standard / enter / exit / linear / overshoot / elastic / bounce / array of any |
set_physics
Section titled “set_physics”Give a visual clip physics: it falls with gravity and bounces, simulated at a fixed step and baked per frame, so every seek and render shows the same motion.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
physics | object / null | yes |
apply_physics_preset
Section titled “apply_physics_preset”Give a visual clip a ready physics move: drop — falls and bounces on the bottom of the frame until it rests; throw — thrown up and sideways, it arcs and bounces off the edges of the frame; float — drifts slowly as in water and nudges off the edges.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
preset | drop / throw / float | yes |
set_clip_depth
Section titled “set_clip_depth”Place a clip in the camera world: depth in pixels behind the focus plane 0 (negative comes forward; a far background 1500–4000, a foreground card -200..0).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
depth | number | ||
space | world / screen |
add_null
Section titled “add_null”Add a Null: an invisible handle that draws nothing.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
start | number | yes | |
duration | number | ||
x | number | ||
y | number | ||
track_id | string |
set_parent
Section titled “set_parent”Parent a clip to another visual clip or a Null (parent_id null unparents).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
parent_id | string / null | yes | |
inherit_opacity | boolean |
parent_clips
Section titled “parent_clips”Parent several clips at once, keeping them where they are.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
parent_id | string |
add_auto_layout
Section titled “add_auto_layout”Auto layout (flexbox-style).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | ||
children | array of object | in place of clip_ids: each child with its sizing, as set_layout_item takes it | |
clip_id | string | ||
fill | string | container fill colour | |
stroke | string | container stroke colour | |
stroke_width | number | px | |
radius | number | corner roundness, as roundness in set_props |
frame_clips
Section titled “frame_clips”Frame the selection, like the editor Frame selection: wraps those visual clips in a transparent rectangle Shape drawn directly under them and parents them to it, without auto layout; children stay where they are.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
group | boolean |
resize_to_fit
Section titled “resize_to_fit”Resize a frame container to fit its children, like the editor Resize to fit (⌥⇧⌘R): a plain frame takes the bounding box of its children, an auto layout hugs them.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes |
set_auto_layout
Section titled “set_auto_layout”Change an auto layout container: direction horizontal|vertical|grid (grid: columns equal-width columns, rows as tall as their tallest child, gap between columns, crossGap between rows, justify/align place a child inside its cell; columnTracks/rowTracks [{type fixed|flex|hug, value}] size each column/row: fixed px, flex fr share of the free space, hug its content; empty columnTracks = columns equal flex columns, empty rowTracks = hug rows; flex is refused on an axis where the grid hugs; autoFlow row|column fills rows or columns first), wrap (lines break when the row is full; needs a fixed main size), gap and crossGap (between lines) in px of the frame, negative overlaps the children, padding {top,right,bottom,left} px, justify start|center|end|space-between|space-around|space-evenly on the main axis, align start|center|end|baseline on the cross axis (baseline: horizontal rows line up text baselines, a box sits on its bottom edge), order (child ids, first to last), alignContent auto|space-between (wrap: space-between spreads the lines over the container height, needs a fixed cross size), firstOnTop true draws the first child of the order above the others (visual only, default false keeps the track order), strokesIncluded true (default on a new container) counts the inside strokes of the container as padding so children sit inside them.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
direction | horizontal / vertical / grid | ||
wrap | boolean | ||
gap | number | ||
crossGap | number | ||
padding | object | ||
justify | start / center / end / space-between / space-around / space-evenly | ||
align | start / center / end / baseline | ||
columns | integer | ||
columnTracks | array of object | ||
rowTracks | array of object | ||
autoFlow | row / column | ||
alignContent | auto / space-between | ||
firstOnTop | boolean | ||
strokesIncluded | boolean | ||
order | array of string | ||
clip_id | string | yes | |
off | boolean |
set_layout_item
Section titled “set_layout_item”How a clip sizes inside its auto layout, per axis (in a grid also: column/row 0-based anchor cell, columnSpan/rowSpan, cellX/cellY start|center|end align it in its cell over the grid justify/align; a fill child takes the spanned area): fixed (its own width/height), hug (text: its words; a container: its children), fill (shares the space left; on a clip not yet in a container it applies once it is parented).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
width | fixed / hug / fill | ||
height | fixed / hug / fill | ||
minWidth | number | ||
maxWidth | number | ||
minHeight | number | ||
maxHeight | number | ||
absolute | boolean | ||
column | integer | ||
row | integer | ||
columnSpan | integer | ||
rowSpan | integer | ||
cellX | start / center / end / baseline | ||
cellY | start / center / end / baseline | ||
clip_id | string | yes | |
constraints | object |
set_constraints
Section titled “set_constraints”Pin clips to the frame for when it is resized (set_canvas, the frame on the canvas).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
horizontal | left / right / left_right / center / scale | ||
vertical | top / bottom / top_bottom / center / scale |
set_part_fill
Section titled “set_part_fill”Colour one text part of a poster (a data-part such as “title” or “lines:0”, as the clip summary lists them in parts) without touching the other parts.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
part | string | yes | |
fills | array of any / null | yes |
reorder_auto_layout
Section titled “reorder_auto_layout”Move a child of an auto layout to position index (0 = first) in its container.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
container_id | string | yes | |
clip_id | string | yes | |
index | integer | yes |
leave_auto_layout
Section titled “leave_auto_layout”Take a clip out of its auto layout: it is unparented and keeps the box it was laid out in.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes |
set_expression
Section titled “set_expression”Drive one number property with an expression evaluated at every frame, on top of its keyframes (value is the keyframed value).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | ||
camera | boolean | ||
prop | string | yes | |
expression | string / null | yes |
expression_to_keys
Section titled “expression_to_keys”Convert one expression into plain keyframes: the property is sampled over the clip, the keys replace its track (a straight expression becomes two keys, a wiggle one per bend) and the expression is removed, so the result can be edited by hand.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
prop | string | yes |
apply_interactive_preset
Section titled “apply_interactive_preset”Make the interactive web export react: cursor-parallax — the layer drifts a little with the cursor (copy it to several layers with different depths for depth); card-tilt — the layer turns in 3D towards the cursor and the phone tilt, and lifts on hover; follow-cursor — the layer follows the cursor, easing behind it; scroll-scrub — scrolling the host page moves the playhead from start to end.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
preset | cursor-parallax / card-tilt / follow-cursor / scroll-scrub | yes | |
clip_id | string |
set_interactive
Section titled “set_interactive”How the interactive web export plays: playback autoplay|in-view|scrub|paused (in-view plays while on screen, scrub ties the playhead to the scroll through a section scroll_length viewports tall (1..10, default 3) that the hosted embed builds itself; opened alone the embed scrolls itself), loop, and outside hold|fallback: what a precomp reads when the cursor leaves its box (fallback = default pose, hold = last value).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
playback | autoplay / in-view / scrub / paused | ||
loop | boolean | ||
outside | hold / fallback | ||
scroll_length | integer |
declare_var
Section titled “declare_var”Declare or replace a runtime variable: a value the site that embeds the video sets live from its own code (web element, React, Flutter), without reloading.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | |
kind | number / boolean / enum / color / string | yes | |
default | number / boolean / string | yes | |
min | number | ||
max | number | ||
options | array of string |
remove_var
Section titled “remove_var”Remove a runtime variable and its text/colour bindings.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes |
bind_var
Section titled “bind_var”Drive a clip property with a runtime variable.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | |
clip_id | string | yes | |
prop | string | yes |
unbind_var
Section titled “unbind_var”Stop a runtime variable driving a clip property: removes its text/colour binding, or the expression on a number property.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
prop | string | yes |
export_interactive
Section titled “export_interactive”Check the interactive web export: lists the clip properties that react to live input, the playback settings and the embed snippet.
Access: write
No input.
publish_embed
Section titled “publish_embed”Host the interactive web export on feega and return a snippet to paste into any site: the feega loader script and a
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
action | publish / unpublish |
add_shape
Section titled “add_shape”Add a vector Shape clip.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
kind | rect / circle / line / ellipse / polygon / star / path / vector | yes | |
start | number | yes | |
duration | number | ||
path | string | ||
fills | array of any | ||
strokes | array of object | ||
props | object | ||
track_id | string | ||
effects | array of object |
add_icon
Section titled “add_icon”Add a built-in line icon (name: one of the schema enum) as a stroked Shape path clip.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | arrow-right / arrow-left / arrow-up / arrow-down / arrow-up-right / chevron-right / chevron-left / chevron-up / chevron-down / check / close / plus / minus / menu / search / user / users / star / heart / play / pause / cart / bag / home / settings / bell / mail / phone / calendar / clock / camera / image / video / music / mic / volume / lock / unlock / eye / download / upload / share / link / trash / pencil / copy / filter / globe / pin / message / send / bookmark / zap / sun / moon / cloud / credit-card / gift / tag / thumbs-up / info / alert / check-circle / refresh / log-out / external-link / sparkles / grid / list / more / file / folder | yes | |
x | number | ||
y | number | ||
size | number | ||
color | string | ||
start | number | ||
duration | number | ||
track_id | string |
combine_shapes
Section titled “combine_shapes”Boolean of two or more Shape clips at the current frame: union, subtract (upper shapes cut out of the bottom one), intersect or exclude.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
op | union / subtract / intersect / exclude / outline_stroke / flatten | yes | |
live | boolean | boolean ops only: keep the shapes editable in a live boolean group | |
at | number | seconds; default 0 |
to_vector
Section titled “to_vector”Turn a Shape clip into an editable vector network (same drawing): vertices that any number of segments can join, filled regions.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes |
text_to_path
Section titled “text_to_path”Turn Title, Text or Kicker clips into free path shapes that look the same: glyph outlines from the font with its size, tracking, leading, alignment and wrapping as rendered.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes |
set_vector_network
Section titled “set_vector_network”Replace a Shape clip network: vertices [{x,y}] in 0..1 of its box, segments [{start,end,tangentStart,tangentEnd}] (tangents relative to their vertex, zero = straight), regions [{winding, loops: [[segment indices]]}] that fill.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
network | object | yes |
edit_path_points
Section titled “edit_path_points”Edit the points of a path, polygon, star or line Shape clip one by one, in order (indices refer to the path after the previous edits; a parametric shape becomes a free path).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
edits | array of object | yes |
set_path
Section titled “set_path”Replace the outline of a Shape clip with SVG path data (M L H V C S Q T Z, absolute or relative) in the shape box: 0,0 is its top-left and 1,1 its bottom-right.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
path | string | yes |
morph_to
Section titled “morph_to”Add a morph target to a Shape clip: a path (SVG path data (M L H V C S Q T Z, absolute or relative) in the shape box: 0,0 is its top-left and 1,1 its bottom-right) or a parametric kind (rect, circle, line, ellipse, polygon, star, path, vector) with its roundness/sides/points/innerRadius.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
path | string | ||
kind | rect / circle / line / ellipse / polygon / star / path / vector | ||
roundness | number | ||
sides | number | ||
points | number | ||
innerRadius | number | ||
start | number | ||
end | number |
morph_to_clip
Section titled “morph_to_clip”Morph a Shape clip into the outline of another Shape clip on the canvas (a drawn path, a star, a ring with holes): the other clip is the next morph target and the morph is keyed over one second from at (seconds from the video start, default the clip start).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
to_clip_id | string | yes | |
at | number |
add_modifier
Section titled “add_modifier”Add a modifier at the end of a Shape clip’s stack (applied top to bottom).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
kind | trim / repeater / offset / wiggle / zigzag / round / merge / wave / blob / goo | yes | |
params | object |
apply_shape_preset
Section titled “apply_shape_preset”Give a Shape clip a liquid look, replacing its modifiers and their keys: blob — the outline swells and breathes like a living drop, by itself; ripple — waves run around the edge; liquid — three drops drift apart and melt back into one.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
preset | blob / ripple / liquid | yes |
set_modifier
Section titled “set_modifier”Change a modifier of a Shape clip: some params (the rest are kept), enabled on/off, or its position in the stack (index 0 applies first).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
modifier_id | string | yes | |
params | object | ||
enabled | boolean | ||
index | integer |
remove_modifier
Section titled “remove_modifier”Remove a modifier from a Shape clip, with its keyframes and expressions.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
modifier_id | string | yes |
add_effect
Section titled “add_effect”Add an effect at the end of a clip’s effect stack (applied top to bottom, inside the clip transform).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
kind | brightness-contrast / hue-saturation / tint / curves / black-white / gaussian-blur / directional-blur / progressive-blur / drop-shadow / inner-shadow / background-blur / glow / stroke / noise / chromatic-aberration / vignette / wave / lut / levels / lift-gamma-gain | yes | |
params | object |
set_lut
Section titled “set_lut”Colour-grade a clip with a LUT: a preset (teal-orange, warm-film, cool-night, bleach-bypass, sepia) or the text of a .cube file.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
effect_id | string | ||
preset | teal-orange / warm-film / cool-night / bleach-bypass / sepia | ||
cube | string | ||
name | string | ||
amount | number |
set_effect
Section titled “set_effect”Change an effect of a clip: some params (the rest are kept), enabled on/off, or its position in the stack (index 0 applies first).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
effect_id | string | yes | |
params | object | ||
enabled | boolean | ||
index | integer |
remove_effect
Section titled “remove_effect”Remove an effect from a clip, with its keyframes and expressions.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
effect_id | string | yes |
write_effect
Section titled “write_effect”Write a custom effect for the whole workspace: a GLSL ES 1.0 fragment body defining vec4 effect(vec2 uv).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | |
frag | string | yes | |
params | array of object |
patch_effect
Section titled “patch_effect”Edit a custom effect by text: edits [{find, replace}] applied in order on its frag, params replaces the list.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
effect_id | string | yes | |
version | integer | yes | |
edits | array of object | ||
params | array of object |
list_effects
Section titled “list_effects”The custom effects of the workspace: id, name, version, params, check state and cost per 1080p frame.
Access: read
No input.
write_layout
Section titled “write_layout”Write a custom composition layout for the whole workspace (same name replaces it).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | |
spec | object | yes |
patch_layout
Section titled “patch_layout”Replace the spec of a custom layout at its version (list_layouts); a stale version answers conflict.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
layout_id | string | yes | |
version | integer | yes | |
spec | object | yes |
list_layouts
Section titled “list_layouts”The custom composition layouts of the workspace: id, name, version, spec.
Access: read
No input.
apply_layout
Section titled “apply_layout”Arrange a Composition clip on a custom layout of the workspace (list_layouts / write_layout): its spec is copied into the clip, so the video renders with no workspace.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
layout_id | string | yes |
add_custom_effect
Section titled “add_custom_effect”Put a custom effect of the workspace (write_effect / list_effects) on an Image or Video clip, one per clip.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
effect_id | string | yes | |
params | object |
set_custom_effect
Section titled “set_custom_effect”Change a custom effect on a clip: some params (the rest are kept) or enabled on/off.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
custom_effect_id | string | yes | |
params | object | ||
enabled | boolean |
remove_custom_effect
Section titled “remove_custom_effect”Remove a custom effect from a clip, with its keyframes.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
custom_effect_id | string | yes |
set_blend_mode
Section titled “set_blend_mode”Blend a visual clip with the layers below it, like a layer mode in After Effects: normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, luminosity.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
mode | normal / multiply / screen / overlay / darken / lighten / color-dodge / color-burn / hard-light / soft-light / difference / exclusion / hue / saturation / color / luminosity | yes |
expose_field
Section titled “expose_field”Expose a clip prop as a named template field (After Effects Essential Graphics): text, a custom component param, a colour, an asset slot.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
key | string | yes | |
label | string | yes | |
type | text / number / color / asset / boolean / select / media_list | yes | |
clip_id | string | yes | |
prop | string | yes | |
default | any | ||
also | array of object |
unexpose_field
Section titled “unexpose_field”Remove an exposed template field.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
key | string | yes |
list_fields
Section titled “list_fields”List the exposed template fields with their clip, prop, type, default and current value.
Access: read
No input.
render_batch
Section titled “render_batch”Render one video per data row on our servers, each row filling the exposed fields (keys as in list_fields; missing keys keep the default).
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
rows | array of object | yes | |
name_pattern | string | ||
confirm | boolean | yes |
spawn_agent
Section titled “spawn_agent”Spawn a sub-agent (spawn_agent) only for work that stands on its own: independent research, building shots on a separate time range in parallel, exploring two alternatives side by side.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
prompt | string | yes | |
label | string | ||
kind | visual / code / reasoning / mechanical / reading / extraction / simple | ||
tools | array of string | ||
model | string | ||
budget_usd | number | yes |
render_video
Section titled “render_video”Render the saved video to an MP4 for free on the user’s own device.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
quality | standard / high / max | Encoding quality: standard (smaller file), high (default), max (largest file, finest grain and lines) |
set_style
Section titled “set_style”The motion style the video is directed in: launch-film (Launch film), apple-minimal (Apple minimal), ui-morph (UI morph reel), graphic (Graphic poster).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
style | launch-film / apple-minimal / ui-morph / graphic | yes |
set_reference_look
Section titled “set_reference_look”Record what the references you looked at measure, before building: the largest type as a share of the frame height (a word that fills a poster is 0.6–1.2), whether type bleeds off the edge, grid columns, how much small text, the palette, the font class and the imagery.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
typeScale | number | yes | |
bleed | boolean | yes | |
columns | integer | yes | |
smallText | none / some / dense | yes | |
palette | array of string | yes | |
font | grotesk / condensed / serif / mono / display / script | yes | |
imagery | none / shapes / photo / illustration | yes | |
type | array of object | ||
rules | object | ||
margin | number | ||
pacing | object | ||
notes | string | ||
avoid | array of object |
set_motion_blur
Section titled “set_motion_blur”Real motion blur, like After Effects: each frame averages sub-frame samples across the shutter, so fast moves smear.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | ||
shutter_angle | number | ||
shutter_phase | number | ||
samples | integer | ||
clip_ids | array of string | ||
clips_blur | boolean |
list_fonts
Section titled “list_fonts”Search the fonts: uploaded (the org’s own font files, usable by family name in set_font, register_font and font params) and the Google Fonts catalogue (1950 families, most popular first): family, category, weights, italic.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
query | string | ||
limit | integer |
set_font
Section titled “set_font”Set the font of a text clip (Title, Text, Kicker, Caption, ProductCard): any Google Fonts family (registered in the video automatically), an uploaded font (list_fonts uploaded), or a built-in (sans, mono).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
family | string | yes | |
weight | integer | ||
italic | boolean |
named_style
Section titled “named_style”Named styles of the video.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
action | define / apply / detach / save / remove / rename / list | yes | |
name | string | ||
style | any | ||
clip_ids | array of string | ||
to | string | ||
kind | text / colour / effect / paint | ||
slot | styleRef / effectStyleRef |
variable
Section titled “variable”Variables with modes, bound to clip props.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
action | define / mode / add_mode / bind / unbind / remove / list | yes | |
collection | string | ||
name | string | ||
type | colour / number / string / boolean | ||
values | object | ||
modes | array of string | ||
mode | string | ||
clip_id | string | ||
target | string |
register_font
Section titled “register_font”Add a Google Fonts family or an uploaded font (list_fonts uploaded) to the video.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
family | string | yes |
replace_font
Section titled “replace_font”Replace a font everywhere in the video, missing or not: every clip, styled range and composition using family “from” switches to “to” (Google family, uploaded font or built-in), and “from” leaves the video.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
from | string | yes | |
to | string | yes |
remove_font
Section titled “remove_font”Remove a font from the video.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
family | string | yes |
add_text_animator
Section titled “add_text_animator”Animate a text clip (Title, Text, Kicker, Caption) per character, word or line, like an After Effects text animator.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
unit | char / word / line | yes | |
shape | square / ramp / smooth | ||
seed | integer / null | ||
start | number | ||
end | number | ||
offset | number | ||
softness | number | ||
values | object |
set_text_animator
Section titled “set_text_animator”Change a text animator: shape, seed, start/end/offset/softness, values (merged; the rest are kept), or its order (index).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
animator_id | string | yes | |
unit | char / word / line | ||
index | integer | ||
shape | square / ramp / smooth | ||
seed | integer / null | ||
start | number | ||
end | number | ||
offset | number | ||
softness | number | ||
values | object |
remove_text_animator
Section titled “remove_text_animator”Remove a text animator with its keyframes and expressions.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
animator_id | string | yes |
apply_text_preset
Section titled “apply_text_preset”Add a ready-made text animation that plays between start and start+duration (seconds from the clip start): blur-up — each character rises out of a blur, left to right; word-stagger — words fade and slide up one after another; line-mask-up — each line slides up from below its own baseline, like a mask reveal; fade-chars — each character fades in, left to right; fade-words — words fade in one after another; fade-lines — lines fade in one after another; slide-words — words slide in from the left while they fade; slide-lines — lines slide in from the right while they fade; scale-chars — each character grows from small while it fades in; blur-words — words come out of a blur one after another; drop-chars — each character drops in from above; spin-chars — each character turns upright as it fades in; typewriter — characters appear one at a time, no fade.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
preset | blur-up / word-stagger / line-mask-up / fade-chars / fade-words / fade-lines / slide-words / slide-lines / scale-chars / blur-words / drop-chars / spin-chars / typewriter | yes | |
start | number | ||
duration | number |
set_text_counter
Section titled “set_text_counter”Make a Text clip count from one number to another, like a stat reveal: the text shows the number frame by frame.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
counter | object / null | yes |
set_text_path
Section titled “set_text_path”Put a text clip (Title, Text, Kicker, Caption) on a path, like After Effects Path Options.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
preset | circle / ellipse / arc / wave / line | ||
shape_clip_id | string | ||
align | start / center / end | ||
reverse | boolean | ||
perpendicular | boolean | ||
forceAlignment | boolean | ||
firstMargin | number | ||
lastMargin | number | ||
radius | number | ||
arc | number |
remove_text_path
Section titled “remove_text_path”Take a text clip off its path, with the path keyframes and expressions.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes |
add_track
Section titled “add_track”Add a visual or audio track, optionally named.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
kind | visual / audio | yes | |
name | string |
arrange_layers
Section titled “arrange_layers”Move clips in the picture stack: front, forward (above the one clip over it), backward (below the one clip under it) or back; a clip sharing a track is split onto its own, the others keep their order.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
to | front / forward / backward / back | yes |
set_track
Section titled “set_track”Rename a track or move it in the stack (index 0 is the top track).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
track_id | string | yes | |
name | string | ||
index | integer |
remove_track
Section titled “remove_track”Remove a track and every clip on it.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
track_id | string | yes |
set_canvas
Section titled “set_canvas”Change the format (16:9, 9:16, 1:1, 4:5; custom keeps the current size and lets the frame node on the canvas set it), a custom size (width and height in pixels, both together: a still design frame takes any size from 1 to 16384 a side, a video the long side up to 3840 and the short side up to 2160; pass still with the size to make a tall page in one call), the total duration in seconds (max 180; music or sound running past a shorter end is cut there with a fade-out, a visual clip is not; the server renders up to 60 s on free and Go, 120 s on Starter, 180 s on Pro) or the frame rate (24, 25, 30, 50, 60, 120 fps; times keep their seconds).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
format | 16:9 / 9:16 / 1:1 / 4:5 / 1:1 1440 / A poster / custom | ||
preset | phone / tablet / desktop / presentation / watch / paper / social | a device, paper or social size: phone, tablet, desktop, presentation, watch, paper, social; layers pinned with constraints keep their edge distance | |
width | integer | ||
height | integer | ||
duration | number | ||
fps | 24 / 25 / 30 / 50 / 60 / 120 | ||
background | brand / transparent | ||
still | number / boolean | ||
layout_guides | array of object |
move_to_frame
Section titled “move_to_frame”Move one clip of this video into another Frame on the canvas (frame_id, a motion node id), or, without frame_id, into a new Frame next to this one that holds only it.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
frame_id | string | ||
x | number | ||
y | number | ||
at_seconds | number |
export_image
Section titled “export_image”Draw one frame of the video as an image file at full resolution and save it to the project: png, jpg, webp, scale 1 (the canvas size) or 2 (double).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
format | png / jpg / webp | ||
scale | 1 / 2 / 3 / 4 | ||
time | number |
analyze_site
Section titled “analyze_site”Read a public website for a brand: name, tagline, description, logos (svg first, then favicon, apple-touch-icon, og:image), palette (theme, logo, CSS), accent (hex and where it was found; hex null with a neutral palette when the brand has none), fonts (google true = usable by name after register_font), images with width and height (og, hero, product), store (shopify, woocommerce or none) with its real products from the public catalogue, and social links.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
url | string | yes | the site, e.g. https://www.allbirds.com or allbirds.com |
write_script
Section titled “write_script”Save the research and the four-act script of a launch film before building it; the video is not built until this passes.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
brand | real / fictional | ||
research | object | yes | |
acts | array of object | yes | |
app_account | declined | declined: the user said they have no test account of the app |
write_storyboard
Section titled “write_storyboard”Lay the film out as a storyboard: a canvas of its own, linked to this video, that the user opens full screen.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
beats | array of object | yes |
read_storyboard
Section titled “read_storyboard”Read the storyboard of this video as it is now: its cards left to right (the user may have rewritten, moved or added some), the pictures and clips on it with their asset ids and the card each one feeds, and the flow between cards.
Access: editor
No input.
update_storyboard_card
Section titled “update_storyboard_card”Rewrite the text of one card of the storyboard (node_id from read_storyboard).
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
node_id | string | yes | |
text | string | yes |
link_storyboard_beat
Section titled “link_storyboard_beat”Tie a storyboard card to the clips that play it, once they are built: the card then opens the editor at that beat.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
node_id | string | yes | |
clip_ids | array of string | yes |
use_brand
Section titled “use_brand”Read a brand of this workspace: the project brand without a name, or the brand the user names.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | brand name or slug; omit for the project brand |
import_asset
Section titled “import_asset”Download a picture or logo from a public https url (PNG, JPEG, WebP, GIF, AVIF or SVG, max 12MB) into the project assets and return its asset_id for Image, Logo, Logo3D (SVG), ProductCard or Device3D screen.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
url | string | yes | |
label | string | ||
capture | desktop / mobile |
add_asset
Section titled “add_asset”Register a project asset in the video so it renders with it.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
asset_id | string | yes |
remove_asset
Section titled “remove_asset”Unregister an asset from the video.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
asset_id | string | yes |
read_component
Section titled “read_component”Read the code (html, css, js), props schema, version and determinism check of a custom component.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes |
mark_story
Section titled “mark_story”Mark where an act of the story starts (a timeline marker “story:
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
beat | problem / solution / proof / claim | yes | |
start | number | yes |
add_ui
Section titled “add_ui”Recreate a piece of product UI live, as vector UI in the brand style, instead of a screenshot: link-shortener (A link shortener: the long url types itself into the field, a cursor clicks the button, the short link appears with a “Copied” toast.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
kind | link-shortener / link-list / stat-cards / funnel / payouts / qr / window / sidebar / hero / prompt-box / editor-canvas / card-grid / pricing / chat / modal / toggle / upload / generated-result / cursor | yes | |
start | number | yes | |
duration | number | yes | |
props | object | ||
track_id | string |
list_ui_kinds
Section titled “list_ui_kinds”The props of each add_ui kind, with type, default and range, before you place one; kind narrows it to one.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
kind | link-shortener / link-list / stat-cards / funnel / payouts / qr / window / sidebar / hero / prompt-box / editor-canvas / card-grid / pricing / chat / modal / toggle / upload / generated-result / cursor |
recreate_ui
Section titled “recreate_ui”Rebuild a real product UI as a sharp, vector, animatable component.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
url | string | ||
asset_id | string | ||
name | string | yes | PascalCase, e.g. UiEditor |
region | object | ||
start | number | ||
duration | number | ||
track_id | string |
list_shots
Section titled “list_shots”The library of premium shots: handcrafted, deterministic scenes with their own camera move, secondary motion, house easing and holds.
Access: read
No input.
add_shot
Section titled “add_shot”Place a premium shot from the library (list_shots): kinetic-title (a full-frame title: words punch in one by one from 134% and an 18 px blur, then hold on a slow push-in); device-fly-in (the recreated product UI on a screen flies in from deep space turning 104°, lands and drifts: the establishing shot of the product); ui-focus (one flow of the recreated UI, one part at a time, driven by a cursor: it clicks the field and types, moves to the button and presses it while the camera follows, then pulls back to the result); feature-grid (up to six feature tiles fly in exploded in depth and assemble into a grid); stat-count (one number counts up huge, an accent rule draws under it, the label rises); before-after (the pain line is struck through, then an accent divider wipes the recreated UI in beside it (under it in vertical)); logo-resolve (the original logo, flat and untouched, resolves with a fade and a small scale; the address follows); ui-morph (the cursor rests on one element of the recreated UI, travels to another with a highlight as the camera follows, clicks it and the target changes state); tagline-card (the end card: the promise rises line by line out of a mask, the address fades in under it); whip-zoom (a transition: the camera dives into one element of the recreated UI, blurring with speed, and lands on its colour for the next shot).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
shot | kinetic-title / device-fly-in / ui-focus / feature-grid / stat-count / before-after / logo-resolve / ui-morph / tagline-card / whip-zoom | yes | |
slots | object | ||
ui | string | ||
at | number | yes | |
seconds | number | ||
track_id | string | ||
sound | off / on | on: a click on every cursor click and a key tap per typed character, on an SFX audio track | |
focus | action / navigation | navigation only when the script line is about moving through the app: then sidebar and top-bar elements may be framed |
focus_ui
Section titled “focus_ui”Frame one part of a UI clip as its own beat: the clip scales and moves so the anchor (field, send, progress, done, button, input-0, heading-0, card-2…: add_ui and recreate_ui return them) lands in the centre at fill of the frame, on the house standard ease, starting at start (seconds of the video) over duration.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
anchor | string | yes | |
start | number | yes | |
duration | number | ||
fill | number | ||
isolate | context / part |
click_ui
Section titled “click_ui”Lay a cursor that clicks named parts of UI clips (anchors such as send, cta, button, buy-1, toggle-0, card-2, input-0: add_ui and recreate_ui return them).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clicks | array of object | yes |
ui_morph_reel
Section titled “ui_morph_reel”Build a looping UI morph reel: ONE shape morphing on springs through UI states (button, loader, check, island, player, slider, toggle, tabs, chart, palette, toast; default order loader, check, island, player, slider, toggle, tabs, chart, palette, toast, button), its content swapping with a short blur, a cursor clicking and dragging through every change, the camera zooming so each state fills the frame, one change every beats_per_change beats (2 by default: each state holds long enough to be read; the too-dense gate names events closer than a second).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
states | array of button / loader / check / island / player / slider / toggle / tabs / chart / palette / toast | ||
bpm | number | ||
offset | number | ||
beats_per_change | integer | ||
accent | string | ||
props | object |
write_component
Section titled “write_component”Create or replace a custom component written in code.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
mode | deterministic / live | deterministic (default): every frame from tl, seekable, exact in the video. live: for games, generative pieces that differ on every view and interactive heroes meant for the website embed; runs its own loop (requestAnimationFrame, timers, Math.random) and reads input.x, input.y, input.down, input.keys, input.tiltX/Y, input.vars (the runtime variables by name, as the embedding site sets them), with onPause, onResume, onDestroy; gets the game engines LittleJS (LittleJS.engineInit(init, update, updatePost, render, renderPost)) and kaplay (const k = kaplay({ background: [0, 0, 0] })), and p5 loops on its own. The video shows a still of a live component: its first frame, seeded, or what it returns as { still(t) {} } | |
name | string | yes | PascalCase, e.g. NodeGraph |
html | string | yes | markup inside the component root; no script, style, iframe, media or external urls |
css | string | yes | scoped to the component root (:scope is the root); no animation, transition, @keyframes, @import or external url() |
js | string | yes | body of a function receiving root, props, tl, duration, fps, assets, brand, rand, format, motion, three, lottie, THREE, d3, p5, PIXI, Matter, gen, twgl, fx, Splitting, OpenProps; build every animation on tl, easing on “feega.out” (entrances), “feega.in” (exits) and “feega.inOut” (moves); “none” only for a drift, a loop or a driver tween, never sine, elastic, back or bounce. d3 is for data viz: scales, shapes and layouts, marks set in an onUpdate from progress, never d3 transitions or timers. p5 is for generative art: p5((p) => { p.setup = () => p.createCanvas(w, h); p.draw = () => { /* whole frame from p.frameCount / fps / }; }) is redrawn on every seek with random and noise reseeded, never on its own loop. PIXI is for thousands of 2D sprites or particles: new PIXI.Application({ width, height }), root.appendChild(app.view), sprites placed in an onUpdate from this.time() ending with app.render(); no ticker. Matter is for physics: build the world once, const at = Matter.seekable(engine), then in onUpdate at(this.time()).get(body) gives { x, y, angle }; no Runner, no Render, no Engine.update. gen: seeded generative helpers — noise2D/3D/4D(), poisson({ shape, minDistance }), Delaunay (Voronoi), simplify, isect, RBush, KDBush, inside, ClipperLib. twgl is for custom WebGL2 shaders: twgl.webgl(canvas), createProgramInfo and buffers once, then setUniforms({ t: this.time() }) and drawBufferInfo in onUpdate. fx: seekable CSS effects driven by one variable on tl — gradient, border, grid (lines or dots), shimmer, grain, marquee. Splitting({ target, by }) (by chars, words, lines or cells) splits text with index variables; stagger on tl, or Splitting.drive(el) moves one —split variable. OpenProps: tokens var(—size-), var(—shadow-), var(—gradient-), easings as tl ease names (ease-out-3, ease-spring-2), OpenProps.animate(el, name, { at, duration }) turns its keyframes into tl tweens. motion.drawPath(path), motion.morph(path, d), motion.scramble(el, text), motion.flip(els, change) return a handle: tween its draw, morph, reveal or flip from 0 to 1 on tl. Its own names never clash with these or with other components. Numbers on screen go through format.number(n, { decimals, group, point }), format.compact(n) (12.4K) or format.percent(ratio): toLocaleString and Intl differ between preview and render. THREE: const renderer = three.renderer(canvas) gives a renderer tuned for where the clip plays (lighter on phones, full quality in the video): never new THREE.WebGLRenderer, never setPixelRatio; render in onUpdate. Keep it fast on phones: one InstancedMesh for many copies of a shape, MeshBasicMaterial or MeshLambertMaterial unless the light matters, matrixAutoUpdate = false on meshes that never move, no new Vector3/objects inside onUpdate (reuse them), textures at most 2048 px, and dispose geometries, materials and textures in onDestroy. The first write of a WebGL component returns guide (the full 3D performance checklist) and warnings: apply both before the next write. |
props_schema | object / string | optional: param() calls in js build it. what a person may edit: { type: “object”, properties: { key: { type: string|number|boolean, title, default, minimum, maximum, enum, format: color|textarea|asset|media|media-item } } } |
update_components
Section titled “update_components”Change a custom component by replacing text in its html, css or js.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
component | string | yes | |
edits | array of object | yes |
remove_component
Section titled “remove_component”Delete a custom component no clip uses.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes |
view_frames
Section titled “view_frames”See the video: the editor preview (or, with no editor open, a server-side browser) renders these exact times (seconds, up to 6) and you get the frames as images.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
times | array of number | yes |
describe_frames
Section titled “describe_frames”After every view_frames: say what you SEE, one line per frame, before reading the gate or editing.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
frames | array of object | yes |
add_music
Section titled “add_music”Music under the whole video: a generated track when the workspace has a music generator, otherwise a CC0 track from the built-in library, chosen by mood and bpm.
Access: editor
| Field | Type | Required | Notes |
|---|---|---|---|
mood | energetic / uplifting / calm | yes | |
bpm | number | ||
track_id | string |
generate_voiceover
Section titled “generate_voiceover”Spends credits.
Access: spend
| Field | Type | Required | Notes |
|---|---|---|---|
text | string | yes | |
start | number | ||
voice_id | string | ||
track_id | string |
precompose
Section titled “precompose”Precompose: move clips (on video tracks) into a new nested composition and leave one Precomp clip in their place, spanning them.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_ids | array of string | yes | |
name | string |
component
Section titled “component”Figma components.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
action | create / override / reset / reset-prop / push / place / detach / add-variant / swap / define-prop / remove-prop / set-prop / reset-prop-value | yes | |
clip_ids | array of string | ||
clip_id | string | ||
inner_clip_id | string | ||
props | object | ||
name | string | ||
comp | string | ||
variant | object | ||
prop | string | ||
value | string / boolean | ||
property | object |
ungroup
Section titled “ungroup”Ungroup: put the clips of a group back on the top level, at the same place and time.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes |
create_comp
Section titled “create_comp”Create an empty nested composition with its own frame size in px, e.g.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | |
width | integer | yes | |
height | integer | yes | |
duration | number | yes |
edit_comp
Section titled “edit_comp”Work inside a nested composition: runs the given tool calls in order, as if the composition were the whole video (its tracks, its length; ids are those inside it).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
comp | string | yes | |
calls | array of object | yes |
frame_list_templates
Section titled “frame_list_templates”List the motion templates (built-in and saved by the team), each with its key_fields (the ones a user edits first; get_template lists all) and its card in one line: roles · energy · loops · edges start→end and suggested transition · media count and aspect · text amount · what is on screen, second by second · good for.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
role | opener / feature / product / proof / stat / list / gallery / transition / closer / poster / background |
get_template
Section titled “get_template”One template in full: its card (onScreen beat by beat with seconds, roles, energy, loops, needs, best formats, edges, good for) and every field with type, min..max, unit, options and media aspect (width/height of the crop).
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes |
add_template
Section titled “add_template”Insert a template (id from list_templates) as one locked Precomp clip on a new top track at at seconds, with its fields filled from vars (keys as in get_template, checked like set_template_fields).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes | |
at | number | ||
vars | object | ||
sound | boolean |
set_template_fields
Section titled “set_template_fields”Set fields of an inserted template (clip_id of its Precomp clip; keys as in get_template).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes | |
values | object | yes |
detach_template
Section titled “detach_template”Detach an inserted template so its composition can be edited freely with edit_comp.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
clip_id | string | yes |
save_template
Section titled “save_template”Save a precomp (comp id) or, without comp, the whole video as a reusable team template.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | |
description | string | ||
comp | string / null |
delete_template
Section titled “delete_template”Delete a team template this org saved (id from list_templates).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
template_id | string | yes |
list_revisions
Section titled “list_revisions”List the saved versions of this video, newest first: version number, who saved it (user or agent), what changed, how many clips it had.
Access: read
No input.
name_revision
Section titled “name_revision”Give a saved version of the video a name (number from list_revisions), e.g.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
version | integer | yes | |
name | string | yes |
restore_revision
Section titled “restore_revision”Put a saved version of the video back (number from list_revisions).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
version | integer | yes |
add_adjustment_layer
Section titled “add_adjustment_layer”Add an adjustment layer on a new top track: it draws nothing, and its effects (add_effect) and blend mode (set_blend_mode) apply to everything below it, only while it is on screen.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
start | number | yes | |
duration | number |
editor ops (30)
Section titled “editor ops (30)”editor_session
Section titled “editor_session”Everything the editor page loads: head, assets, tokens, templates, render state, gallery.
Access: read
| Field | Type | Required | Notes |
|---|---|---|---|
briefIds | array of string |
read_head
Section titled “read_head”Version, full doc and actorKind of the saved revision.
Access: read
No input.
save_doc
Section titled “save_doc”Save the whole doc; a stale version answers 409 with the head.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
version | number | yes | |
doc | any | yes | |
summary | string / null |
apply_ops
Section titled “apply_ops”Apply doc ops, rebased on newer edits.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
version | number | yes | |
ops | any | yes | |
summary | string / null |
record_export
Section titled “record_export”Turn an mp4 already in storage into the render asset.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
path | string | yes | |
width | number | yes | |
height | number | yes | |
seconds | number | yes |
upload_font
Section titled “upload_font”Add a font file already in storage to the org library.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
path | string | yes |
editor_list_fonts
Section titled “editor_list_fonts”Uploaded font families of the org.
Access: read
No input.
rename_font
Section titled “rename_font”Rename a font family.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
family | string | yes | |
to | string | yes |
delete_font
Section titled “delete_font”Delete a font family.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
family | string | yes |
analyze_sounds
Section titled “analyze_sounds”Tempo, beats and speech of audio assets.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
assetIds | array of string | yes |
template_sounds
Section titled “template_sounds”Lay the template clip sound effects into the doc.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
doc | any | yes | |
clipId | string | yes |
editor_save_template
Section titled “editor_save_template”Save the doc as an org template.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
doc | any | yes | |
compId | string / null | ||
name | string | yes | |
description | string | yes | |
posterFrame | number |
generate_sound
Section titled “generate_sound”Make a voice-over (sound:“voice”) or music (sound:“music”) from text; answers assetId and url (spends credits).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
sound | string | yes | |
text | string | yes | |
seconds | number |
editor_render_batch
Section titled “editor_render_batch”One server render per row of template field values (spends credits).
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
version | number | yes | |
settings | any | ||
rows | any | yes |
editor_list_revisions
Section titled “editor_list_revisions”Saved revisions, newest first.
Access: read
No input.
editor_name_revision
Section titled “editor_name_revision”Give a revision a name.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
version | integer | yes | |
name | string | yes |
create_branch
Section titled “create_branch”Fork the doc into a branch.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes |
list_branches
Section titled “list_branches”Branches of the doc.
Access: read
No input.
review_branch
Section titled “review_branch”Diff a branch against the main doc.
Access: read
No input.
merge_branch
Section titled “merge_branch”Merge a branch back.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
choices | object |
drop_branch
Section titled “drop_branch”Delete a branch.
Access: write
No input.
editor_restore_revision
Section titled “editor_restore_revision”Put an earlier revision back as a new revision.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
version | number | yes |
export_still
Section titled “export_still”Render a still image of the doc.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
format | any | ||
scale | any |
start_render
Section titled “start_render”Start a server render of the video.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
version | number | yes | |
settings | any |
editor_cancel_render
Section titled “editor_cancel_render”Cancel a running render.
Access: write
No input.
editor_delete_template
Section titled “editor_delete_template”Delete an org template.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes |
publish_gallery
Section titled “publish_gallery”Publish the node to the gallery.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | yes | |
description | string | yes | |
tags | string | yes |
withdraw_gallery
Section titled “withdraw_gallery”Take the node out of the gallery.
Access: write
| Field | Type | Required | Notes |
|---|---|---|---|
id | string | yes |
render_status
Section titled “render_status”Latest server render.
Access: read
No input.
batch_status
Section titled “batch_status”Latest batch render.
Access: read
No input.