# RiffAds docs (/)



Send a script and an actor. Get back a lip-synced video ad.

Works from your code, your AI agent or your terminal.

## Pick your way in [#pick-your-way-in]

<Surfaces />

## First video in 5 minutes [#first-video-in-5-minutes]

<Cards>
  <Card title="REST API" href="/quickstart/api" description="curl, a key, a video." />

  <Card title="MCP" href="/quickstart/mcp" description="Ask Claude or Cursor for an ad." />

  <Card title="What you can make" href="/capabilities" description="Every model and tool, with its id." />
</Cards>

## Before you start [#before-you-start]

* **Account:** sign up at [app.riffads.com](https://app.riffads.com). A paid plan is required.
* **Key:** owners and admins create API keys in the app.
* **MCP:** no key needed. Sign in from your client.

## 3 things that break first integrations [#3-things-that-break-first-integrations]

| Gotcha                                         | Fix                                                                     |
| ---------------------------------------------- | ----------------------------------------------------------------------- |
| Talking actor ads are 2 jobs                   | Voice first (`tts`), then `actor_ultra`. [Guide](/guides/talking-actor) |
| `max_credits` equal to the estimate is refused | Send at least `ceil(estimate * 1.1)`. [Generations](/api/generations)   |
| Download links expire in 10 minutes            | Download the file. Don't store the link. [Results](/guides/results)     |

## What RiffAds won't do [#what-riffads-wont-do]

* **No posting.** Nothing publishes to Meta, TikTok, YouTube or X. You get a file.
* **No workflow building by agents.** Build workflows in the app. Agents run them.

<Callout type="idea" title="Docs for your agent">
  Point your agent at [/llms.txt](/llms.txt) or [/llms-full.txt](/llms-full.txt). Add `.md` to any page URL for plain Markdown.
</Callout>
