roasOS
Workflows

Workflows

Popular creative jobs, each as one API call.

A workflow is a named operation over the whole roasOS pipeline. It is not a model.

A workflow does in one call what several calls did before it. You send what you want. roasOS chooses the pipeline, the model and the media roles.

The seven workflows

WorkflowPathWhat it does
Analyze an adPOST /v1/workflows/analyzeBreak one ad into its structure: the shots, the transcript, the style and the insights.
Remix an adPOST /v1/workflows/remixAnalyze one ad, storyboard the same structure with your product and your person, and render it.
Recast a videoPOST /v1/workflows/recastPut your own person and your own product into a video that your workspace owns.
Animate a stillPOST /v1/workflows/static-to-videoTurn one still image into one video.
Extend a videoPOST /v1/workflows/extendContinue one video from its last frame and get one longer clip.
Extract a brandPOST /v1/workflows/extract-brandRead one brand from its own website: the products, the offer, the promise, the proof and the voice.
Make static adsPOST /v1/workflows/staticsTurn one product into a set of static ads, with the copy, the brand colours and the logo in the image.

Remix and make-static-ads are the two workflows that run the roasOS agent. Each answers with an agent run, not with a job.

Two more pages in this group

Neither page below is an eighth workflow.

PagePathWhat it does
Recast an actorPOST /v1/workflows/recastThe person-swap recipe over the recast door. It adds no path.
Research competitor adsPOST /v1/research/jobsFind the ads that a company runs on Facebook, in one normalized shape.

Research is its own job family. It has its own read path, GET /v1/research/jobs/{id}, and its own status words. Refer to Research competitor ads.

Every workflow is quote-first

The three rules of a paid request do not change for a workflow.

  1. Send an Idempotency-Key header. Use 16 to 255 characters.
  2. Send quote_only: true to read the price. A quote is free.
  3. Send the same body again with the returned quote_id. Only this step uses credits.

Your key needs the api:write scope. Refer to Quotes and credits.

roasOS rejects a paid workflow call that has no quote_only value and no quote_id. The rejection occurs before any work starts. An agent therefore cannot spend your credits without showing you a price first.

Where the result lands

The seven workflows use four read paths.

WorkflowRead the run at
AnalyzeGET /v1/workflows/analyses/{id} — an analysis makes no generation, so it has its own read path
Extract a brandGET /v1/workflows/analyses/{id} — the same path; an extraction is one analysis of kind website
RemixGET /v1/agent-runs/{id} — the agent-run envelope; each render it starts is a job
Make static adsGET /v1/agent-runs/{id} — the same envelope; each image it starts is a job
RecastGET /v1/jobs/{id} — the standard job envelope
Animate a stillGET /v1/jobs/{id} — the standard job envelope
Extend a videoGET /v1/workflows/extend/{id} — the continuation job and the joined clip (merged)

Recast and animate-a-still are ordinary generations. They accept webhook_url and wait_timeout_seconds, and they appear in GET /v1/jobs. Refer to Jobs and to Webhooks.

Analyze and extract-a-brand have no webhook. Poll GET /v1/workflows/analyses/{id}/status instead.

Media rules

Every media URL must be an immutable object on https://cdn.roasos.com that your workspace owns. Any other URL returns 400 reference_media_not_workspace_owned. Put your own files there with POST /v1/uploads. Refer to Reference media and uploads.

Analyze is the one exception. It also reads a Discover creative, because you analyze a competitor's ad to learn from it.

Remix reads a Discover creative for the same reason, and only in discover_item_id. It refuses one as edit material with 400 discover_source_not_allowed.

Recast, make-static-ads and animate-a-still have no such exception. You may edit and render only media that your workspace owns. Refer to Media rights.

Use a workflow from an agent

Each workflow is also an MCP tool on https://mcp.roasos.com/mcp.

ToolOperation
roasos_analyze_adQuote or run an ad analysis
roasos_get_ad_analysisRead one analysis run
roasos_get_ad_analysis_statusPoll one analysis run
roasos_get_ad_analysis_resultRead the finished analysis document
roasos_remix_adQuote or run a remix
roasos_recast_videoQuote or run a recast
roasos_static_to_videoQuote or run an animate-a-still
roasos_extend_videoQuote or run a video extend
roasos_get_extend_videoRead one extend run and its joined clip
roasos_extract_brandQuote or run a brand extraction
roasos_staticsQuote or run a set of static ads

An extraction is read with the three analysis tools above, because it writes an analysis run.

Refer to Connect an AI agent (MCP).

The pack skills

A workflow door takes a typed body. A pack skill takes your own words instead. roasOS ships twelve pack skills.

SlugNameTyped door
roasos:analyze-adAnalyze an ad—
roasos:remix-adRemix an adPOST /v1/workflows/remix
roasos:discover-formatDiscover a format—
roasos:localize-adLocalize an ad—
roasos:statics-factoryMake static adsPOST /v1/workflows/statics
roasos:recast-actorRecast the actor—
roasos:street-interviewStreet interview ad—
roasos:clone-staticClone a static ad—
roasos:animated-storyAnimated story ad—
roasos:song-adSong ad—
roasos:product-effectsProduct effects—
roasos:tiktok-slideshowTikTok slideshow—

Two slugs also have a typed door, and they do the same work through it. The other ten run through the skill path only.

Start a skill run with POST /v1/skills/{id}/runs, or with the MCP tool roasos_run_skill. Send the slug as the id. Every skill run is an agent run, so read it at GET /v1/agent-runs/{id}.

Refer to Skills for the full table.

On this page