API reference
Everything the dashboard does, an integration can do. 22 resources, 75 actions, 56 webhook events — all of it behind one scoped key.
Authentication
Send your key as a bearer token. X-Api-Key works too.
curl -H "Authorization: Bearer sk_live_..." https://autostud.ai/api/v1
GET /api/v1 answers what can this key do: the resources, actions and
limits it holds. Start there instead of hard-coding a route list.
A key prefixed sk_test_ runs the whole request path — authentication, scopes,
limits, validation, routing — then stops before any write or credit spend, and answers
X-Test-Mode: true.
Scopes
A scope is <resource>:<action>. Wildcards are matched at request time,
so videos:* covers a video action added later.
write never implies execute: spending credits is its own
permission.
| Resource | Actions | What it covers |
|---|---|---|
videos | readwritedeleteexecute | Video projects: timeline, blocks, metadata. |
renders | readwritedeleteexecute | Render jobs and their output files. |
generations | readwritedeleteexecute | Image, video, audio and music generations. |
assets | readwritedelete | Uploaded files and generated media. |
folders | readwritedelete | Folder tree used to organise videos and assets. |
characters | readwritedeleteexecute | Recurring characters and their reference images. |
voices | readwritedeleteexecute | Voice catalog, cloned voices and TTS connections. |
templates | readwritedelete | Video templates, styles and smart-group configurations. |
music | readwritedeleteexecute | Music library and AI song generation. |
agents | readwritedeleteexecute | Image/video agents and their executions. |
flows | readwritedeleteexecute | Automation flows and their runs. |
publishing | readwritedeleteexecute | Social accounts and scheduled posts. |
webhooks | readwritedelete | Webhook endpoints and their delivery history. |
workspace | readwrite | Workspace profile, members and settings. |
usage | read | Credit balance, API usage and request logs. |
api_keys | readwritedelete | Manage API keys themselves. Grant with care. |
Presets
| Preset | Scopes |
|---|---|
read_onlyFetch everything, change nothing. Safe for dashboards and exports. | *:read |
content_editorCreate and edit videos, assets and library items — no credit spending. | videos:read videos:write assets:read assets:write folders:read folders:write templates:read characters:read voices:read usage:read |
automationFull production pipeline: create, generate, render, publish. | videos:* renders:* generations:* assets:* folders:* characters:read voices:read music:* templates:read publishing:* usage:read |
full_accessEverything except managing API keys. | videos:* renders:* generations:* assets:* folders:* characters:* voices:* templates:* music:* agents:* flows:* publishing:* webhooks:* workspace:* usage:* |
Limits & quotas
Every key carries four rate windows — per minute, per hour, per day, and a separate, much tighter daily budget for anything that spends credits. Heavy endpoints cost more than one unit. Every response reports where you stand:
X-RateLimit-Limit: 120 X-RateLimit-Remaining: 118 X-RateLimit-Reset: 1786500000 X-RateLimit-Window: minute X-RateLimit-Policy: 120;w=60, 3000;w=3600, 20000;w=86400
A key may also carry a monthly ceiling on requests or on credits
(X-Quota-* headers). Both refusals are 429 with
Retry-After, and differ by code: rate_limit_exceeded vs
quota_exceeded.
Errors
Every failure has the same shape and a stable code to branch on.
{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Rate limit reached: 120 requests per minute. Retry in 34s.",
"request_id": "req_8f2c...",
"doc_url": "https://autostud.ai/docs/api/errors#rate_limit_exceeded"
}
}
Keep the request_id: it is echoed in the X-Request-Id header, stored
in your log at /api/v1/logs, and it is what support will ask for.
Pagination
Cursor pagination by default — stable while rows are being inserted, and cheap at any
depth. Follow next_cursor until has_more is false.
offset exists for UIs that need page numbers.
GET /api/v1/videos?limit=50 GET /api/v1/videos?limit=50&cursor=eyJ2Ijp7...
{ "object": "list", "data": [ ... ], "has_more": true, "next_cursor": "eyJ2...", "total": null }
Filtering & search
Filters are declarative: only the fields a resource declares, only these operators. There is no path from a query string to a raw database operator.
?published=true ?video_format[in]=portrait,square ?video_created_at[gte]=2026-01-01 ?video_name[starts_with]=Quiz ?q=karaoke&created_after=2026-06-01
Operators: eq (implicit), ne, gt, gte,
lt, lte, in, nin, exists,
contains, starts_with.
Formats
Any list reads three ways, via ?format= or Accept:.
| Format | Use |
|---|---|
json | The envelope above. The default. |
ndjson | One object per line — streams, jq, pipelines. |
csv | Flattened and downloadable — spreadsheets, BI tools. |
?fields=a,b narrows the response to what you need;
?expand= brings back the heavy fields a list omits by default.
Idempotency
Send Idempotency-Key on any unsafe request. A replay within 24 hours returns the
first response instead of running again — a retry after a timeout cannot double-charge.
Reusing a key with a different body is a 409, not a wrong replay.
curl -X POST https://autostud.ai/api/v1/actions/renders.create \
-H "Authorization: Bearer sk_live_..." \
-H "Idempotency-Key: render-2026-08-14-001" \
-H "Content-Type: application/json" \
-d '{"video_id": "..."}'
Bulk
POST /api/v1/{resource}/bulk — up to 100 creates, updates and deletes
in one call. Each item reports its own status; the response is 207 when at least
one failed. It is not a transaction: successful items stay applied.
{
"create": [ { "folder_name": "Q3" } ],
"update": [ { "id": "...", "data": { "folder_name": "Q4" } } ],
"delete": [ "..." ]
}
Batch
POST /api/v1/batch — up to 20 different calls in one round trip,
sequential by default. Each member goes through its real route: same scopes, same limits,
same billing. The envelope is always 200; read each member's own status.
{
"requests": [
{ "id": "folder", "method": "POST", "path": "/v1/folders", "body": { "folder_name": "Q3" } },
{ "id": "videos", "method": "GET", "path": "/v1/videos?limit=5" }
]
}
Webhooks
Register an https endpoint, subscribe it to events, and stop polling. Deliveries are signed, retried with exponential backoff over ~2 hours, and logged for 7 days.
curl -X POST https://autostud.ai/api/v1/webhooks \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://you.example/hooks", "events": ["render.completed", "video.*"]}'
The signing secret is returned once, on creation. Verify every delivery:
X-Autostud-Signature is t=<unix seconds>,v1=<hex>, where the
hex is HMAC-SHA256(secret, "<t>.<raw body>"). Reject anything older than
five minutes.
const [t, v1] = header.split(',').map(part => part.split('=')[1]);
const expected = crypto.createHmac('sha256', secret)
.update(t + '.' + raw_body)
.digest('hex');
// compare with crypto.timingSafeEqual
Deduplicate on X-Autostud-Delivery. Answer 2xx quickly — anything else
is retried, and an endpoint that fails 20 times in a row is disabled.
POST /api/v1/webhooks/{id}/test sends a real signed delivery and reports what came
back.
Event catalog
Subscribe to a name, a family (video.*) or everything (*).
| Event | Meaning |
|---|---|
render.started | A worker picked a queued render up and started working on it. |
render.completed | A render finished and its output URL is available. |
render.failed | A render stopped on an error. |
generation.completed | An AI generation (image, video, audio) produced its result. |
generation.failed | An AI generation failed. Credits already spent are reported in the payload. |
music.completed | A music generation finished and its tracks are hosted. |
music.failed | A music generation failed. The credits it reserved were refunded. |
post.published | A scheduled post went out. Also fired on a partial publish — read `target_accounts` for the per-account outcome. |
post.failed | A scheduled post could not be published. |
flow.completed | A flow execution reached its end. |
flow.failed | A flow execution stopped on an error. |
agent_execution.completed | An agent finished running. |
action.completed | Any `/v1/actions/*` call that succeeded. Useful as a catch-all audit feed. |
action.failed | Any `/v1/actions/*` call that returned an error. |
credits.low | A call was refused for lack of credits. The payload carries what it needed, what was left and the shortfall. |
webhook.test | Sent by `POST /v1/webhooks/{id}/test`. Never emitted by the platform. |
video.created | A video was created through the API or the dashboard. |
video.updated | A video was updated through the API or the dashboard. |
video.deleted | A video was deleted through the API or the dashboard. |
folder.created | A folder was created through the API or the dashboard. |
folder.updated | A folder was updated through the API or the dashboard. |
folder.deleted | A folder was deleted through the API or the dashboard. |
asset.created | A asset was created through the API or the dashboard. |
asset.deleted | A asset was deleted through the API or the dashboard. |
character.created | A character was created through the API or the dashboard. |
character.updated | A character was updated through the API or the dashboard. |
character.deleted | A character was deleted through the API or the dashboard. |
agent.created | A agent was created through the API or the dashboard. |
agent.updated | A agent was updated through the API or the dashboard. |
agent.deleted | A agent was deleted through the API or the dashboard. |
flow.created | A flow was created through the API or the dashboard. |
flow.updated | A flow was updated through the API or the dashboard. |
flow.deleted | A flow was deleted through the API or the dashboard. |
slideshow.created | A slideshow was created through the API or the dashboard. |
slideshow.updated | A slideshow was updated through the API or the dashboard. |
slideshow.deleted | A slideshow was deleted through the API or the dashboard. |
template.created | A template was created through the API or the dashboard. |
template.updated | A template was updated through the API or the dashboard. |
template.deleted | A template was deleted through the API or the dashboard. |
video_style.created | A video_style was created through the API or the dashboard. |
video_style.updated | A video_style was updated through the API or the dashboard. |
video_style.deleted | A video_style was deleted through the API or the dashboard. |
smart_group_config.created | A smart_group_config was created through the API or the dashboard. |
smart_group_config.updated | A smart_group_config was updated through the API or the dashboard. |
smart_group_config.deleted | A smart_group_config was deleted through the API or the dashboard. |
custom_video_type.created | A custom_video_type was created through the API or the dashboard. |
custom_video_type.updated | A custom_video_type was updated through the API or the dashboard. |
custom_video_type.deleted | A custom_video_type was deleted through the API or the dashboard. |
scheduled_post.created | A scheduled_post was created through the API or the dashboard. |
scheduled_post.updated | A scheduled_post was updated through the API or the dashboard. |
scheduled_post.deleted | A scheduled_post was deleted through the API or the dashboard. |
character_tag.created | A character_tag was created through the API or the dashboard. |
character_tag.updated | A character_tag was updated through the API or the dashboard. |
character_tag.deleted | A character_tag was deleted through the API or the dashboard. |
playground_generation.updated | A playground_generation was updated through the API or the dashboard. |
playground_generation.deleted | A playground_generation was deleted through the API or the dashboard. |
Resources
Videos — videos
Video projects with their timeline, blocks and generation settings.
| Method | Path |
|---|---|
| GET | /api/v1/videos |
| GET | /api/v1/videos/{id} |
| POST | /api/v1/videos |
| PATCH | /api/v1/videos/{id} |
| DELETE | /api/v1/videos/{id} |
id video_id ·
sort video_created_at video_name video_last_audios_edition ·
filter video_format video_type_id video_sub_type_id video_type video_lang published video_ready_to_be_processed folder_ids faceless_status video_created_at
· search video_name video_keyword video_comment
· heavy video_json, blocks, groups, composition, smart_groups, faceless_scenes, faceless_template, voice_settings_map, video_captions
Folders — folders
Folders organising videos and playground generations.
| Method | Path |
|---|---|
| GET | /api/v1/folders |
| GET | /api/v1/folders/{id} |
| POST | /api/v1/folders |
| PATCH | /api/v1/folders/{id} |
| DELETE | /api/v1/folders/{id} |
id folder_id ·
sort folder_order folder_created_at folder_name ·
filter folder_scope folder_color folder_created_at
· search folder_name
Assets — assets
Files uploaded to the workspace library.
| Method | Path |
|---|---|
| GET | /api/v1/assets |
| GET | /api/v1/assets/{id} |
| POST | /api/v1/assets |
| DELETE | /api/v1/assets/{id} |
id _id ·
sort provider_date_time_uploaded provider_file_name ·
filter file_mime_type sync_method provider_file_id provider_date_time_uploaded
· search provider_file_name
Characters — characters
Recurring characters with their visual and voice configuration.
| Method | Path |
|---|---|
| GET | /api/v1/characters |
| GET | /api/v1/characters/{id} |
| POST | /api/v1/characters |
| PATCH | /api/v1/characters/{id} |
| DELETE | /api/v1/characters/{id} |
id character_id ·
sort created_at updated_at character_name ·
filter character_tags created_at
· search character_name character_description
· heavy media
Agents — agents
Image and video generation agents.
| Method | Path |
|---|---|
| GET | /api/v1/agents |
| GET | /api/v1/agents/{id} |
| POST | /api/v1/agents |
| PATCH | /api/v1/agents/{id} |
| DELETE | /api/v1/agents/{id} |
id agent_id ·
sort created_at updated_at agent_name ·
filter agent_type agent_model is_default created_at
· search agent_name agent_description
Flows — flows
Automation flows: nodes, edges and variables.
| Method | Path |
|---|---|
| GET | /api/v1/flows |
| GET | /api/v1/flows/{id} |
| POST | /api/v1/flows |
| PATCH | /api/v1/flows/{id} |
| DELETE | /api/v1/flows/{id} |
id flow_id ·
sort created_at updated_at name usage_count last_executed_at ·
filter status is_template is_public template_category created_at
· search name description
· heavy nodes, edges
Slideshows — videos
Slideshow projects and their slides.
| Method | Path |
|---|---|
| GET | /api/v1/slideshows |
| GET | /api/v1/slideshows/{id} |
| POST | /api/v1/slideshows |
| PATCH | /api/v1/slideshows/{id} |
| DELETE | /api/v1/slideshows/{id} |
id slideshow_id ·
sort created_at updated_at slideshow_name ·
filter slideshow_status character_id created_at
· search slideshow_name
· heavy slides
Video templates — templates
Saved video templates.
| Method | Path |
|---|---|
| GET | /api/v1/templates |
| GET | /api/v1/templates/{id} |
| POST | /api/v1/templates |
| PATCH | /api/v1/templates/{id} |
| DELETE | /api/v1/templates/{id} |
id template_id ·
sort created_at updated_at name ·
filter category sub_category is_public created_at
· search name description
· heavy template_data, blocks, composition
Video styles — templates
Reusable style presets applied to timelines.
| Method | Path |
|---|---|
| GET | /api/v1/video_styles |
| GET | /api/v1/video_styles/{id} |
| POST | /api/v1/video_styles |
| PATCH | /api/v1/video_styles/{id} |
| DELETE | /api/v1/video_styles/{id} |
id style_id ·
sort created_at updated_at name ·
filter category is_public created_at
· search name description
· heavy style_data, layer_styles
Smart group configs — templates
Custom smart-group definitions used by the timeline editor.
| Method | Path |
|---|---|
| GET | /api/v1/smart_group_configs |
| GET | /api/v1/smart_group_configs/{id} |
| POST | /api/v1/smart_group_configs |
| PATCH | /api/v1/smart_group_configs/{id} |
| DELETE | /api/v1/smart_group_configs/{id} |
id config_id ·
sort created_at updated_at name ·
filter type base_type category created_at
· search name description
· heavy layer_mappings
Custom video types — templates
User-defined video types available in the editor.
| Method | Path |
|---|---|
| GET | /api/v1/custom_video_types |
| GET | /api/v1/custom_video_types/{id} |
| POST | /api/v1/custom_video_types |
| PATCH | /api/v1/custom_video_types/{id} |
| DELETE | /api/v1/custom_video_types/{id} |
id config_id ·
sort created_at updated_at name ·
filter type is_public created_at
· search name description
AI generations — generations
Every AI generation billed to the workspace: image, video, audio, music.
| Method | Path |
|---|---|
| GET | /api/v1/generations |
| GET | /api/v1/generations/{id} |
id generation_id ·
sort created_at credits_consumed ·
filter agent_type agent_model agent_id folder_id status created_at
· search prompt
· heavy generation_metadata, variables
Music generations — music
AI song generations and their tracks.
| Method | Path |
|---|---|
| GET | /api/v1/music |
| GET | /api/v1/music/{id} |
id generation_id ·
sort created_at updated_at credits_consumed ·
filter status provider model_id created_at
· heavy tracks, request
Scheduled posts — publishing
Posts queued for publication on connected social accounts.
| Method | Path |
|---|---|
| GET | /api/v1/scheduled_posts |
| GET | /api/v1/scheduled_posts/{id} |
| POST | /api/v1/scheduled_posts |
| PATCH | /api/v1/scheduled_posts/{id} |
| DELETE | /api/v1/scheduled_posts/{id} |
id _id ·
sort scheduled_at created_at updated_at ·
filter status platform video_id scheduled_at created_at
· search caption title
Social accounts — publishing
Connected publishing destinations. Read-only: connect them from the dashboard.
| Method | Path |
|---|---|
| GET | /api/v1/social_accounts |
| GET | /api/v1/social_accounts/{id} |
id _id ·
sort created_at updated_at ·
filter platform status created_at
· search account_name
· heavy platform_metadata
Renders — renders
Render jobs and their output files. Start one with the `renders.create` action — it charges credits.
| Method | Path |
|---|---|
| GET | /api/v1/renders |
| GET | /api/v1/renders/{id} |
id render_id ·
sort render_creation_date ·
filter render_status video_id video_type_id render_creation_date
Voices — voices
The voice catalog: the shared global library plus the workspace and personal voices.
| Method | Path |
|---|---|
| GET | /api/v1/voices |
| GET | /api/v1/voices/{id} |
id voice_ref ·
sort sort_order created_at display_name ·
filter provider scope kind is_active labels.language labels.gender labels.accent connection_id created_at
· search display_name description
· heavy provider_meta
Character tags — characters
Tags used to organise characters.
| Method | Path |
|---|---|
| GET | /api/v1/character_tags |
| GET | /api/v1/character_tags/{id} |
| POST | /api/v1/character_tags |
| PATCH | /api/v1/character_tags/{id} |
| DELETE | /api/v1/character_tags/{id} |
id tag_id ·
sort created_at tag_name ·
filter tag_color created_at
· search tag_name
Agent executions — agents
History of agent runs with their prompt, variables and result.
| Method | Path |
|---|---|
| GET | /api/v1/agent_executions |
| GET | /api/v1/agent_executions/{id} |
id execution_id ·
sort created_at ·
filter agent_id created_at
· search prompt_used
· heavy result, variables_used, execution_metadata
Flow executions — flows
Flow runs: status, node states, execution path and credits consumed.
| Method | Path |
|---|---|
| GET | /api/v1/flow_executions |
| GET | /api/v1/flow_executions/{id} |
id execution_id ·
sort created_at completed_at total_credits_consumed ·
filter flow_id status created_at
· heavy node_states, context, input_variables, execution_path
Credit transactions — usage
Every credit movement of the workspace: what was charged, by whom, for what.
| Method | Path |
|---|---|
| GET | /api/v1/credit_transactions |
| GET | /api/v1/credit_transactions/{id} |
id _id ·
sort created_at amount ·
filter action_type amount created_at
· heavy metadata
Playground generations — generations
Images and videos generated from the playground gallery.
| Method | Path |
|---|---|
| GET | /api/v1/playground_generations |
| GET | /api/v1/playground_generations/{id} |
| PATCH | /api/v1/playground_generations/{id} |
| DELETE | /api/v1/playground_generations/{id} |
id _id ·
sort created_at ·
filter folder_id generation_type generation_category created_at
· search prompt
· heavy input_params, result_data
Actions
Actions are what makes the platform do something. Each one runs the same controller the dashboard calls, so validation, billing and persistence are identical.
renders
| Action | Scopes | What it does |
|---|---|---|
POST renders.create
credits
emits
render.started |
renders:executerenders:write |
Queues a render for a video and returns the render job.
input:
video_id render_settings |
GET renders.list
|
renders:read |
Render jobs with their status and output URLs.
input:
video_id page limit |
POST renders.delete
|
renders:delete |
Deletes a render job and its output reference.
input:
render_id |
videos
| Action | Scopes | What it does |
|---|---|---|
POST videos.create
|
videos:write |
Creates a video through the dashboard controller: applies the template, defaults and workspace stamping.
input:
video_name video_type_id video_format video_lang |
POST videos.update
|
videos:write |
Validated update of a video document (same Joi schema as the editor).
input:
video_id |
POST videos.generate_layer_audio
credits
|
videos:execute |
Generates the audio of one timeline layer and syncs its timing.
input:
videoId layer_name text voice_settings |
POST videos.launch_flow
credits
|
videos:execute |
Runs the end-to-end video flow (generation pipeline) for a video.
input:
video_id flow_id |
timeline
| Action | Scopes | What it does |
|---|---|---|
POST timeline.generate_audio
credits
|
videos:execute |
Generates the voice-over of a block/group and runs Whisper alignment.
input:
video_id block_id voice_settings |
POST timeline.generate_questions
credits
|
videos:execute |
Writes quiz questions for a video from a topic or keyword.
input:
topic count lang preset |
POST timeline.sync_voice
|
videos:write |
Recomputes block durations from the audio sequence.
input:
video_id |
POST timeline.whisper_analyze
credits
|
videos:execute |
Word-level transcription and timing for an audio file.
input:
audio_url |
POST timeline.analyze_subtitles
credits
|
videos:execute |
Builds subtitle groups from a transcription.
input:
video_id audio_url |
POST timeline.translate_subtitles
credits
|
videos:execute |
Translates a subtitle track into a target language.
input:
subtitles target_lang |
POST timeline.hydrate_tu_preferes
credits
|
videos:execute |
Fills a would-you-rather timeline with generated questions and media.
input:
video_id count |
subtitles
| Action | Scopes | What it does |
|---|---|---|
POST subtitles.generate
credits
|
videos:execute |
Transcribes a media URL with Whisper, marks the words to emphasise and writes the subtitle track + layer onto the video. One call between `videos.create` and `renders.create`.
input:
video_id media_url style_preset words_per_group enable_emphasis enable_diarization video_format restyle_only |
images
| Action | Scopes | What it does |
|---|---|---|
POST images.generate
credits
emits
generation.completed |
generations:execute |
Runs an image agent and bills the workspace.
input:
agent_id prompt variables |
videos_ai
| Action | Scopes | What it does |
|---|---|---|
POST videos_ai.generate
credits
|
generations:execute |
Runs a video agent (Veo, Kling, Sora, Seedance...) and bills the workspace.
input:
agent_id prompt image_url duration |
POST videos_ai.extend
credits
|
generations:execute |
Extends a generated video by another segment.
input:
generation_id prompt |
agents
| Action | Scopes | What it does |
|---|---|---|
POST agents.execute
credits
emits
agent_execution.completed |
agents:execute |
Runs any configured agent with its prompt template and variables.
input:
agent_id variables |
GET agents.executions
|
agents:read |
History of agent runs with their outputs.
input:
agent_id limit |
generations
| Action | Scopes | What it does |
|---|---|---|
POST generations.launch
credits
|
generations:execute |
The playground pipeline: prompt in, image or video out, billed and stored.
input:
generation_type prompt model folder_id |
music
| Action | Scopes | What it does |
|---|---|---|
POST music.generate
credits
|
music:execute |
Creates a Suno song from a prompt, lyrics or a style brief.
input:
prompt lyrics style title instrumental |
GET music.get_task
|
music:read |
Status and tracks of a music generation.
input:
generation_id |
characters
| Action | Scopes | What it does |
|---|---|---|
POST characters.generate_image
credits
|
characters:execute |
Generates a consistent image of a character.
input:
character_id prompt |
POST characters.smart_variants
credits
|
characters:execute |
Generates a batch of consistent variants for a character.
input:
character_id count |
faceless
| Action | Scopes | What it does |
|---|---|---|
POST faceless.generate_story
credits
|
videos:execute |
Writes the script of a faceless video from a prompt.
input:
prompt language target_duration |
POST faceless.generate_outline
credits
|
videos:execute |
Produces the act/scene outline before the full script.
input:
prompt language |
POST faceless.parse_script
credits
|
videos:execute |
Splits a script into scenes ready for the faceless engine.
input:
script video_id |
POST faceless.generate_audio
credits
|
videos:execute |
Generates the voice-over of one or more scenes.
input:
video_id scene_id voice_settings |
POST faceless.generate_video
credits
|
videos:execute |
Generates the visual of a faceless scene (image or video model).
input:
video_id scene_id prompt |
POST faceless.check_status
|
videos:read |
Status of a running faceless scene generation.
input:
task_id video_id |
POST faceless.analyze_url
credits
|
videos:execute |
Extracts a usable brief from an article or video URL.
input:
url |
POST faceless.detect_characters
credits
|
videos:execute |
Finds recurring characters and proposes consistent prompts.
input:
script video_id |
smart_groups
| Action | Scopes | What it does |
|---|---|---|
POST smart_groups.generate
credits
|
videos:execute |
Builds a smart group (quiz, ranking, dialogue...) inside a video.
input:
video_id type topic |
POST smart_groups.action
credits
|
videos:execute |
Executes one of a smart group's declared actions.
input:
video_id group_id action |
POST smart_groups.create_qcm
|
videos:write |
Creates a multiple-choice question group from a question set.
input:
video_id questions |
tools
| Action | Scopes | What it does |
|---|---|---|
POST tools.generate_from_prompt
credits
|
videos:execute |
The one-shot tool: a prompt in, a ready video project out.
input:
prompt format lang |
POST tools.image_to_prompt
credits
|
generations:execute |
Turns an image into a reusable generation prompt.
input:
image_url |
POST tools.remove_background
credits
|
generations:execute |
Returns a cut-out version of the image.
input:
image_url |
POST tools.image_modification
credits
|
generations:execute |
Applies an instruction-based edit to an image.
input:
image_url prompt |
POST tools.image_crop
|
assets:write |
Crops or reframes an image to a target format.
input:
image_url format |
POST tools.reddit_post_to_video
credits
|
videos:execute |
Fetches a Reddit post and turns it into a video project.
input:
url |
POST tools.youtube_to_karaoke
credits
|
videos:execute |
Builds a karaoke video composition from a YouTube URL.
input:
url |
POST tools.read_comments
credits
|
generations:execute |
Fetches the comments of a TikTok or Instagram post.
input:
url limit |
POST tools.write_lyrics
credits
|
generations:execute |
Turns comments into song lyrics, each line keeping its comment id.
input:
comments style lang |
POST tools.variant_analyze
credits
|
generations:execute |
Analyses a media variant and reports what it contains.
input:
url |
slideshows
| Action | Scopes | What it does |
|---|---|---|
POST slideshows.generate
credits
|
videos:execute |
Generates the visuals of every pending slide.
input:
slideshowId |
POST slideshows.export
credits
|
videos:execute |
Exports the finished slideshow.
input:
slideshowId format |
flows
| Action | Scopes | What it does |
|---|---|---|
POST flows.execute
credits
|
flows:execute |
Runs an automation flow and returns its execution.
input:
flowId variables |
GET flows.executions
|
flows:read |
Execution history of a flow.
input:
flowId |
publishing
| Action | Scopes | What it does |
|---|---|---|
POST publishing.schedule_post
credits
|
publishing:executepublishing:write |
Queues a video for publication on a connected account.
input:
video_id account_id scheduled_at caption |
GET publishing.calendar
|
publishing:read |
Scheduled posts grouped by day.
input:
from to |
account
| Action | Scopes | What it does |
|---|---|---|
GET account.credits
|
usage:read |
Current credit balance of the workspace. |
GET account.limits
|
usage:read |
Plan limits and current consumption. |
GET account.credit_history
|
usage:read |
Credit movements, newest first.
input:
page limit |
image_agents
| Action | Scopes | What it does |
|---|---|---|
GET image_agents.list
|
agents:read |
Image agents configured for the workspace. |
POST image_agents.create
|
agents:write |
Creates an image agent with its model and default parameters.
input:
agent_name agent_model agent_config |
POST image_agents.update
|
agents:write |
Updates an image agent.
input:
agent_id |
POST image_agents.delete
|
agents:delete |
Deletes an image agent.
input:
agent_id |
POST image_agents.generate
credits
|
generations:execute |
Starts an image generation job. Poll `image_agents.status` for the result.
input:
agent_id prompt count |
POST image_agents.status
|
generations:read |
Status of one or more image generation jobs.
input:
generation_ids |
app_screenshots
| Action | Scopes | What it does |
|---|---|---|
GET app_screenshots.list
|
videos:read |
App-screenshot projects of the workspace. |
POST app_screenshots.create
|
videos:write |
Creates an app-screenshot project.
input:
project_name |
POST app_screenshots.update
|
videos:write |
Updates an app-screenshot project.
input:
project_id |
POST app_screenshots.delete
|
videos:delete |
Deletes an app-screenshot project.
input:
project_id |
POST app_screenshots.generate
credits
|
generations:execute |
Generates one app-store screenshot from a project.
input:
project_id screen_id |
voice_projects
| Action | Scopes | What it does |
|---|---|---|
GET voice_projects.list
|
voices:read |
Bulk text-to-voice projects.
input:
page limit |
POST voice_projects.create
|
voices:write |
Creates a bulk text-to-voice project.
input:
project_name |
POST voice_projects.update
|
voices:write |
Updates a bulk text-to-voice project.
input:
project_id |
POST voice_projects.delete
|
voices:delete |
Deletes a bulk text-to-voice project.
input:
project_id |
playground
| Action | Scopes | What it does |
|---|---|---|
POST playground.random_prompt
credits
|
generations:execute |
Generates an image prompt from a theme, for exploration.
input:
theme style |
POST playground.image_to_prompt
credits
|
generations:execute |
Turns an image into the prompt that would produce it.
input:
image_url |
instructions
| Action | Scopes | What it does |
|---|---|---|
POST instructions.generate
credits
|
generations:execute |
Writes the instruction set driving a generation from a brief.
input:
topic lang |
POST instructions.generate_with_news
credits
|
generations:execute |
Same, seeded with fresh news on the topic.
input:
topic lang |
assets
| Action | Scopes | What it does |
|---|---|---|
GET assets.static_library
|
assets:read |
The platform-provided asset library (backgrounds, overlays, sounds).
input:
category |
Machine-readable spec: /api/v1/openapi.json — import it into Postman, Insomnia or an SDK generator.