# caption.sh: the captions API built for AI agents

Turn raw video into post-ready content without opening an editor. One API for transcription, styling, rendering, and delivery.

caption.sh takes a video with speech, transcribes it with per-word timestamps, and burns animated captions into a new MP4: same resolution, frame rate and audio, with the spoken word highlighted in sync and the text auto-fitted to the frame. It is built for developers, AI agents, and automated UGC / short-form pipelines rather than for manual editing in a web UI.

## Who it is for

- AI agents that make or edit video and need a captions step (via the REST API or the hosted MCP server)
- Automated UGC, faceless-video and AI-avatar ad pipelines
- Short-form social: TikTok, Reels, YouTube Shorts
- Podcast clips, tutorials, product demos, and accessibility

## How it works

1. **Upload once.** Create a job with `POST /v1/videos`, then upload the file straight to storage, or pass a `source_url` and the API pulls the video itself.
2. **Style in JSON.** Font, size, words per caption, position, colours, highlight, outline or backdrop, tilt, emphasis and entrance animation are all plain options. All optional.
3. **Render async.** A durable queue drives isolated render workers built for real video jobs.
4. **Ship the MP4.** Poll `GET /v1/jobs/{id}`, then download the captioned MP4 from `GET /v1/jobs/{id}/result`.

## For agents: hosted MCP server

Point any MCP client at `https://mcp.caption.sh/mcp` with your API key as a bearer token. No install.

```bash
claude mcp add --transport http caption https://mcp.caption.sh/mcp \
  --header "Authorization: Bearer $CAPTION_API_KEY"
```

Tools: `caption_video`, `get_caption_job`, `list_caption_styles`, `list_caption_jobs`, `get_caption_balance`. Every tool describes what it does, what the result looks like on screen, and when to use it.

## Pricing

Simple prepaid pricing: **$0.10 per minute** of video, rounded up to the next minute. Duration is measured server-side, so you pay for the real length. Top up with credit packs of $5, $10, $20, $50 (includes a $5 bonus) or $100 (includes a $10 bonus). A job never starts if your balance can't cover it.

## FAQ

See the FAQ section at https://caption.sh/#faq or the full reference at https://caption.sh/docs.md.

## Links

- API reference: https://caption.sh/docs.md
- Get an API key: https://caption.sh/dashboard
- Everything in one file for LLMs: https://caption.sh/llms-full.txt
