Skip to content

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.

The canvases of the project.

Access: read

No input.

Live nodes of a canvas.

Access: read

FieldTypeRequiredNotes
canvasIdstringyesCanvas id from list_canvases.

Nodes, connections, runs, products, posts, influencers and revision of a canvas in one read.

Access: read

FieldTypeRequiredNotes
canvasIdstringyes

Live revision of a canvas, or that canvas or project is gone.

Access: read

FieldTypeRequiredNotes
canvasIdstringyes

Create a typed node at x,y (data per describe_node_types).

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
typestringyes
xnumberyes
ynumberyes
displayNamestring
dataobject

Patch the data of one node; null removes a field.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes
dataobjectyesOnly the fields to change.

Tag a node with a colour (red, orange, yellow, green, blue, purple, grey); null clears it.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes
colorred / orange / yellow / green / blue / purple / grey / nullyesnull removes the tag

Move a node to x,y.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes
xnumberyes
ynumberyes
znumberStacking order. Omit to leave it unchanged.

Patch many nodes at once, each with its expected version; answers written, conflict or not_found per node.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
itemsarray of objectyes

Create several nodes and the edges between them in one call.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
nodesarray of objectyes
edgesarray of object

Token estimate of a text node run.

Access: read

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdstringyes
promptstring
modelstringOmit for the default text model.

Next nodes worth adding after this one.

Access: read

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdstringyes

Replay the inverse of a recorded gesture; refused when the canvas moved on.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
itemsarray of anyyesthe gesture items the canvas recorded, newest write first

Build the first-run example chain.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes

Mark onboarding dismissed or completed.

Access: write

FieldTypeRequiredNotes
statusdismissed / completedyes

Draw a line from a source node to a target node (a frame takes no inputs: use place_in_frame).

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
sourceNodeIdstringyes
targetNodeIdstringyes
sourceHandlestring
targetHandlestring

Editable copies of a frame in other formats, content refitted, placed to its right.

Access: write

FieldTypeRequiredNotes
frameIdstringyes
targetsarray of object / objectyeseach {format: 1:1 | 4:5 | 9:16 | 16:9 …} or {size: {width, height}} px

One video frame that plays the picked scene frames left to right; the scenes stay live, referenced not copied.

Access: write

FieldTypeRequiredNotes
frameIdsarray of stringyesscene frames; they play left to right as placed on the canvas

Export frames or frame elements as png, jpg, webp, svg or pdf, one file or a zip; answers a url.

Access: read

FieldTypeRequiredNotes
frameIdsarray of string
elementsarray of object
rowsarray of objectyesvalue: 0.5–4 for scale, px for width/height
namestring

List, define, apply or rename the named styles shared by the frames of a canvas.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
namestring
tostringrename: the new name, in every frame that has the style
styleanydefine: restyles every frame with this name
idsarray of stringapply name to frameId:elementId; none of style/ids lists the canvas styles

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

FieldTypeRequiredNotes
canvasIdstringyes
collectionstring
namestring
typecolour / number / string / boolean
valuesobjectdefine: {mode: value or {alias: “Collection/name”}}; every mode of the collection needs one
modesarray of stringdefine: the modes of a new collection, first is the default
modestringswitch the collection to this mode, in the frames named (all frames that have it when none)
framesarray of stringdefine: frames to put a new collection in; mode: the frames to switch
idsarray of stringbind (with collection, name, target) to frameId:elementId; none of values/mode/ids lists the canvas collections

Move an element inside its frame, to another frame, or out onto the canvas.

Access: write

FieldTypeRequiredNotes
frameIdstringyesthe Frame node the element is in
elementIdstringyesthe clip id inside that frame
toFrameIdstringthe Frame to put it in; omit to make a new Frame on the canvas
xnumber
ynumber
canvasXnumbercanvas position of a new Frame
canvasYnumber

Copy an element the same way move_frame_element moves it; the source keeps it.

Access: write

FieldTypeRequiredNotes
frameIdstringyesthe Frame node the element is in
elementIdstringyesthe clip id inside that frame
toFrameIdstringthe Frame to put it in; omit to make a new Frame on the canvas
xnumber
ynumber
canvasXnumbercanvas position of a new Frame
canvasYnumber

