Async by design.
Signed on the way back.
Clipping a two-hour video is not a request/response problem, so we do not pretend it is. You submit and get an id straight away, then either poll or let a signed webhook find you.
Endpoints
/api/v1/shorts
Submit a job. Returns a request id immediately with status "queued".
/api/v1/shorts/{id}
Progress percentage and the stage it is currently on.
/api/v1/shorts/{id}/clips
Finished clips with signed download URLs, scores and hooks, strongest first.
/api/v1/requests
Your jobs, paginated.
/api/v1/shorts/{id}
Remove a job and its clips.
Authenticate with X-Api-Key. Keys are shown once when you
create them and stored hashed — we cannot recover one for you, only issue a new one.
Webhooks
Pass a webhook_url when you submit and we
POST the finished job to it. Every delivery carries an HMAC-SHA256 signature
computed over the exact raw body — verify it before trusting the payload.
X-Clipsteady-Event: clip_job.completed
X-Clipsteady-Signature: <hmac-sha256 of raw body>
hash_hmac('sha256', $raw, $secret)
MCP server
Point Claude Code, Claude Desktop, Cursor or n8n at our MCP server and an agent can make clips with no integration code at all. Already using a competitor's MCP server? The tool names match — change the environment variables and it keeps working.
{
"mcpServers": {
"clipsteady": {
"command": "npx",
"args": ["-y", "@clipsteady/mcp-server"],
"env": { "CLIPSTEADY_API_KEY": "sk_…" }
}
}
}
A whole job, end to end
# 1. submit — returns immediately
curl -sX POST https://api.clipsteady.com/api/v1/shorts \
-H "X-Api-Key: $CLIPSTEADY_KEY" \
-d source_url="https://youtube.com/watch?v=..." \
-d caption_template=karaoke \
-d webhook_url="https://you.example/hooks/clipsteady"
{ "id": "9f2c8b14-…", "status": "queued" }
# 2. poll, if you would rather not run a webhook
curl -s https://api.clipsteady.com/api/v1/shorts/9f2c8b14-… \
-H "X-Api-Key: $CLIPSTEADY_KEY"
{ "status": "processing", "progress_pct": 60, "current_step": "reframing" }
# 3. collect — sorted strongest first
curl -s https://api.clipsteady.com/api/v1/shorts/9f2c8b14-…/clips \
-H "X-Api-Key: $CLIPSTEADY_KEY"
[ { "virality_score": 92, "hook_title": "…", "download_url": "…" } ]