# Revnu API, CLI and MCP Docs

> The Revnu API, CLI and MCP server let your software read and approve the review queue, message Revnu, pull results and leads, and run workflows. Start here.

Canonical: https://revnu.com/docs/developers
Last updated: 2026-10-16

Revnu has a JSON API over HTTPS, a `revnu` command line tool, and an MCP server for Claude, ChatGPT, Cursor and other assistants. All three reach the same account through the same personal tokens, so anything you can do in one you can do in the others.

They give your software the controls a customer has in the dashboard. Read what is waiting for approval and approve or decline it. Hand Revnu a job and read its reply. Pull results, leads and workflow runs into your own reporting. Keep a block list in sync.

The API is Revnu's front door, not a toolbox. No route writes and sends an email of your own or publishes your own content. Everything that sends, publishes or spends is something Revnu drafted, approved through the same review cards and approval settings the dashboard uses.

## The contract in one screen

```
Base URL:  https://revnu.com/api/v1
Auth:      Authorization: Bearer rvp_...   (server-side only, no CORS)
Format:    JSON in, JSON out, every response Cache-Control: no-store
MCP:       https://revnu.com/api/mcp       (Streamable HTTP, OAuth)
CLI:       npx @revnu/cli                  (or npm install -g @revnu/cli)
Spec:      https://revnu.com/openapi.json
```

## What you can do

- **Review queue.** List what is waiting, read one card, approve, answer, choose, send, request changes, snooze, dismiss. See [Build a Review Screen](/docs/build-a-review-screen).
- **Agent.** Send Revnu a message, wait for or poll the reply, read the thread, check whether it is busy. See [Talk to Your Agent](/docs/talk-to-your-agent).
- **Results.** The same per-channel scoreboard Revnu reads when it wakes, for any window up to 31 days. See [Pull Results Into Reporting](/docs/pull-results-into-reporting).
- **Leads.** Read leads, their contacts, one lead's draft and research. Set a lead's labels. Manage the block list.
- **LinkedIn.** Look up one person's connection, invite and last 50 messages with your connected accounts. Read-only.
- **Workflows.** Create, edit, pause, resume, delete and run recurring workflows, and read their run history.
- **Setup.** Create and set up a new account from a terminal or an AI assistant. See [Install the CLI](/docs/cli).
- **Preview.** Research a business's website with no account and no token, and hand the person a claim link. See [Preview a Plan Without an Account](/docs/preview).
- **Inbound webhooks.** Give any system a secret URL; each JSON POST hands Revnu the payload. See [Inbound Webhooks](/docs/webhooks).

## What it will not do

- No route sends an email you wrote or publishes a post you wrote.
- No outbound webhooks or event subscriptions. Poll [results](/docs/results), [leads](/docs/leads) or the [review queue](/docs/review-list) instead.
- No route creates leads in bulk. Hand Revnu a list as a [message](/docs/agent-messages) or a [webhook](/docs/webhooks) and it researches them.
- No provider tools: nothing exposes the mailbox, LinkedIn, ad or search accounts directly, and there are no settings writes.

The full comparison, including whether to build your own growth agent instead, is on [Build Your Own Growth Agent or Use Revnu?](/docs/api-cli-mcp-or-chat)

## Give your coding agent its own token

If Claude Code, Codex, Cursor or another coding agent will talk to Revnu for you, give it its own token rather than sharing yours. Two ways to get one:

- **`revnu login`** from the [CLI](/docs/cli). It opens a browser where you sign in and tick the permissions the token gets, then saves a token labelled "Revnu CLI", with the agent's name when an agent ran it. Connecting the [MCP server](/docs/mcp) does the same, labelled with the app's name.
- **Settings → Developers → API tokens** in the dashboard. Name it after the agent, such as `claude-code-laptop`, and pass it as `REVNU_API_TOKEN`.

Give it a token even if it can drive a browser. A coding agent that types into the dashboard chat is recorded as you: same name, all your permissions, no label, nothing to revoke on its own.

Tick only what the agent needs. To hand Revnu jobs and check on them, that is `agent:message` plus `results:read`. Add `review:read` if it should report what is waiting for you, and `leads:read` if it reads leads. Leave out `review:write` unless you want the agent approving and sending on your behalf.

The label is how you tell its work apart from yours. Revnu sees its messages as coming from `API token "<label>"`, and review actions it takes are logged against that label. To cut it off, revoke that one token; nothing else stops working. Scopes are fixed once a token is minted, so to change them, revoke it and mint a new one. More in [Authentication and Scopes](/docs/authentication).

Working on AI visibility? The fixes Revnu suggests are often site changes your coding agent can make. [AI Visibility](/docs/ai-visibility) covers what to hand it and what to ask Revnu.

## Where to start

1. [Quickstart](/docs/quickstart): from a fresh token to an approved card in ten minutes, with curl.
2. [Use From Your Coding Agent](/docs/coding-agent): connect Claude Code, Codex or Gemini CLI and hand Revnu jobs from your terminal.
3. [Sign Up From an Agent](/docs/agent-signup): "Set me up with revnu.com" creates and sets up an account from any assistant.
4. [Authentication and Scopes](/docs/authentication): how tokens work and the smallest scope set for each job.
5. [MCP Server Setup](/docs/mcp): add `https://revnu.com/api/mcp` to Claude, ChatGPT, Cursor or Claude Code. This is the full install page; the one-command versions on [revnu.com/mcp](/mcp) and the agent pages point back to it.
6. [Install the CLI](/docs/cli): `npx @revnu/cli setup` signs up and sets up a new account from a terminal.
7. [Content API](/docs/content-api): pull Revnu's blog posts into your own site.
8. [Install the Revnu Tag](/docs/revnu-tag) and [Send Events](/docs/event-api): measure outcomes for ads.

If you run the business rather than integrate it, the founder guides start at [Get Started](/docs/get-started).

## Frequently asked questions

### Does Revnu have an API?

Yes. A REST API at `https://revnu.com/api/v1` with personal tokens (`rvp_...`) minted in Settings → Developers, a CLI (`@revnu/cli`) and an MCP server at `https://revnu.com/api/mcp`. The OpenAPI document is at `https://revnu.com/openapi.json`.

### Can the API send email or publish on its own?

Every send and publish goes through Revnu's drafts and your approval. Approving a card ships what Revnu already drafted, under the same rules as the dashboard. A token without `review:write` cannot cause a send, a publish or a spend through the review queue.

### Can I call the API from a browser app?

Call it from your server side: a backend, a serverless function, a bot, or the CLI, with the token in an environment variable. The API sends no CORS headers, which keeps your token out of browser bundles, where it would be public.

### How do I give a coding agent access to Revnu?

Run `revnu login` from the CLI, connect the MCP server, or mint a token in Settings → Developers. Give it `agent:message` and the read scopes it reports from, and a label naming the agent so its actions are attributed to it.

### My coding agent can use the dashboard. Does it still need a token?

Yes. Messages typed into the dashboard chat are recorded as you. A token gives the agent its own label, only the scopes you tick, and a way to cut it off without touching your login.

### Does Revnu send webhooks when something happens?

Revnu's webhooks are inbound: your systems POST to Revnu. To react to replies, new leads or new cards, poll the matching route on a schedule.