Draw a free Text, Box, Ellipse or Path on the canvas, outside any frame.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
drawnanyyes{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 an empty frame at x,y with a width and a preset format or a height.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
xnumberyes
ynumberyes
wnumberyes
hnumber
format16:9 / 9:16 / 1:1 / 4:5 / 1:1 1440 / A poster / custom
stillnumberseconds into the frame to keep, making it a still graphic (post, poster) instead of a video

Group 2 or more free elements, or wrap any nodes in a Section.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdsarray of stringyesfree elements on the canvas (element nodes), at least 2; or any nodes with section true
sectionbooleanwrap the nodes in a Section instead of a Group

Dissolve a Group.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdstringyesa free element holding several shapes

Turn a Group and its members around its centre.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdstringyesa Group on the canvas
degreesnumberyesclockwise, added to its current angle

Resize a Group and scale its members.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdstringyesa Group on the canvas
widthnumberyes
heightnumberyes

Move a Group and its members.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdstringyesa Group on the canvas
xnumberyes
ynumberyes

Put a generated media node into a frame.

Access: write

FieldTypeRequiredNotes
nodeIdstringyesthe Generate image, Generate video or Generate text node
toFrameIdstringthe Frame to put it in; omit to make a new Frame on the canvas
xnumber
ynumber
canvasXnumbercanvas position of a new Frame
canvasYnumber

Soft-delete a node and drop its lines.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes

Generate with a node (spends credits).

Access: spend

FieldTypeRequiredNotes
nodeIdstringyes
mediumtext / image / video / audio / model3dyes
promptstringOmit to keep the prompt already on the node.
modelstringOmit to keep the model already on the node.
paramsobjecte.g. { aspectRatio: “1:1”, duration: 8 }.
providerstringA provider id from list_models routes (e.g. “kie”, “openrouter”); omit or “auto” for the cheapest healthy one.
variantsinteger1, 2, 4 or 8 results; omit for one.
intonodes / historyWith variants: new nodes (default) or this node’s history.
expectedVersionintegeryes

Remove an image’s background, upscale it or split it into layers, in a new node (spends credits).

Access: spend

FieldTypeRequiredNotes
nodeIdstringyesAn image node with a result.
toolremove_background / upscale / split_layers / inpaint / outpaintyes
factor2 / 4upscale only: 2 or 4 (default 2).
promptstringinpaint: what to paint in the masked area.
extendobjectoutpaint: how far to grow each side, as a fraction (0-1) of the image width (left/right) or height (top/bottom).
maskobjectinpaint: 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.

A frame holding a split image’s base and layers as image elements.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes

Models this project can run for a medium, with credits and routes.

Access: read

FieldTypeRequiredNotes
mediumtext / image / video / audio / model3dyesWhich kind of node the models generate.

Runs of a node.

Access: read

FieldTypeRequiredNotes
nodeIdstringyes

Quote a node loop.

Access: read

FieldTypeRequiredNotes
nodeIdstringyes

Run a node loop (spends credits).

Access: spend

FieldTypeRequiredNotes
nodeIdstringyes
confirmbooleanRequired true above 50 combinations, after the user agreed to the cost.

Cancel a running node loop.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes

Stop one node run.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes

Ordered steps and credits of a graph run, before running it.

Access: read

FieldTypeRequiredNotes
graphdownstream / staleyesdownstream: nodeId and every node it feeds, in order. stale: results older than their inputs.
nodeIdstringdownstream: the node to start from.
canvasIdstringstale: the canvas.
nodeIdsarray of stringstale: only these nodes. Omit for the whole canvas.

Run a graph downstream or the stale part of a canvas (spends credits).

Access: spend

FieldTypeRequiredNotes
graphdownstream / staleyesdownstream: nodeId and every node it feeds, in order. stale: results older than their inputs.
nodeIdstringdownstream: the node to start from.
canvasIdstringstale: the canvas.
nodeIdsarray of stringstale: only these nodes. Omit for the whole canvas.

Add a canvas to the project.

Access: write

No input.

Rename a canvas.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
namestringyes

Delete a canvas.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes

Rename the project.

Access: write

FieldTypeRequiredNotes
namestringyes

Lines of a canvas.

Access: read

FieldTypeRequiredNotes
canvasIdstringyes

Remove a line.

Access: write

FieldTypeRequiredNotes
connectionIdstringyesfrom list_connections

Set a line to fixed or iterate.

Access: write

FieldTypeRequiredNotes
connectionIdstringyes
modefixed / iterateyesiterate makes the line a loop axis

Rename a node; empty resets it.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes
namestringyes

Set the width and height of a node.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes
widthnumberyes
heightnumberyes

Duplicate nodes with the lines among them.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdsarray of stringyes
offsetobjectwhere the copies land relative to the originals; omitted = a small step

Save the whole canvas under a name.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
namestringyese.g. “Client review”

Save a whole canvas as a .feega file; answers a download url.

Access: read

FieldTypeRequiredNotes
canvasIdstringyes

Signed URL to PUT a .feega file before import_canvas_file.

Access: write

FieldTypeRequiredNotes
bytesintegeryes

Open an uploaded .feega file as a new canvas in this project.

Access: write

FieldTypeRequiredNotes
pathstringyesfrom request_canvas_import

Saved versions of a canvas, newest first.

Access: read

FieldTypeRequiredNotes
canvasIdstringyes

Put the canvas back to a saved version; the moment before is saved first.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
versionIdstringyesfrom list_canvas_versions

Comment threads of a canvas, with replies and where each is pinned, and the teammates that can be mentioned.

Access: read

FieldTypeRequiredNotes
canvasIdstringyes

Start a comment thread on the canvas or on a node, or reply to one.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
bodystringyes
nodeIdstringpin to this node; x/y are then relative to its top-left
parentIdstringreply to this thread (a comment id from list_canvas_comments)
xnumber
ynumber
timeMsintegerthe moment of a motion frame the comment is about, in milliseconds
mentionsarray of stringteammate ids from list_canvas_comments; write @Name in the body too

Edit the text of a comment you wrote.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
commentIdstringyes
bodystringyes
mentionsarray of string

Delete a comment you wrote; deleting the first comment removes its thread.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
commentIdstringyes

Resolve or reopen a comment thread.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
commentIdstringyesthe first comment of the thread
resolvedbooleanyes

Turn the view-only link of a canvas on or off.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
onbooleanyestrue mints a view-only link; false revokes it

Turn the share link of a doc node on or off.

Access: write

FieldTypeRequiredNotes
nodeIdstringyesa doc node
onbooleanyes

Canvas templates that can be inserted.

Access: read

No input.

Insert a template at x,y.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
templateIdstringyesfrom list_templates
xnumberyes
ynumberyes

Saved techniques of the workspace: packaged flows with their input and output slots.

Access: read

No input.

Package a connected selection of nodes as a reusable technique with input and output slots.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdsarray of stringyes
namestringyeskebab-case, at most 48 characters

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

FieldTypeRequiredNotes
canvasIdstringyes
techniqueIdstringyesfrom list_techniques
xnumberyes
ynumberyes
inputsarray of objectone value per input slot of the technique: the prompt of that node
runbooleandefault true: run the inner graph (spends credits); false only places it

Place a live technique node at x,y; editing the technique updates it.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
techniqueIdstringyes
xnumberyes
ynumberyes

Run a technique node on the texts wired into it (spends credits).

Access: spend

FieldTypeRequiredNotes
nodeIdstringyes

Swap a technique node for a copy of its graph.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdstringyes

Write a technique graph on its own canvas to edit; save_technique under the same name bumps the version.

Access: write

FieldTypeRequiredNotes
techniqueIdstringyes

Delete a saved technique.

Access: write

FieldTypeRequiredNotes
techniqueIdstringyes

Add a frame made from a template, in a format, at x,y.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
templateIdstringyesa motion template id (list_motion_templates)
format16:9 / 9:16 / 1:1 / 4:5 / 1:1 1440 / A poster / custom
valuesobjectfield key → value, as set_template_values takes them
xnumberyes
ynumberyes

Show an older result of a node.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes
runIdstringyesfrom list_runs

Re-sync a products or social feed node.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes

Retry one combination of a node loop.

Access: spend

FieldTypeRequiredNotes
nodeIdstringyes
outputListNodeIdstringyes
labelstringyes
runIdstring

Quote a workflow over chosen nodes.

Access: read

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdsarray of stringyes

Run a workflow over chosen nodes (spends credits).

Access: spend

FieldTypeRequiredNotes
canvasIdstringyes
nodeIdsarray of stringyes

Cancel a workflow.

Access: write

FieldTypeRequiredNotes
workflowIdstringyes

Cancel a render of a node.

Access: write

FieldTypeRequiredNotes
nodeIdstringyes

Signed URL to PUT a file into storage.

Access: write

FieldTypeRequiredNotes
fileNamestringyes
mimeTypestringyes
bytesintegeryes

Turn an uploaded file into a node and an asset.

Access: write

FieldTypeRequiredNotes
canvasIdstringyes
pathstringyesfrom request_upload, after the bytes were PUT to its uploadUrl
fileNamestringyes
mimeTypestringyes
bytesintegeryes
xnumber
ynumber

Copy a picture or video from a link into the project library.

Access: write

FieldTypeRequiredNotes
urlstringyeshttps link to a picture or video

Custom voices of the org.

Access: read

No input.

Search the shared voice library.

Access: read

FieldTypeRequiredNotes
searchstring
languagestring
genderstring
accentstring
useCasestring
pageinteger

Add a library voice to the org.

Access: write

FieldTypeRequiredNotes
ownerIdstringyes
voiceIdstringyes
namestringyes

Design a voice from a description (spends credits).

Access: spend

FieldTypeRequiredNotes
descriptionstringyes

Save a designed voice.

Access: write

FieldTypeRequiredNotes
generatedVoiceIdstringyes
namestringyes
descriptionstring

Clone a voice from a sample, with consent (spends credits).

Access: spend

FieldTypeRequiredNotes
namestringyes
consentBasisown_voice / consented_speakeryes
speakerstringconsented_speaker: the name of the person who consented
attestedbooleanyestrue only when the user confirmed the consent
secondsnumberyeslength of the recording
sampleBase64stringyesthe recording, base64, at most 3MB
mimeTypestring

Delete a custom voice.

Access: write

FieldTypeRequiredNotes
idstringyesa custom voice id from list_voices

Read a video asset into transcript, scenes and style (spends on first read).

Access: spend

FieldTypeRequiredNotes
assetIdstringyesA video asset of this project or the library: a video node data.assetId or a chat attachment.

Take an item out of the gallery.

Access: write

FieldTypeRequiredNotes
itemIdstringyes

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.

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

FieldTypeRequiredNotes
clip_idstringyes

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.

Images, videos, audio and 3D models of this project that clips can use, by id.

Access: read

No input.

Add a clip of a library component at a time in seconds.

Access: write

FieldTypeRequiredNotes
componentTitle / 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 / Customyes
startnumberyes
durationnumber
propsobject
track_idstring
effectsarray of object

Change when a clip starts and how long it lasts, in seconds.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
startnumber
durationnumber

Change some props of a clip; the rest are kept (left/top keep the size, x/y the centre).

Access: write

FieldTypeRequiredNotes
clip_idstringyes
propsobjectyes

Rich text: style characters start..end (end exclusive) of a Text clip only.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
startinteger
endinteger
styleobject
listbullet / number / none / nest / lift
clearboolean

Set the transition at the start (in) or end (out) of a clip.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
sidein / outyes
kindnone / fade / slide-up / slide-down / slide-left / slide-right / scale / wipe / bluryes
durationnumberyes

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

FieldTypeRequiredNotes
clip_idstringyes
kindcrossfade / dip-to-black / push-left / push-right / wipe / zoom / blur / noneyes
durationnumber

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.

Move the start or the end edge of a clip to a time in seconds, keeping the other edge.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
edgestart / endyes
atnumberyes

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

FieldTypeRequiredNotes
clip_idstringyes
startnumber
markerstring
track_idstring

Add a labelled marker at time (seconds): on the video, or on a clip (time from the clip start) with clip_id.

Access: write

FieldTypeRequiredNotes
labelstringyes
timenumberyes
clip_idstring

Remove a marker by its label, from the video or from a clip (clip_id).

Access: write

FieldTypeRequiredNotes
labelstringyes
clip_idstring

Set the work area (seconds) the editor previews and loops, or clear it with clear true.

Access: write

FieldTypeRequiredNotes
startnumber
endnumber
clearboolean

Hide (left out of the render) or lock (not moved by edits) a track (track_id) or a clip (clip_id).

Access: write

FieldTypeRequiredNotes
track_idstring
clip_idstring
hiddenboolean
lockedboolean
bleedboolean
clip_contentboolean
lock_ratioboolean

Name a clip as it shows in Layers.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
namestringyes

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

FieldTypeRequiredNotes
clip_idsarray of stringyes
opnudge / sequence / stagger / align_start / align_end / distributeyes
secondsnumber

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

FieldTypeRequiredNotes
clip_idsarray of stringyes
opalign_left / align_center / align_right / align_top / align_middle / align_bottom / distribute_x / distribute_y / tidy / move / scale / scale_group / rotate_groupyes
dxnumber
dynumber
factornumber
degreesnumber
factor_ynumber
spacingnumber
atnumber
modedesign / motion

Remove one or more clips.

Access: write

FieldTypeRequiredNotes
clip_idsarray of stringyes

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

FieldTypeRequiredNotes
clip_idsarray of stringyes
frameintegeryes

Duplicate clips, like the editor Duplicate: each copy starts where its original ends, on the same track.

Access: write

FieldTypeRequiredNotes
clip_idsarray of stringyes

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 base transform values of a clip; the rest are kept.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
transformobjectyes

Animate one prop of a clip: replaces its keyframes.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
propstringyes
keyframesarray of objectyes

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

FieldTypeRequiredNotes
clip_idstringyes
toobjectyes
startnumber
durationnumber
easestandard / enter / exit / linear / overshoot / elastic / bounce / array of any

Edit one keyframe lane (prop) of a clip.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
propstringyes
actionmute / unmute / duplicateyes
timesarray of number

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

FieldTypeRequiredNotes
clip_idstringyes
propstringyes
timesarray of number
inbezier / linear / hold / auto / continuous
outbezier / linear / hold / auto / continuous
rovingboolean

Apply an ease preset to keyframes of one prop (all, or those at the given times in seconds from the clip start).

Access: write

FieldTypeRequiredNotes
clip_idstringyes
propstringyes
timesarray of number
preseteasy-ease / easy-ease-in / easy-ease-out / apple-default / apple-ease-in / apple-ease-out / apple-ease-in-outyes

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

FieldTypeRequiredNotes
clip_idstringyes
propstringyes
timenumberyes
out_influencenumber
out_speednumber
in_influencenumber
in_speednumber

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

FieldTypeRequiredNotes
clip_idstringyes
enabledboolean
auto_orientboolean

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

FieldTypeRequiredNotes
clip_idstringyes
timenumberyes
inarray of any
outarray of any

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

FieldTypeRequiredNotes
asset_idstringyes

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

FieldTypeRequiredNotes
asset_idstringyes

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

FieldTypeRequiredNotes
clip_idstringyes
propscale / opacity / bluryes
sourcestring
strengthnumber

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

FieldTypeRequiredNotes
hitbeats / onsets

Add a timeline marker on every beat (hit: beats, labelled “beat N”) or every onset of the music (hit: onsets, “hit N”).

Access: write

FieldTypeRequiredNotes
hitbeats / onsets

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

FieldTypeRequiredNotes
clip_idsarray of stringyes
divisionbeat / half

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

FieldTypeRequiredNotes
music_clip_idstringyes
voice_clip_idstringyes
depthnumber
attacknumber
releasenumber

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

FieldTypeRequiredNotes
clip_idstringyes
propstringyes
timesarray of number

Mask a clip: only the inside of the mask shows (invert shows the outside).

Access: write

FieldTypeRequiredNotes
clip_idstringyes
maskobjectyes

Stack up to 7 more masks after the clip’s first mask (set_mask first), in order.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
masksarray of objectyes

Remove the mask of a clip, its stacked masks and its mask keyframes.

Access: write

FieldTypeRequiredNotes
clip_idstringyes

Use the clip directly above (on the track above, overlapping in time) as a matte for this clip.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
mattenone / alpha / alpha-inverted / luma / luma-invertedyes

“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

FieldTypeRequiredNotes
clip_idsarray of stringyes

Undo use_as_mask: every clip masked by mask_id draws whole again, and the mask clip paints as itself.

Access: write

FieldTypeRequiredNotes
mask_idstringyes

Turn on the virtual camera of the video, change its base values, or turn it off (enabled false).

Access: write

FieldTypeRequiredNotes
enabledboolean
valuesobject
dofboolean

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

FieldTypeRequiredNotes
clip_idstringyes
presetspin-in / hero-turn / lid-open / fold-open / screen-scrollyes

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

FieldTypeRequiredNotes
presetsparks / dust / confetti / bokeh / snowyes
startnumberyes
durationnumber
propsobject
track_idstring
effectsarray of object

Add a ShaderEffect clip: a GPU effect from the open-source shaders library, seeked frame by frame so preview and export agree.

Access: write

FieldTypeRequiredNotes
effectmesh-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-flowyes
startnumberyes
durationnumber
imagestring
propsobject
track_idstring
effectsarray of object

Restyle a Particles clip with a preset (sparks, dust, confetti, bokeh, snow); its seed and keyframes are kept.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
presetsparks / dust / confetti / bokeh / snowyes

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

FieldTypeRequiredNotes
startnumberyes
durationnumberyes
xnumber
ynumber
diameternumber
patharray of object
springui / soft / camera / lead / trail
stiffnessnumber
dampingnumber
refractionnumber
frostnumber
rimnumber
tintstring
tint_amountnumber
wobblenumber
wobble_speednumber
fade_innumber
fade_outnumber

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

FieldTypeRequiredNotes
startnumberyes
durationnumberyes
xnumber
ynumber
diameternumber
patharray of object
springui / soft / camera / lead / trail
stiffnessnumber
dampingnumber
dropsinteger
splitnumber
split_anglenumber
blendnumber
iornumber
dispersionnumber
frostnumber
reflectionnumber
tintstring
tint_amountnumber
viscositynumber
wobblenumber
wobble_speednumber
stretchnumber
seedinteger
fade_innumber
fade_outnumber

Retime a Video clip, in every render path.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
clearboolean
speednumber
reverseboolean
keyframesarray of object

Freeze a Video clip on the source frame showing at a time of the video (seconds), for the whole clip.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
atnumberyes

Add three Device3D clips side by side that enter staggered and turn at different rates (parallax row).

Access: write

FieldTypeRequiredNotes
devicephone-pro / phone / foldable / android / laptop-pro / laptop-air / monitor / tablet / browseryes
startnumberyes
durationnumberyes
screensarray of string
track_idstring
effectsarray of object

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

FieldTypeRequiredNotes
enabledboolean
environmentobject
soft_shadowsboolean
contact_shadowboolean

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

FieldTypeRequiredNotes
idstringyes
kinddirectional / point / spot / area
colorstring
intensitynumber
xnumber
ynumber
znumber
cast_shadowboolean

Remove a light of the 3D look by id.

Access: write

FieldTypeRequiredNotes
idstringyes

Animate one value of a light: replaces its keyframes.

Access: write

FieldTypeRequiredNotes
idstringyes
propintensity / x / y / zyes
keyframesarray of objectyes

Animate one camera value: replaces its keyframes.

Access: write

FieldTypeRequiredNotes
propx / y / z / rotateX / rotateY / rotateZ / fov / focusDistance / apertureyes
keyframesarray of objectyes

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

FieldTypeRequiredNotes
presetdolly-in / dolly-out / truck / pan / orbit / crane / dolly-zoom / rack-focusyes
startnumberyes
durationnumberyes
amountnumber
targetnumber
from_clipstring
to_clipstring
easestandard / enter / exit / linear / overshoot / elastic / bounce / array of any

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

FieldTypeRequiredNotes
clip_idstringyes
physicsobject / nullyes

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

FieldTypeRequiredNotes
clip_idstringyes
presetdrop / throw / floatyes

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

FieldTypeRequiredNotes
clip_idstringyes
depthnumber
spaceworld / screen

Add a Null: an invisible handle that draws nothing.

Access: write

FieldTypeRequiredNotes
startnumberyes
durationnumber
xnumber
ynumber
track_idstring

Parent a clip to another visual clip or a Null (parent_id null unparents).

Access: write

FieldTypeRequiredNotes
clip_idstringyes
parent_idstring / nullyes
inherit_opacityboolean

Parent several clips at once, keeping them where they are.

Access: write

FieldTypeRequiredNotes
clip_idsarray of stringyes
parent_idstring

Auto layout (flexbox-style).

Access: write

FieldTypeRequiredNotes
clip_idsarray of string
childrenarray of objectin place of clip_ids: each child with its sizing, as set_layout_item takes it
clip_idstring
fillstringcontainer fill colour
strokestringcontainer stroke colour
stroke_widthnumberpx
radiusnumbercorner roundness, as roundness in set_props

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

FieldTypeRequiredNotes
clip_idsarray of stringyes
groupboolean

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

FieldTypeRequiredNotes
clip_idstringyes

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

FieldTypeRequiredNotes
directionhorizontal / vertical / grid
wrapboolean
gapnumber
crossGapnumber
paddingobject
justifystart / center / end / space-between / space-around / space-evenly
alignstart / center / end / baseline
columnsinteger
columnTracksarray of object
rowTracksarray of object
autoFlowrow / column
alignContentauto / space-between
firstOnTopboolean
strokesIncludedboolean
orderarray of string
clip_idstringyes
offboolean

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

FieldTypeRequiredNotes
widthfixed / hug / fill
heightfixed / hug / fill
minWidthnumber
maxWidthnumber
minHeightnumber
maxHeightnumber
absoluteboolean
columninteger
rowinteger
columnSpaninteger
rowSpaninteger
cellXstart / center / end / baseline
cellYstart / center / end / baseline
clip_idstringyes
constraintsobject

Pin clips to the frame for when it is resized (set_canvas, the frame on the canvas).

Access: write

FieldTypeRequiredNotes
clip_idsarray of stringyes
horizontalleft / right / left_right / center / scale
verticaltop / bottom / top_bottom / center / scale

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

FieldTypeRequiredNotes
clip_idstringyes
partstringyes
fillsarray of any / nullyes

Move a child of an auto layout to position index (0 = first) in its container.

Access: write

FieldTypeRequiredNotes
container_idstringyes
clip_idstringyes
indexintegeryes

Take a clip out of its auto layout: it is unparented and keeps the box it was laid out in.

Access: write

FieldTypeRequiredNotes
clip_idstringyes

Drive one number property with an expression evaluated at every frame, on top of its keyframes (value is the keyframed value).

Access: write

FieldTypeRequiredNotes
clip_idstring
cameraboolean
propstringyes
expressionstring / nullyes

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

FieldTypeRequiredNotes
clip_idstringyes
propstringyes

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

FieldTypeRequiredNotes
presetcursor-parallax / card-tilt / follow-cursor / scroll-scrubyes
clip_idstring

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

FieldTypeRequiredNotes
playbackautoplay / in-view / scrub / paused
loopboolean
outsidehold / fallback
scroll_lengthinteger

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

FieldTypeRequiredNotes
namestringyes
kindnumber / boolean / enum / color / stringyes
defaultnumber / boolean / stringyes
minnumber
maxnumber
optionsarray of string

Remove a runtime variable and its text/colour bindings.

Access: write

FieldTypeRequiredNotes
namestringyes

Drive a clip property with a runtime variable.

Access: write

FieldTypeRequiredNotes
namestringyes
clip_idstringyes
propstringyes

Stop a runtime variable driving a clip property: removes its text/colour binding, or the expression on a number property.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
propstringyes

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.

Host the interactive web export on feega and return a snippet to paste into any site: the feega loader script and a element that fills 100% of its box and keeps pointer, tilt and scroll working; playback and scroll length come from feega, not the snippet.

Access: write

FieldTypeRequiredNotes
actionpublish / unpublish

Add a vector Shape clip.

Access: write

FieldTypeRequiredNotes
kindrect / circle / line / ellipse / polygon / star / path / vectoryes
startnumberyes
durationnumber
pathstring
fillsarray of any
strokesarray of object
propsobject
track_idstring
effectsarray of object

Add a built-in line icon (name: one of the schema enum) as a stroked Shape path clip.

Access: write

FieldTypeRequiredNotes
namearrow-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 / folderyes
xnumber
ynumber
sizenumber
colorstring
startnumber
durationnumber
track_idstring

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

FieldTypeRequiredNotes
clip_idsarray of stringyes
opunion / subtract / intersect / exclude / outline_stroke / flattenyes
livebooleanboolean ops only: keep the shapes editable in a live boolean group
atnumberseconds; default 0

Turn a Shape clip into an editable vector network (same drawing): vertices that any number of segments can join, filled regions.

Access: write

FieldTypeRequiredNotes
clip_idstringyes

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

FieldTypeRequiredNotes
clip_idsarray of stringyes

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

FieldTypeRequiredNotes
clip_idstringyes
networkobjectyes

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

FieldTypeRequiredNotes
clip_idstringyes
editsarray of objectyes

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

FieldTypeRequiredNotes
clip_idstringyes
pathstringyes

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

FieldTypeRequiredNotes
clip_idstringyes
pathstring
kindrect / circle / line / ellipse / polygon / star / path / vector
roundnessnumber
sidesnumber
pointsnumber
innerRadiusnumber
startnumber
endnumber

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

FieldTypeRequiredNotes
clip_idstringyes
to_clip_idstringyes
atnumber

Add a modifier at the end of a Shape clip’s stack (applied top to bottom).

Access: write

FieldTypeRequiredNotes
clip_idstringyes
kindtrim / repeater / offset / wiggle / zigzag / round / merge / wave / blob / gooyes
paramsobject

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

FieldTypeRequiredNotes
clip_idstringyes
presetblob / ripple / liquidyes

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

FieldTypeRequiredNotes
clip_idstringyes
modifier_idstringyes
paramsobject
enabledboolean
indexinteger

Remove a modifier from a Shape clip, with its keyframes and expressions.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
modifier_idstringyes

Add an effect at the end of a clip’s effect stack (applied top to bottom, inside the clip transform).

Access: write

FieldTypeRequiredNotes
clip_idstringyes
kindbrightness-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-gainyes
paramsobject

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

FieldTypeRequiredNotes
clip_idstringyes
effect_idstring
presetteal-orange / warm-film / cool-night / bleach-bypass / sepia
cubestring
namestring
amountnumber

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

FieldTypeRequiredNotes
clip_idstringyes
effect_idstringyes
paramsobject
enabledboolean
indexinteger

Remove an effect from a clip, with its keyframes and expressions.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
effect_idstringyes

Write a custom effect for the whole workspace: a GLSL ES 1.0 fragment body defining vec4 effect(vec2 uv).

Access: write

FieldTypeRequiredNotes
namestringyes
fragstringyes
paramsarray of object

Edit a custom effect by text: edits [{find, replace}] applied in order on its frag, params replaces the list.

Access: write

FieldTypeRequiredNotes
effect_idstringyes
versionintegeryes
editsarray of object
paramsarray of object

The custom effects of the workspace: id, name, version, params, check state and cost per 1080p frame.

Access: read

No input.

Write a custom composition layout for the whole workspace (same name replaces it).

Access: write

FieldTypeRequiredNotes
namestringyes
specobjectyes

Replace the spec of a custom layout at its version (list_layouts); a stale version answers conflict.

Access: write

FieldTypeRequiredNotes
layout_idstringyes
versionintegeryes
specobjectyes

The custom composition layouts of the workspace: id, name, version, spec.

Access: read

No input.

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

FieldTypeRequiredNotes
clip_idstringyes
layout_idstringyes

Put a custom effect of the workspace (write_effect / list_effects) on an Image or Video clip, one per clip.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
effect_idstringyes
paramsobject

Change a custom effect on a clip: some params (the rest are kept) or enabled on/off.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
custom_effect_idstringyes
paramsobject
enabledboolean

Remove a custom effect from a clip, with its keyframes.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
custom_effect_idstringyes

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

FieldTypeRequiredNotes
clip_idstringyes
modenormal / multiply / screen / overlay / darken / lighten / color-dodge / color-burn / hard-light / soft-light / difference / exclusion / hue / saturation / color / luminosityyes

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

FieldTypeRequiredNotes
keystringyes
labelstringyes
typetext / number / color / asset / boolean / select / media_listyes
clip_idstringyes
propstringyes
defaultany
alsoarray of object

Remove an exposed template field.

Access: write

FieldTypeRequiredNotes
keystringyes

List the exposed template fields with their clip, prop, type, default and current value.

Access: read

No input.

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

FieldTypeRequiredNotes
rowsarray of objectyes
name_patternstring
confirmbooleanyes

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

FieldTypeRequiredNotes
promptstringyes
labelstring
kindvisual / code / reasoning / mechanical / reading / extraction / simple
toolsarray of string
modelstring
budget_usdnumberyes

Render the saved video to an MP4 for free on the user’s own device.

Access: editor

FieldTypeRequiredNotes
qualitystandard / high / maxEncoding quality: standard (smaller file), high (default), max (largest file, finest grain and lines)

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

FieldTypeRequiredNotes
stylelaunch-film / apple-minimal / ui-morph / graphicyes

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

FieldTypeRequiredNotes
typeScalenumberyes
bleedbooleanyes
columnsintegeryes
smallTextnone / some / denseyes
palettearray of stringyes
fontgrotesk / condensed / serif / mono / display / scriptyes
imagerynone / shapes / photo / illustrationyes
typearray of object
rulesobject
marginnumber
pacingobject
notesstring
avoidarray of object

Real motion blur, like After Effects: each frame averages sub-frame samples across the shutter, so fast moves smear.

Access: write

FieldTypeRequiredNotes
enabledboolean
shutter_anglenumber
shutter_phasenumber
samplesinteger
clip_idsarray of string
clips_blurboolean

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

FieldTypeRequiredNotes
querystring
limitinteger

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

FieldTypeRequiredNotes
clip_idstringyes
familystringyes
weightinteger
italicboolean

Named styles of the video.

Access: write

FieldTypeRequiredNotes
actiondefine / apply / detach / save / remove / rename / listyes
namestring
styleany
clip_idsarray of string
tostring
kindtext / colour / effect / paint
slotstyleRef / effectStyleRef

Variables with modes, bound to clip props.

Access: write

FieldTypeRequiredNotes
actiondefine / mode / add_mode / bind / unbind / remove / listyes
collectionstring
namestring
typecolour / number / string / boolean
valuesobject
modesarray of string
modestring
clip_idstring
targetstring

Add a Google Fonts family or an uploaded font (list_fonts uploaded) to the video.

Access: write

FieldTypeRequiredNotes
familystringyes

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

FieldTypeRequiredNotes
fromstringyes
tostringyes

Remove a font from the video.

Access: write

FieldTypeRequiredNotes
familystringyes

Animate a text clip (Title, Text, Kicker, Caption) per character, word or line, like an After Effects text animator.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
unitchar / word / lineyes
shapesquare / ramp / smooth
seedinteger / null
startnumber
endnumber
offsetnumber
softnessnumber
valuesobject

Change a text animator: shape, seed, start/end/offset/softness, values (merged; the rest are kept), or its order (index).

Access: write

FieldTypeRequiredNotes
clip_idstringyes
animator_idstringyes
unitchar / word / line
indexinteger
shapesquare / ramp / smooth
seedinteger / null
startnumber
endnumber
offsetnumber
softnessnumber
valuesobject

Remove a text animator with its keyframes and expressions.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
animator_idstringyes

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

FieldTypeRequiredNotes
clip_idstringyes
presetblur-up / word-stagger / line-mask-up / fade-chars / fade-words / fade-lines / slide-words / slide-lines / scale-chars / blur-words / drop-chars / spin-chars / typewriteryes
startnumber
durationnumber

Make a Text clip count from one number to another, like a stat reveal: the text shows the number frame by frame.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
counterobject / nullyes

Put a text clip (Title, Text, Kicker, Caption) on a path, like After Effects Path Options.

Access: write

FieldTypeRequiredNotes
clip_idstringyes
presetcircle / ellipse / arc / wave / line
shape_clip_idstring
alignstart / center / end
reverseboolean
perpendicularboolean
forceAlignmentboolean
firstMarginnumber
lastMarginnumber
radiusnumber
arcnumber

Take a text clip off its path, with the path keyframes and expressions.

Access: write

FieldTypeRequiredNotes
clip_idstringyes

Add a visual or audio track, optionally named.

Access: write

FieldTypeRequiredNotes
kindvisual / audioyes
namestring

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

FieldTypeRequiredNotes
clip_idsarray of stringyes
tofront / forward / backward / backyes

Rename a track or move it in the stack (index 0 is the top track).

Access: write

FieldTypeRequiredNotes
track_idstringyes
namestring
indexinteger

Remove a track and every clip on it.

Access: write

FieldTypeRequiredNotes
track_idstringyes

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

FieldTypeRequiredNotes
format16:9 / 9:16 / 1:1 / 4:5 / 1:1 1440 / A poster / custom
presetphone / tablet / desktop / presentation / watch / paper / sociala device, paper or social size: phone, tablet, desktop, presentation, watch, paper, social; layers pinned with constraints keep their edge distance
widthinteger
heightinteger
durationnumber
fps24 / 25 / 30 / 50 / 60 / 120
backgroundbrand / transparent
stillnumber / boolean
layout_guidesarray of object

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

FieldTypeRequiredNotes
clip_idstringyes
frame_idstring
xnumber
ynumber
at_secondsnumber

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

FieldTypeRequiredNotes
formatpng / jpg / webp
scale1 / 2 / 3 / 4
timenumber

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

FieldTypeRequiredNotes
urlstringyesthe site, e.g. https://www.allbirds.com or allbirds.com

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

FieldTypeRequiredNotes
brandreal / fictional
researchobjectyes
actsarray of objectyes
app_accountdeclineddeclined: the user said they have no test account of the app

Lay the film out as a storyboard: a canvas of its own, linked to this video, that the user opens full screen.

Access: editor

FieldTypeRequiredNotes
beatsarray of objectyes

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.

Rewrite the text of one card of the storyboard (node_id from read_storyboard).

Access: editor

FieldTypeRequiredNotes
node_idstringyes
textstringyes

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

FieldTypeRequiredNotes
node_idstringyes
clip_idsarray of stringyes

Read a brand of this workspace: the project brand without a name, or the brand the user names.

Access: editor

FieldTypeRequiredNotes
namestringbrand name or slug; omit for the project brand

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

FieldTypeRequiredNotes
urlstringyes
labelstring
capturedesktop / mobile

Register a project asset in the video so it renders with it.

Access: write

FieldTypeRequiredNotes
asset_idstringyes

Unregister an asset from the video.

Access: write

FieldTypeRequiredNotes
asset_idstringyes

Read the code (html, css, js), props schema, version and determinism check of a custom component.

Access: read

FieldTypeRequiredNotes
namestringyes

Mark where an act of the story starts (a timeline marker “story: ”).

Access: write

FieldTypeRequiredNotes
beatproblem / solution / proof / claimyes
startnumberyes

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

FieldTypeRequiredNotes
kindlink-shortener / link-list / stat-cards / funnel / payouts / qr / window / sidebar / hero / prompt-box / editor-canvas / card-grid / pricing / chat / modal / toggle / upload / generated-result / cursoryes
startnumberyes
durationnumberyes
propsobject
track_idstring

The props of each add_ui kind, with type, default and range, before you place one; kind narrows it to one.

Access: read

FieldTypeRequiredNotes
kindlink-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

Rebuild a real product UI as a sharp, vector, animatable component.

Access: editor

FieldTypeRequiredNotes
urlstring
asset_idstring
namestringyesPascalCase, e.g. UiEditor
regionobject
startnumber
durationnumber
track_idstring

The library of premium shots: handcrafted, deterministic scenes with their own camera move, secondary motion, house easing and holds.

Access: read

No input.

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

FieldTypeRequiredNotes
shotkinetic-title / device-fly-in / ui-focus / feature-grid / stat-count / before-after / logo-resolve / ui-morph / tagline-card / whip-zoomyes
slotsobject
uistring
atnumberyes
secondsnumber
track_idstring
soundoff / onon: a click on every cursor click and a key tap per typed character, on an SFX audio track
focusaction / navigationnavigation only when the script line is about moving through the app: then sidebar and top-bar elements may be framed

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

FieldTypeRequiredNotes
clip_idstringyes
anchorstringyes
startnumberyes
durationnumber
fillnumber
isolatecontext / part

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

FieldTypeRequiredNotes
clicksarray of objectyes

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

FieldTypeRequiredNotes
statesarray of button / loader / check / island / player / slider / toggle / tabs / chart / palette / toast
bpmnumber
offsetnumber
beats_per_changeinteger
accentstring
propsobject

Create or replace a custom component written in code.

Access: write

FieldTypeRequiredNotes
modedeterministic / livedeterministic (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) {} }
namestringyesPascalCase, e.g. NodeGraph
htmlstringyesmarkup inside the component root; no script, style, iframe, media or external urls
cssstringyesscoped to the component root (:scope is the root); no animation, transition, @keyframes, @import or external url()
jsstringyesbody 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_schemaobject / stringoptional: 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 } } }

