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 Track | RankShark Enhance | |
|---|---|---|
| What it does | Local rank tracking and AI visibility | Website traffic campaigns |
| REST API | https://panel.rankshark.io/v1/track | https://panel.rankshark.io/api/v1 |
| MCP server | https://panel.rankshark.io/mcp/track | https://panel.rankshark.io/mcp |
| Keys start with | rstk_ | 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_…, scansgs_…, businessestc_…, saved reportsrp_…. - Errors come with an HTTP status and a short code. See Errors.