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.

ResourceActionsWhat it covers
videosreadwritedeleteexecuteVideo projects: timeline, blocks, metadata.
rendersreadwritedeleteexecuteRender jobs and their output files.
generationsreadwritedeleteexecuteImage, video, audio and music generations.
assetsreadwritedeleteUploaded files and generated media.
foldersreadwritedeleteFolder tree used to organise videos and assets.
charactersreadwritedeleteexecuteRecurring characters and their reference images.
voicesreadwritedeleteexecuteVoice catalog, cloned voices and TTS connections.
templatesreadwritedeleteVideo templates, styles and smart-group configurations.
musicreadwritedeleteexecuteMusic library and AI song generation.
agentsreadwritedeleteexecuteImage/video agents and their executions.
flowsreadwritedeleteexecuteAutomation flows and their runs.
publishingreadwritedeleteexecuteSocial accounts and scheduled posts.
webhooksreadwritedeleteWebhook endpoints and their delivery history.
workspacereadwriteWorkspace profile, members and settings.
usagereadCredit balance, API usage and request logs.
api_keysreadwritedeleteManage API keys themselves. Grant with care.

Presets

PresetScopes
read_only
Fetch everything, change nothing. Safe for dashboards and exports.
*:read
content_editor
Create 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
automation
Full production pipeline: create, generate, render, publish.
videos:* renders:* generations:* assets:* folders:* characters:read voices:read music:* templates:read publishing:* usage:read
full_access
Everything 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:.

FormatUse
jsonThe envelope above. The default.
ndjsonOne object per line — streams, jq, pipelines.
csvFlattened 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 (*).

EventMeaning
render.startedA worker picked a queued render up and started working on it.
render.completedA render finished and its output URL is available.
render.failedA render stopped on an error.
generation.completedAn AI generation (image, video, audio) produced its result.
generation.failedAn AI generation failed. Credits already spent are reported in the payload.
music.completedA music generation finished and its tracks are hosted.
music.failedA music generation failed. The credits it reserved were refunded.
post.publishedA scheduled post went out. Also fired on a partial publish — read `target_accounts` for the per-account outcome.
post.failedA scheduled post could not be published.
flow.completedA flow execution reached its end.
flow.failedA flow execution stopped on an error.
agent_execution.completedAn agent finished running.
action.completedAny `/v1/actions/*` call that succeeded. Useful as a catch-all audit feed.
action.failedAny `/v1/actions/*` call that returned an error.
credits.lowA call was refused for lack of credits. The payload carries what it needed, what was left and the shortfall.
webhook.testSent by `POST /v1/webhooks/{id}/test`. Never emitted by the platform.
video.createdA video was created through the API or the dashboard.
video.updatedA video was updated through the API or the dashboard.
video.deletedA video was deleted through the API or the dashboard.
folder.createdA folder was created through the API or the dashboard.
folder.updatedA folder was updated through the API or the dashboard.
folder.deletedA folder was deleted through the API or the dashboard.
asset.createdA asset was created through the API or the dashboard.
asset.deletedA asset was deleted through the API or the dashboard.
character.createdA character was created through the API or the dashboard.
character.updatedA character was updated through the API or the dashboard.
character.deletedA character was deleted through the API or the dashboard.
agent.createdA agent was created through the API or the dashboard.
agent.updatedA agent was updated through the API or the dashboard.
agent.deletedA agent was deleted through the API or the dashboard.
flow.createdA flow was created through the API or the dashboard.
flow.updatedA flow was updated through the API or the dashboard.
flow.deletedA flow was deleted through the API or the dashboard.
slideshow.createdA slideshow was created through the API or the dashboard.
slideshow.updatedA slideshow was updated through the API or the dashboard.
slideshow.deletedA slideshow was deleted through the API or the dashboard.
template.createdA template was created through the API or the dashboard.
template.updatedA template was updated through the API or the dashboard.
template.deletedA template was deleted through the API or the dashboard.
video_style.createdA video_style was created through the API or the dashboard.
video_style.updatedA video_style was updated through the API or the dashboard.
video_style.deletedA video_style was deleted through the API or the dashboard.
smart_group_config.createdA smart_group_config was created through the API or the dashboard.
smart_group_config.updatedA smart_group_config was updated through the API or the dashboard.
smart_group_config.deletedA smart_group_config was deleted through the API or the dashboard.
custom_video_type.createdA custom_video_type was created through the API or the dashboard.
custom_video_type.updatedA custom_video_type was updated through the API or the dashboard.
custom_video_type.deletedA custom_video_type was deleted through the API or the dashboard.
scheduled_post.createdA scheduled_post was created through the API or the dashboard.
scheduled_post.updatedA scheduled_post was updated through the API or the dashboard.
scheduled_post.deletedA scheduled_post was deleted through the API or the dashboard.
character_tag.createdA character_tag was created through the API or the dashboard.
character_tag.updatedA character_tag was updated through the API or the dashboard.
character_tag.deletedA character_tag was deleted through the API or the dashboard.
playground_generation.updatedA playground_generation was updated through the API or the dashboard.
playground_generation.deletedA playground_generation was deleted through the API or the dashboard.

Resources

Videos videos

Video projects with their timeline, blocks and generation settings.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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.

MethodPath
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

ActionScopesWhat it does
POST renders.create credits
emits render.started
renders:execute
renders: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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat it does
POST publishing.schedule_post credits publishing:execute
publishing: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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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

ActionScopesWhat 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.