Change a custom component by replacing text in its html, css or js.

Access: write

FieldTypeRequiredNotes
componentstringyes
editsarray of objectyes

Delete a custom component no clip uses.

Access: write

FieldTypeRequiredNotes
namestringyes

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

FieldTypeRequiredNotes
timesarray of numberyes

After every view_frames: say what you SEE, one line per frame, before reading the gate or editing.

Access: read

FieldTypeRequiredNotes
framesarray of objectyes

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

FieldTypeRequiredNotes
moodenergetic / uplifting / calmyes
bpmnumber
track_idstring

Spends credits.

Access: spend

FieldTypeRequiredNotes
textstringyes
startnumber
voice_idstring
track_idstring

Precompose: move clips (on video tracks) into a new nested composition and leave one Precomp clip in their place, spanning them.

Access: write

FieldTypeRequiredNotes
clip_idsarray of stringyes
namestring

Figma components.

Access: write

FieldTypeRequiredNotes
actioncreate / override / reset / reset-prop / push / place / detach / add-variant / swap / define-prop / remove-prop / set-prop / reset-prop-valueyes
clip_idsarray of string
clip_idstring
inner_clip_idstring
propsobject
namestring
compstring
variantobject
propstring
valuestring / boolean
propertyobject

Ungroup: put the clips of a group back on the top level, at the same place and time.

