Skip to main content
The External API gives you programmatic access to your own campaigns — visibility scores, prompts and the AI answers behind them, brand sentiment, and traffic. It’s the same data you see in the app, in JSON. Reads only, with one exception: Create prompts adds tracked prompts to a campaign. Included on every plan.

Prefer to ask questions instead of writing requests?

The same data is available over MCP, so Claude, Cursor or any other MCP client can query your campaigns directly.

Authentication

Requests are authenticated with a personal API key sent as a bearer token.
1

Create a key

In the app, go to Settings → API and choose Create key. Give it a name you’ll recognise later — Looker Studio, nightly-export — because the name is all you’ll have to go on when deciding what to revoke.
2

Copy it once

The full key is shown only once, right after creation. Store it somewhere safe. You can’t view it again, only revoke it and create another.
3

Send it as a bearer token

Requests without a valid key return 401 Unauthorized. A key only ever reaches campaigns owned by the user who created it.
Keys are not read-only. A key can create prompts, through this API and through the MCP server. Treat one like a password: keep it out of client-side code and public repositories, and revoke anything you no longer recognise. Revocation takes effect immediately.

Base URL

Your exact base URL is shown on the Settings → API tab — copy it from there rather than typing it.

Conventions

Campaigns are addressed by uuid. Start from GET /campaigns to get them. Requesting a campaign you don’t own returns 404, not 403 — the API deliberately doesn’t confirm whether someone else’s campaign exists. Response envelope. Every response wraps its payload in a data key, with links and meta added on paginated lists:
Pagination. List endpoints accept page and per_page — default 25, maximum 100. Date filters. Where supported, from and to take ISO dates (YYYY-MM-DD). Rate limits. Two throttles apply in order: Exceeding either returns 429 Too Many Requests. Rate limits are the same on every plan.

Errors

Errors are always returned as JSON.

A first request

Full details for every endpoint are in the endpoint reference.