company logo

Help center

Go to Rank Prompt
Powered by
All collectionsIntegrationsDeveloper API

Developer API

Use the Rank Prompt API to reach your brands, reports, citations, content and shares from your own code: keys, request limits, credits, webhooks and the MCP server.

The Developer API gives you the same data and actions you use in the app: run reports, read Visibility scores, fetch citations, generate and publish articles, manage shares and more. Use it to build your own dashboards, automate work or connect Rank Prompt to the tools you already use.

Every plan includes API access, Free included. Each account has one monthly request allowance set by its plan, shared by every key made in it. Endpoints that spend credits in the app (running a report, generating an article) spend the same credits over the API. For a bigger allowance there are standalone API plans.

Getting started

1. Create a key

  1. Open Settings, then API under Developers

  2. On the API keys tab, click Create key

  3. Give it a name (for example "Production server") and pick its scopes. You can also restrict it to one brand and give it an expiry date

  4. Copy the key. It is shown only once

2. Make your first request

curl https://api.rankprompt.com/v1/brands \
  -H "Authorization: Bearer rp_live_xxx"

The full reference is at rankprompt.com/docs/v1/.


Authentication

Every request carries the key as a Bearer token:

Authorization: Bearer rp_live_xxx

There are no cookies or sessions: every request must include the key.

  • Keep the key in an environment variable, never in source code

  • Use separate keys for development, staging and production

  • Rotate secret gives a key a new secret; Revoke turns it off for good. Both are on the API keys tab


Request limits

Every key has a burst limit of 120 requests a minute. Past it, the API answers 429 Too Many Requests; wait and retry.

The monthly allowance belongs to the account, not to the key: your keys and the keys your team members made in your account share one pool. Rotating a key never resets it.

Access

Requests a month

Credits

Free

1,000

10 welcome credits for most new accounts, then top-ups

Starter

10,000

Your plan credits

Pro

25,000

Your plan credits

Agency

50,000

Your plan credits

Agency Plus

100,000

Your plan credits

API Starter (standalone, $99 a month)

50,000

500 a month, added to your plan's

API Pro (standalone, $299 a month)

200,000

2,000 a month, added to your plan's

Over the monthly allowance, requests get 429 until the period resets or the pool grows.

On Free there are no monthly credits. Most new accounts get 10 welcome credits once, when they confirm their email, though not every signup qualifies; after that you top up before you run anything that costs credits. Audits, content (generating, handing over and publishing articles), publishing connections and webhooks need Starter or a standalone API plan. All six AI platforms run on every plan, Free included, and brand facts can be filled in by hand on any plan, which is enough to run a report.

Standalone API plans

Choose one on Plans > API plan. They are billed alongside your app plan. Upgrades apply at once (prorated); downgrades take effect at the end of the billing period. The included credits work like any other credits: reports, articles, audits and the rest.

Team accounts

A key a team member makes while working in your account acts in your account: it draws on your pool and your credits. When the pool runs out, their calls get 429 with a message that the account owner raises it. Only you can: in a team account the API plan tab names the owner of the pool instead of offering plans. A key a member makes in their own account uses their own pool.


What the API covers

Resource

What you can do

Brands

List and read your brands

Reports

Run reports and read their results

Citations

Fetch the citations behind your brands' answers

Shares

Create and manage share links

Jobs

Check long-running jobs

Exports

Export a brand's whole citation and answer history to files

Scheduled Reports

List and manage Scheduled Reports, and copy one into another brand you edit

Places and markets

The brand's real places (add, import from Business Profile or a CSV, archive) and each report's markets (add cities or places, pause, archive)

Content

Generate articles, hand over ones you wrote, and run the client review loop

CMS connections

Connect WordPress sites, list every connected destination (WordPress, Ghost, Shopify, Webflow, Wix, a webhook) and publish articles to them

Exporting a brand's whole history

When you need every citation or every answer of a brand, ask for an export instead of paging through the lists. POST /v1/brands/{brand_id}/exports starts it and answers right away with its id; GET /v1/brands/{brand_id}/exports/{export_id} tells you its progress and, once it is done, gives a download link per file: gzipped NDJSON, one line per citation or per answer. Links work for 15 minutes (read the export again for fresh ones) and the files are kept for 24 hours. One export per brand runs at a time: asking again while it runs returns it. Exports are free on every plan; the citations file needs the read:citations scope. The MCP server has the same export, and in the app the Sources Citations and Domains tables have Export history.

Publishing to WordPress over the API

The whole content flow runs over the API:

  1. POST /v1/brands/{brand_id}/cms-connections: connect the WordPress site once (site URL, username and a WordPress application password). The credentials are checked against the live site before anything is stored, and stored encrypted.

  2. POST /v1/brands/{brand_id}/content-briefs/generations: queue an article. It returns a job_id at once; poll GET /v1/jobs/{job_id} until it completes. POST /v1/brands/{brand_id}/content-briefs/manual hands over an article you wrote yourself, for free.

  3. PUT /v1/brands/{brand_id}/content-briefs/{brief_id}/review/share (optional): a link your client opens without an account to comment and approve.

  4. POST /v1/brands/{brand_id}/content-briefs/{brief_id}/publish with target_type: cms_connection. Publishing the same article to the same site again updates the post instead of making a copy.

POST /v1/brands/{brand_id}/cms-connections/{connection_id}/checks checks stored credentials without publishing, useful before a batch.


