RankPine docs
API for AI agents

REST API overview

The RankPine REST API — programmatic access to keywords, articles, Search Console data, and generation, built for scripts and autonomous AI agents alike.

RankPine isn't just user-friendly — it's agent-friendly. Everything your dashboard can do with keywords, articles, and Search Console data is available over a plain REST API, and as an MCP server your AI agents can plug straight into.

  • Base URL: https://rankpine.com/api/v1
  • Format: JSON in, JSON out (snake_case fields)
  • Auth: API key as a bearer token
  • MCP endpoint: https://rankpine.com/api/mcp

Authentication

Create a key in Settings → API keys (any RankPine account). Keys look like rp_live_… and are shown once at creation — store them like passwords.

Pass the key on every request:

curl https://rankpine.com/api/v1/me \
  -H "Authorization: Bearer rp_live_your_key_here"
{
  "user": { "id": "usr_…", "email": "[email protected]" },
  "api_key": { "id": "…", "name": "Claude Code" },
  "sites": [
    {
      "id": "0d3f1c9a-…",
      "url": "https://yoursite.com",
      "name": "Your Site",
      "niche": "developer tools",
      "language": "en",
      "additional_languages": ["de", "es"],
      "geo": "global",
      "autopilot": true,
      "is_active": true,
      "created_at": "2026-05-02T09:12:00.000Z"
    }
  ],
  "subscription": { "status": "active", "site_count": 1, "interval": "month" }
}

A key can access every site its owner can access — call GET /v1/me or GET /v1/sites first to get site ids for the per-site endpoints.

Rate limits

WindowLimit
Per minute120 requests per key
Per day10,000 requests per key

Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset (unix seconds) for the per-minute window. Exceeding a limit returns 429 with a Retry-After header. Endpoints that run or enqueue AI work (suggest, generate) have tighter per-hour caps, documented on each endpoint.

Errors

Errors are JSON with a machine-readable code:

{
  "error": {
    "code": "quota_exceeded",
    "message": "This site has used all 30 articles for the current period (resets 2026-08-01T00:00:00.000Z)."
  }
}
StatusMeaning
400Malformed request — error.details lists the failing fields
401Missing, invalid, or revoked API key
403Key is valid but the action isn't allowed (quota, inactive site)
404Resource doesn't exist, or belongs to another account
429Rate limited — honor Retry-After
5xxOur fault — retry with backoff

Pagination

List endpoints take ?page= (default 1) and ?per_page= (default 20, max 100) and respond with the page envelope:

{ "data": ["…"], "page": 1, "per_page": 20, "total": 143 }

Async operations

Article and keyword generation is asynchronous — the endpoint returns 202 Accepted immediately and the work runs in RankPine's pipeline (a full article takes several minutes). Poll the corresponding list/detail endpoint for progress; the response's message field tells you exactly what to poll.

Endpoints at a glance

AreaEndpoints
AccountGET /me
SitesGET /sites · GET /sites/{site_id}
KeywordsGET, POST /sites/{site_id}/keywords · POST …/keywords/generate · POST …/keywords/suggest · POST …/keywords/bulk-delete · DELETE …/keywords/{id}
ArticlesGET /sites/{site_id}/articles · GET …/articles/{id} · POST …/articles/generate
Search ConsoleGET /sites/{site_id}/gsc · POST …/gsc/sync · GET …/gsc/performance · GET …/gsc/top-queries
BillingGET /subscription

Building with an AI agent? Skip the HTTP plumbing entirely and point it at the MCP server — the same capabilities as native tools.

On this page