Access: write

FieldTypeRequiredNotes
clip_idstringyes

Create an empty nested composition with its own frame size in px, e.g.

Access: write

FieldTypeRequiredNotes
namestringyes
widthintegeryes
heightintegeryes
durationnumberyes

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

FieldTypeRequiredNotes
compstringyes
callsarray of objectyes

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

FieldTypeRequiredNotes
roleopener / feature / product / proof / stat / list / gallery / transition / closer / poster / background

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

FieldTypeRequiredNotes
idstringyes

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

FieldTypeRequiredNotes
idstringyes
atnumber
varsobject
soundboolean

Set fields of an inserted template (clip_id of its Precomp clip; keys as in get_template).

Access: write

FieldTypeRequiredNotes
clip_idstringyes
valuesobjectyes

Detach an inserted template so its composition can be edited freely with edit_comp.

Access: write

FieldTypeRequiredNotes
clip_idstringyes

Save a precomp (comp id) or, without comp, the whole video as a reusable team template.

Access: write

FieldTypeRequiredNotes
namestringyes
descriptionstring
compstring / null

Delete a team template this org saved (id from list_templates).

Access: write

FieldTypeRequiredNotes
template_idstringyes

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.

Give a saved version of the video a name (number from list_revisions), e.g.

Access: write