Webhooks

Instead of polling, get a signed HTTPS callback, or a Slack or Discord message, the moment something happens. On the API page, open Webhooks, keep Brand under Webhooks for, pick the brand and click New webhook:

  • Send as: Signed JSON posts the event itself, for your own server or Zapier, Make or n8n. Slack takes a Slack app's incoming webhook URL (https://hooks.slack.com/services/...) and Discord a channel's webhook URL (https://discord.com/api/webhooks/...); each event then arrives as a readable message with a link to open it

  • Events:

Event

When it fires

report.completed

A report finished running, once per market of each run (with the report's tracker_id, run_id and market_id)

report.failed

A report run errored out in a market

schedule.run.completed

A scheduled run finished

schedule.run.failed

A scheduled run errored out

article.published

An article went live on one of the brand's publishing destinations

article.updated

A live article was sent again, with its changes

article.unpublished

An article was taken down from a destination

  • Send a custom header (Signed JSON only): a header name and value sent with every delivery, for catch hooks that check one. The signature header is sent too. The value is stored encrypted and not shown again

What an article event carries

The whole article, so the receiver can publish it without calling back: brief_id, version (changes whenever the content does), title, slug, locale, html, markdown, meta (description, seo_title, focus_keyword), tags, featured_image and images (each with url and alt), json_ld (the article's structured data), brand (id, name, website), canonical_url (where it first went live, when that is elsewhere), published_url and published_at, post_id (the destination's id for the post) and destination (type, id, provider, url).

Testing

Send test sends a sample of one of the endpoint's events right away, signed like a real delivery and marked "test": true, with an event id that starts with evt_test_. You see the answer on the spot: the HTTP status and how long it took, or why nothing answered. Article samples carry the brand's newest article, so a no-code tool can map real fields. Tests show in the delivery log as tests and never count toward the failures that turn an endpoint off. Up to 10 tests a minute.

Signatures, retries and the delivery log

Every request carries X-RP-Signature: t=<timestamp>,v1=<hmac>: an HMAC-SHA256 of <timestamp>.<body> with the endpoint's signing secret. After Rotate secret the old secret keeps verifying for 24 hours as v0, so nothing drops while you deploy. X-RP-Event, X-RP-Event-Id and X-RP-Delivery-Id say what arrived.

A failed delivery is retried after 30 seconds, 2 minutes, 10 minutes, 1 hour, 6 hours and 24 hours. An endpoint that keeps failing is turned off and you get a notification; Enable turns it back on. Expand an endpoint for its delivery log (status, attempt, response, time), newest first, with Replay on any row. A replay keeps the event id and the body of the first delivery, with a new X-RP-Delivery-Id, so a receiver that removes duplicates by event id treats it as the same event.

Up to 5 active endpoints per brand. Creating or changing a brand webhook takes Starter or a standalone API plan; reading and deleting never do. On Agency Plus the same tab has an Account option for your lead widget's events: see Leads and webhooks.

A webhook as a place to publish

In Integrations > Publish content, More platforms also connects a webhook as a publishing destination, next to Ghost, Shopify, Webflow and Wix. See Publish to any tool with a webhook.


MCP server

Claude Code, Cursor and any other MCP client can connect to your account through the hosted Rank Prompt MCP server, to read your reports and run new ones for you. MCP under Developers in Settings has the one-line install command, the config for other clients and example prompts. Clients sign in with OAuth, which creates one scoped MCP key on your account; revoke it anytime on the API page. Its calls count against your request allowance and credits, and Free accounts can connect too. See Connect Claude Code.


Keys and usage

The API keys tab lists every key with its name, brand scope, scopes, when it was created, when it expires, when it was last used and its status. Each key inherits your account's brand permissions and can be narrowed with scopes and a single brand.

Your team's keys

If you have team members, the same tab lists the keys they made to act in your account: the member, the prefix, the request units it drew from your pool this month (free calls such as GET /v1/me spend none), when it was last used and its state. A key whose member no longer holds a seat stops working, and a member who left is marked as a former member. Revoke any of them with a reason, without removing the member: the key stops working at once and the member sees your reason. Keys also end on their own when a member leaves.

Usage

The Overview tab shows the requests every key in the account used this period, what is left, the rate limit and recent activity. Over the API, GET /v1/me/usage returns the same numbers for a date range; add account_id to count only the calls made in one account.


FAQ

Do I need a paid plan to use the API?

No. Every plan includes API access, Free included, with a monthly allowance set by the plan. For a bigger allowance and monthly credits, add a standalone API plan.

Can I use the API from Claude Code?

Yes. Connect the MCP server or install the Rank Prompt skill: see Connect Claude Code.

Are API keys limited to one brand?

Only if you want. A key reaches every brand your account can reach, and scopes limit what it can do. When you create it you can restrict it to a single brand, for example to hand it to one client.

What happens when I run out of requests?

Requests over your monthly allowance get 429 until the period resets. Upgrade your plan or add an API plan to get more. In a team account the pool is the owner's, so the owner raises it.

Can I get a refund for an API plan?

The refund policy is the same as for every plan: see Plans and subscription.


Next steps

  • API reference: every endpoint, schema and example

  • Connect Claude Code: use Rank Prompt from Claude Code

  • Credit usage: where your credits go


Questions?

Email [email protected] and I'll help.

Did this answer your question?
😞
😐
😁