Quickstart

Install the server, make two free calls, then ask for one clip.

What you get

When a run succeeds, Clipwright returns a clip your agent asked for. Its price is estimated before anything is spent.

Before you install

A person does the first part, once, in a few minutes: create an account, confirm the email, issue an API key and buy a pack of credits. After that the agent works on its own until the credits run out.

Create an account and confirm your email; it opens right away with no credits on it.

An open account issues its own API keys from the dashboard.

A key starts with cw_ and is shown once, at the moment you issue it.

The commands below need Node.js 20 or newer. If node --version prints nothing, install Node first.

Install the MCP server

One command registers Clipwright with Claude Code. It is one line with nothing for the shell to expand, so bash, zsh and PowerShell run it alike. Put your own key where the command shows cw_, then run it.

claude mcp add clipwright -e CLIPWRIGHT_API_KEY=cw_... -- npx -y -p @clipwright/mcp-server clipwright-mcp

What CLIPWRIGHT_CLIENT_ID does

CLIPWRIGHT_CLIENT_ID names this installation. The command leaves it out: the server keeps one in ~/.clipwright/client-id, so there is nothing to fill in.

Idempotency is scoped to your account. Two installations of the same account can share a run when they share the value, and no account reaches another account's run through it.

The first call is free

Ask the agent for list_voices, or run the command below. It returns the catalog and spends no credits.

npx -y -p @clipwright/cli clipwright voices

The catalog call answers two questions at once: the service is reachable, and your key is accepted.

Price the script before you render

quote reads a script and estimates what it would cost. It spends nothing.

Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. There is no word-count limit. Duration and price are estimates until measured.

npx -y -p @clipwright/cli clipwright quote --script "Hello from Clipwright."

Signing up is free and takes no card. An account opens with no credits on it: buy a pack when you want to render.

A pack costs $10 before VAT for 1000 credits, or 33 seconds of finished video.

Work the numbers on the pricing page

Render one clip

make sends the script to the pipeline and, when a run is accepted, waits for it. If the run's final_output is non-null, make prints its video_url.

npx -y -p @clipwright/cli clipwright make --script "Hello from Clipwright."

Rendering is the only thing on this page that can spend credits.

The link's signature expires 7 days after it is issued.

The link is signed for GET only: HEAD returns 403. To check it without downloading, use a ranged GET (curl -r 0-0), not curl -I.

REST does the same job for an agent that speaks neither MCP nor the CLI. This call asks for its own run and answers right away, so it can spend credits of its own. Idempotency-Key is yours to choose: the same key returns the run it already started, so a new run needs a new key. It is a literal here so the line runs unchanged in any shell. In PowerShell call curl.exe: there, curl is an alias for Invoke-WebRequest.

curl -X POST https://api.clipwright.io/v1/skills/make_ugc/run -H "Authorization: Bearer cw_..." -H "Idempotency-Key: quickstart-1" -H "Content-Type: application/json" -d '{"script": "Hello from Clipwright."}'

Read the run back with GET /v1/runs/{id}. When final_output is non-null, the link is final_output.video_url; null means the run returned no link.

What costs money

5 of the 6 endpoints this page names are free. Only the render can be billed.

  • GET /health answers without a key, and costs nothing.
  • GET /v1/voices returns the voice catalog, and costs nothing.
  • GET /v1/account shows your balance, debt and holds, and costs nothing.
  • POST /v1/skills/make_ugc/quote estimates the price of a script, and costs nothing.
  • GET /v1/runs/{id} reports on a run, and costs nothing.
  • POST /v1/skills/make_ugc/run renders, and it spends credits. The only other call that can is POST /v1/skills/create_actor/run, which builds a personal actor from a description and takes about a minute.

When something does not work

Read down while you install, and read up when a call fails. Every rung but the last is free.

  1. If a command stops at node: command not found, or npx is not recognized, Node.js is missing: install version 20 or newer and run the command again.
  2. https://api.clipwright.io/health answers without a key. If that call fails, the problem is not your key.
  3. An authorization error from the voice catalog means the key is missing, mistyped, or no longer valid.
  4. A refusal from quote explains itself in the message, and names the field when one field is at fault.
  5. If the command works and the agent does not, start with the MCP layer: the same key and script through the CLI show that the service itself answers.
  6. If all of those pass and the render still fails, run make again with --retry 2: it asks for a new run instead of the earlier one, and a render that reaches the vendor may be billed.

A run refused with account_not_admitted means the account has no access. The owner opens it.