FieldTypeRequiredNotes
versionintegeryes
namestringyes

Put a saved version of the video back (number from list_revisions).

Access: write

FieldTypeRequiredNotes
versionintegeryes

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

FieldTypeRequiredNotes
startnumberyes
durationnumber

Everything the editor page loads: head, assets, tokens, templates, render state, gallery.

Access: read

FieldTypeRequiredNotes
briefIdsarray of string

Version, full doc and actorKind of the saved revision.

Access: read

No input.

Save the whole doc; a stale version answers 409 with the head.

Access: write

FieldTypeRequiredNotes
versionnumberyes
docanyyes
summarystring / null

Apply doc ops, rebased on newer edits.

Access: write

FieldTypeRequiredNotes
versionnumberyes
opsanyyes
summarystring / null

Turn an mp4 already in storage into the render asset.

Access: write

FieldTypeRequiredNotes
pathstringyes
widthnumberyes
heightnumberyes
secondsnumberyes

Add a font file already in storage to the org library.

Access: write

FieldTypeRequiredNotes
pathstringyes

Uploaded font families of the org.

Access: read

No input.

Rename a font family.

Access: write

FieldTypeRequiredNotes
familystringyes
tostringyes

Delete a font family.

Access: write

FieldTypeRequiredNotes
familystringyes

