---
title: Is there an invideo API?
description: There are no invideo API keys, by design. Use invideo MCP, the invideo CLI, or device sign-in for servers and scripts.
---
There are no API keys, by design. Every call to invideo, whether it generates a shot with a model or cuts a timeline, runs as a signed-in person, in that person's workspace. You reach invideo through three routes: invideo MCP for AI apps and agents, the invideo CLI for shells and scripts, and device sign-in for servers with no browser.

```bash
curl -fsSL https://agents.invideo.io | sh
invideo auth login
invideo project list --json
```

## Why there are no API keys

A key is a secret that works for anyone who holds it. invideo uses a person's sign-in instead, for these reasons.

- **Every call has an owner.** Each edit, generation and export is made by a named person, in a workspace they chose. People in the project see who did what.
- **Credits come from the right place.** Paid calls spend the credits of the workspace the person works in. A leaked key cannot spend them.
- **Access matches the person.** Your agent can open only what you can open.
- **Nothing to rotate in code.** There is no key to paste into a config file, a repo or a chat.

If a tool asks you for an invideo API key, it is not one of invideo's routes. Use one of the routes below.

## Route 1: invideo MCP

invideo MCP is a remote MCP server at `https://mcp.invideo.io/mcp`. MCP (Model Context Protocol) is a standard way for AI apps to call outside tools. It is the route for clients without a shell: Claude on the web, ChatGPT, the Gemini app, VS Code, Gemini CLI, and any client that supports remote MCP servers over Streamable HTTP. Terminal agents such as Claude Code, Codex, Cursor and Antigravity use the CLI instead.

```json
{
  "mcpServers": {
    "invideo": { "url": "https://mcp.invideo.io/mcp" }
  }
}
```

The client asks you to sign in to invideo in your browser when it connects. Then your agent calls tools such as `list_projects`, `edit_timeline`, `generate` and `export`. See [invideo for AI agents](/agents) for every client, and [MCP tools](/reference/mcp-tools) for the full list.

The server is plain JSON-RPC over HTTP POST. An agent with no MCP client can call it with `curl`, with an access token from device sign-in. [Sign in, device codes and sessions](/account/sign-in) has the device flow over HTTP.

## Route 2: the invideo CLI

The invideo CLI is one program for macOS, Linux and Windows. It does the same work as MCP from a shell, and saves files to disk. Use it for scripts and coding agents that run commands.

```bash
invideo project new --title "Launch teaser"
invideo asset upload <project-url> ./shots/clip.mp4
invideo edit new <project-url> --name "Teaser v1"
invideo edit export <edit-url> --format video --quality 1080 --json
invideo status <card-url> --wait
invideo notebook show <card-url> --out ./out
```

`<project-url>` comes from `invideo project new`, and `<edit-url>` from `invideo edit new`. `<card-url>` is `.sequences[0]` in the export's answer. `invideo status` waits and saves nothing. `invideo notebook show` with `--out` saves the video as `export.mp4`.

Pass `--json` on every command in a script. Each answer is one JSON object, with `next` saying what to run after it. Use one route per session. Do not mix MCP and CLI calls in the same session. See [CLI commands and flags](/reference/cli).

## Route 3: device sign-in for servers

On a machine with no browser, such as a CI runner, a container or a cloud agent, sign in with a device code. A person approves once, on a phone or laptop.

```bash
INVIDEO_NO_BROWSER=1 invideo auth login
```

The command prints a link and a code. The person opens the link, enters the code, chooses the workspaces and approves. The sign-in then lasts on that machine. This code signs in the CLI only. Over HTTP without the CLI, the agent runs its own device flow, gets an access token and a refresh token, and refreshes the access token when it expires.

Your agent never asks the person for a password or for the code back. It sends the link and the code in one message and waits. See [Sign in, device codes and sessions](/account/sign-in) and [Run invideo in CI and on servers](/how-to/ci-and-servers).

## What each route is good for

Pick the route that fits where your code or agent runs.

| You have | Use |
| --- | --- |
| A chat app such as Claude or ChatGPT | invideo MCP, as the ChatGPT plugin or a Claude connector |
| A coding agent such as Claude Code, Codex or Cursor | The CLI, through the invideo plugin |
| A shell script or a batch job on your laptop | The CLI, signed in with `invideo auth login` |
| A CI job, a container or a cloud agent | The CLI or MCP over HTTP, with device sign-in |
| Your own app that serves other users | Each user signs in with their own invideo account |

## Cost

Edits and exports are free. Generation and transcripts cost credits. Paid stock costs a small credit charge, or one of your workspace's iStock licenses. Your agent runs a dry run first and tells you the price before it spends anything. The same rules hold on every route. See [Credits and what they cost](/account/credits).

## If something goes wrong

Most problems come from looking for a key that does not exist.

| Symptom | Fix |
| --- | --- |
| A tool or guide asks for an invideo API key. | Avoid keys. Instead, sign in with the browser or a device code. |
| A call returns a sign-in challenge. | The client is not signed in. Finish the sign-in, then retry the call. |
| The CLI exits with code 4. | Run `invideo auth login`, or `INVIDEO_NO_BROWSER=1 invideo auth login`. |
| An HTTP call returns 401. | The access token expired. Refresh it with the refresh token. |
| The agent mixes MCP tools and CLI commands. | Avoid this. Instead, pick one route for the whole session. |
| A server job needs a person each time. | Keep the refresh token in a secret store, so one approval lasts. |

## Related

- [invideo for AI agents](/agents)
- [Run invideo in CI and on servers](/how-to/ci-and-servers)
- [Sign in, device codes and sessions](/account/sign-in)
- [CLI commands and flags](/reference/cli)
- [MCP tools](/reference/mcp-tools)
- [Credits and what they cost](/account/credits)