RankSharkDocs

Getting started

Turn on RankShark API access, copy your Track or Enhance key and make your first request in curl, JavaScript or Python in a few minutes.

RankShark has two products, and each has its own REST API, MCP server and keys:

RankShark TrackRankShark Enhance
What it doesLocal rank tracking and AI visibilityWebsite traffic campaigns
REST APIhttps://panel.rankshark.io/v1/trackhttps://panel.rankshark.io/api/v1
MCP serverhttps://panel.rankshark.io/mcp/trackhttps://panel.rankshark.io/mcp
Keys start withrstk_rsen_

A Track key only works on Track, and an Enhance key only works on Enhance. If you use both products, turn on API access for each one.

Before you start

  • Who can do it. The workspace owner or a manager. Viewers cannot see keys.
  • Which plans. API access comes with paid plans. On Track Starter the API is read-only: you can read campaigns, scans and reports, but not change them or run scans. Track Pro and up can do everything. See plans with API access.

1. Turn on API access

Sign in to the panel.

Open Settings, then API & MCP.

Switch on API & MCP Access for the product. Your workspace gets its API key straight away.

2. Copy your key

Under API key, click Show, then Copy. A Track key starts with rstk_, an Enhance key with rsen_:

rstk_k3m7q2xv5a_••••••••••••••••••••••••••••••••••••••••••

Store it where your code can read it, for example in an environment variable:

export RANKSHARK_TRACK_KEY="rstk_…"

Anyone with the key can use your workspace, so keep it out of your code, your repository and your browser, and send it only in the Authorization header, never in a URL. If a key leaks, click Regenerate: the old key stops working at once. See how to keep your key safe.

One key per product

Your workspace has one key for each product, with every permission your plan allows. To give an app only some permissions, connect it with OAuth instead: you choose what it can do when you approve it.

3. Make your first request

Send the key as a Bearer token. This call shows how many Track points you have used this month:

curl https://panel.rankshark.io/v1/track/usage \
  -H "Authorization: Bearer $RANKSHARK_TRACK_KEY"

The answer:

{
  "month": "2026-11",
  "used": 3528,
  "limit": 50000,
  "monthLeft": 46472,
  "topup": {
    "balance": 2000,
    "nextExpiresAt": "2027-05-01T00:00:00.000Z",
    "nextExpiringPoints": 2000
  },
  "left": 48472,
  "limits": {
    "maxPoints": 225,
    "maxTrackers": 60,
    "keywordsPerTracker": 10,
    "monthlyPoints": 50000,
    "search": true,
    "ai": true,
    "aiMaxPoints": 49,
    "aiPointCost": 5,
    "daily": true,
    "schedules": true,
    "historyDays": null,
    "engines": null,
    "aiEngines": null,
    "allAiEngines": [
      "ai_mode",
      "ai_overview",
      "gemini",
      "chatgpt",
      "perplexity"
    ],
    "pointCost": null
  }
}

left is everything you can still scan this month: the month's points left plus bought points (topup). limits are your plan's limits.

For Enhance, try the status call with your Enhance key:

curl https://panel.rankshark.io/api/v1/status \
  -H "Authorization: Bearer $RANKSHARK_ENHANCE_KEY"
{
  "subscription": {
    "active": true
  },
  "engine": {
    "running": true
  }
}

Requests and answers

  • Base URL: https://panel.rankshark.io. Every path in these docs starts there.
  • Format: send JSON with Content-Type: application/json. Answers are JSON, except CSV and PDF downloads.
  • Times are ISO 8601 in UTC, for example 2026-11-05T14:03:11Z.
  • Ids start with what they are. In Track: campaigns gt_…, scans gs_…, businesses tc_…, saved reports rp_….
  • Errors come with an HTTP status and a short code. See Errors.

Next steps

On this page