Tempo, beats and speech of audio assets.

Access: write

FieldTypeRequiredNotes
assetIdsarray of stringyes

Lay the template clip sound effects into the doc.

Access: write

FieldTypeRequiredNotes
docanyyes
clipIdstringyes

Save the doc as an org template.

Access: write

FieldTypeRequiredNotes
docanyyes
compIdstring / null
namestringyes
descriptionstringyes
posterFramenumber

Make a voice-over (sound:“voice”) or music (sound:“music”) from text; answers assetId and url (spends credits).

Access: write

FieldTypeRequiredNotes
soundstringyes
textstringyes
secondsnumber

One server render per row of template field values (spends credits).

Access: write

FieldTypeRequiredNotes
versionnumberyes
settingsany
rowsanyyes

Saved revisions, newest first.

Access: read

No input.

Give a revision a name.

Access: write

FieldTypeRequiredNotes
versionintegeryes
namestringyes

Fork the doc into a branch.

Access: write

FieldTypeRequiredNotes
namestringyes

Branches of the doc.

Access: read

No input.

Diff a branch against the main doc.

Access: read

No input.

Merge a branch back.

Access: write

FieldTypeRequiredNotes
choicesobject

Delete a branch.

Access: write

No input.

Put an earlier revision back as a new revision.

Access: write

FieldTypeRequiredNotes
versionnumberyes

Render a still image of the doc.

Access: write

FieldTypeRequiredNotes
formatany
scaleany

Start a server render of the video.

Access: write

FieldTypeRequiredNotes
versionnumberyes
settingsany

Cancel a running render.

Access: write

No input.

Delete an org template.

Access: write

FieldTypeRequiredNotes
idstringyes

Publish the node to the gallery.

Access: write

FieldTypeRequiredNotes
titlestringyes
descriptionstringyes
tagsstringyes

Take the node out of the gallery.

Access: write

FieldTypeRequiredNotes
idstringyes

Latest server render.

Access: read

No input.

Latest batch render.

Access: read

No input.