Outrank REST API

Drive your Outrank organization programmatically — manage products, keywords, and articles from your own tooling or from an AI coding agent.

Base URL

All requests are made against:

https://outrank.so/api/agent/v1

Endpoints below are written relative to this base URL — for example, GET /products means GET https://outrank.so/api/agent/v1/products.

Authentication

Every request must include an Authorization header with your API key as a bearer token. Keys are scoped to a single organization and use the prefix outr_live_.

Authorization: Bearer outr_live_your_api_key_here

Requests without a valid, non-revoked, non-expired key return 401 Unauthorized.

Quickstart

Once you have a key, the fastest way to confirm it works is to call the /auth/whoami endpoint:

curl https://outrank.so/api/agent/v1/auth/whoami \
  -H "Authorization: Bearer outr_live_your_api_key_here"

A successful response returns the user, organization, and remaining article credits associated with the key.

Rate limits

Each API key is rate-limited per minute and per day:

  • 120 requests per minute per API key.
  • 10,000 requests per day per API key.

Every response includes X-RateLimit-* headers so you can track remaining quota. Once a limit is exceeded, the API returns 429 Too Many Requests with a Retry-After header indicating how long to wait.

Endpoints

The API is organised into the groups below. Each endpoint accepts and returns JSON, and all writes are scoped to the organization that owns the API key.

Auth

Verify the key and inspect the organization it belongs to.

  • GET /auth/whoami

Products

List, create, read, update, pause, and resume the websites in your organization.

  • GET /products
  • POST /products
  • GET /products/{id}
  • PATCH /products/{id}
  • POST /products/{id}/pause
  • POST /products/{id}/resume

Keywords

Generate, list, schedule, and bulk-manage keywords for any product.

  • GET /keywords
  • POST /keywords/generate
  • POST /keywords/suggest
  • POST /keywords/bulk-process
  • POST /keywords/bulk-reschedule
  • POST /keywords/bulk-delete
  • GET /keywords/export

Articles

Generate, fetch, replace, and retry-publish articles.

  • GET /articles
  • POST /articles/precreate
  • POST /articles/generate
  • GET /articles/{id}
  • GET /articles/{id}/content
  • POST /articles/{id}/replace
  • POST /articles/{id}/retry-publish
  • POST /articles/bulk-replace

Search Console (GSC)

Connect Google Search Console to a product and read its performance data.

  • GET /products/{id}/gsc
  • POST /products/{id}/gsc/connect
  • GET /products/{id}/gsc/performance
  • GET /products/{id}/gsc/cannibalization
  • POST /products/{id}/gsc/url-inspection

Billing & Usage

Check subscription status, usage stats, and open the Stripe billing portal.

  • GET /subscription/status
  • GET /usage/stats
  • GET /billing/portal-url
  • POST /billing/purchase-products

Errors

Errors are returned as JSON with an error object describing the failure. Common status codes:

  • 400 — invalid request body or query parameters.
  • 401 — missing, malformed, expired, or revoked API key.
  • 403 — the key's organization is not on a supported plan or lacks access to the resource.
  • 404 — the requested resource does not exist or belongs to another organization.
  • 429 — rate limit exceeded; honor the Retry-After header.
  • 5xx — transient server error; safe to retry idempotent calls with backoff.

Using the API from an AI agent

If you want a coding agent (Claude Code, Cursor, etc.) to drive Outrank for you, install the official CLI and point it at your API key:

npm install -g outrank-cli
export OUTRANK_API_KEY=outr_live_your_api_key_here
outrank-cli --help

The CLI wraps every endpoint listed above and is published on npm as outrank-cli.

background

Let's Try!

Start creating magic today with a free trial!