Public API v3v3.11.0

Build with the Revid API

Research what goes viral, turn a script, prompt, link or file into a finished short-form video, and publish it to TikTok, YouTube, Instagram or X. One request per video: the API handles visuals, voice-over, captions and music. Each render costs 10 credits plus generation costs, and you can estimate any payload for free first. 39,000+ videos have been made through the API, the MCP server and the CLI since October 2025.

REST API

Call the API from your backend. Full control over every parameter, webhooks when renders finish.

Start the quickstart
MCP server

Connect Claude, ChatGPT, Cursor or VS Code to Revid's video MCP server (30 tools) with one-click OAuth. No code, no API key to paste.

Connect your agent
Revid CLI

npm install -g revid-cli. Stable --json output for shell agents, CI jobs and scripts.

Use the CLI
  1. 1. Get your API key

    Send it in the key header on every call, with a descriptive User-Agent such as my-app/1.0. In code, keep it in an environment variable like REVID_API_KEY.

    Checking your session...
  2. 2. Start a render

    Pick a workflow and send its input. You get a pid (project id) back right away; the video renders in the background.

    curl -X POST 'https://www.revid.ai/api/public/v3/render' \
      -H 'Content-Type: application/json' \
      -H 'key: YOUR_API_KEY' \
      -H 'User-Agent: my-app/1.0' \
      -d '{
      "workflow": "script-to-video",
      "source": {
        "text": "Did you know honey never spoils? Archaeologists found 3,000 year old honey in Egyptian tombs, and it was still edible."
      },
      "webhookUrl": "https://your-server.com/revid/webhook"
    }'
  3. 3. Get the video

    Your webhookUrl is called when the video is ready. No server to receive webhooks? Poll the status endpoint with the pid every 10 to 20 seconds until status is ready.

    curl 'https://www.revid.ai/api/public/v3/status?pid=YOUR_PID' \
      -H 'key: YOUR_API_KEY' \
      -H 'User-Agent: my-app/1.0'
Shortcut: configure a video visually on revid.ai/create, click See API Code, and reuse that exact payload.

What are you starting from?

The workflow field decides everything else: required input, defaults, and which parameters apply.

What each workflow needs (â—Ź) and what you can customize (âś“). Click a workflow to build a request interactively.

WorkflowRequiressourcemediavoicecaptionsmusicavataroptionsrender
Script to videosource.text●✓✓✓✓✓✓✓
Prompt to videosource.prompt●✓✓✓✓—✓✓
Audio to videosource.url●✓—✓✓—✓✓
Music to videosource.url●✓—✓✓—✓✓
Lyrics to music videosource.text (the lyrics) or source.prompt (a description of the song)●✓—✓✓—✓✓
Song adsource.prompt, source.text or media.provided product photos●✓—✓✓—✓✓
Article to videosource.url●✓✓✓✓—✓✓
Avatar to videosource.text + avatar.url●✓✓✓✓●✓✓
Static background videosource.text or source.url●✓✓✓✓—✓✓
Motion transfersource.url + media.provided[] with 1 image (the target character)●●✓✓✓—✓✓
Character swapsource.url + one photo per person (media.provided images and/or characterIds), left to right, up to 4●●————✓✓
Caption videosource.url●✓—✓✓—✓✓
Video to clipssource.url●✓✓✓✓—✓✓
Ad generatorsource.prompt or media.provided[]●✓✓✓✓—✓✓
● required✓ available— not used

Beyond rendering

The same API key also researches viral content, generates standalone media, manages characters and voices, and publishes to connected social accounts. Every endpoint, at a glance:

Research

Search viral videos across platforms before creating content.

Files

Upload local images, video or audio and get a URL to use in renders and generations.

REST API and CLI: API key

Send your key in the key header. Find it on your account page. Requests use the credits of your account, or of your active workspace.

MCP: OAuth or API key

Claude, ChatGPT, Cursor and VS Code sign in with OAuth 2.1, so nobody pastes a key. Clients configured with headers can send the key as Authorization: Bearer. Connection guide.

An active plan is required

Rendering, media generation, export, characters and voice cloning need an active Revid plan. Credits alone do not unlock them: a key without a plan gets 402 SUBSCRIPTION_REQUIRED. See plans.

Set a User-Agent. Requests sent with the default signature of some HTTP libraries (Python's urllib, libwww-perl) are blocked before they reach the API, with a plain-text 403 error code: 1010. Any descriptive value like my-app/1.0 works. The same applies when you download the video URLs the API returns.

Errors & limits

Errors are JSON with success: 0 and a human-readable error that names the exact field to fix.

400Validation error. The message names the exact field, e.g. "voice.speed must be between 0.5 and 2."
401Missing or invalid API key (header key).
402The API key is valid but the account has no active plan. Generation endpoints require one; see https://www.revid.ai/pricing.
403The request was blocked in front of the API and never reached it; the body is plain text error code: 1010, not JSON. Usual cause: the HTTP client sent its default User-Agent. Set an explicit, descriptive User-Agent (for example my-app/1.0) and retry.
429Rate limit reached on viral search (code RATE_LIMIT_EXCEEDED). Searches cost no credits but are capped per rolling 24h: 20 without a plan, 500 on paid plans, 2000 on Elite.
500Internal error. Credits consumed by a failed render are refunded automatically.