Campaigns
List campaigns
RankShark TrackScopetrack:read
GET
Every campaign with its latest result per keyword (and engine) and its running scans (active).
Scope: track:read.
header
AuthorizationBearer <rstk_… API key or OAuth access token>A Track API key (rstk_…, Settings → API & MCP) or an OAuth access token issued for this API
clientId?stringOnly this business's campaigns (tc_…)
Match
^tc_[A-Za-z0-9]{10,40}$OK
application/json- response
[index: integer]?curl -X GET 'https://panel.rankshark.io/v1/track/campaigns'Example Response
[ { "id": "gt_8fK2mQ9xLp3s", "name": "Harbor Dental · Austin", "mode": "grid", "location": null, "business": { "name": "Harbor Dental", "address": "1200 S Congress Ave, Austin, TX 78704", "category": "Dentist", "lat": 30.2509, "lng": -97.7493, "fid": "0x8644b50a3e3c0b1d:0x6a8d1e2f3c4b5a69", "pid": "ChIJd8BlQ2BZwokRAFUEcm_qrcA", "cid": "7677826127960431209", "website": "https://harbordental.example", "phone": "+1 512-555-0142", "mapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJd8BlQ2BZwokRAFUEcm_qrcA", "rating": 4.8, "reviews": 312 }, "keywords": [ "dentist near me", "emergency dentist", "teeth whitening austin" ], "engine": "maps", "engines": [ "maps" ], "webGrid": false, "grid": { "size": 7, "radiusM": 4828, "shape": "square", "unit": "mi" }, "center": { "lat": 30.2509, "lng": -97.7493 }, "points": 49, "aiEngines": null, "aliases": null, "aiGrid": null, "zoom": null, "language": "en", "country": "us", "ipLocation": { "country": "us", "region": "texas", "city": "austin" }, "domain": "harbordental.example", "page": null, "schedule": { "freq": "weekly", "hour": 9, "dow": 1, "dom": 1, "tz": "America/Chicago" }, "nextRunAt": "2026-11-09T15:00:00.000Z", "lastRunAt": "2026-11-02T15:00:04.000Z", "paused": false, "clientId": "tc_5Rw8Jn3Ys2QeLk", "folder": "Austin", "lastScheduleError": null, "latest": [ { "keyword": "dentist near me", "engine": "maps", "scanId": "gs_3Hq7Vt2NwR8cYp", "finishedAt": "2026-11-02T15:06:12.000Z", "metrics": { "points": 49, "total": 49, "found": 44, "foundPct": 89.8, "top3": 27, "top10": 39, "arp": 4.18, "atrp": 5.9, "solv": 55.1 }, "prev": { "points": 49, "total": 49, "found": 40, "foundPct": 81.63, "top3": 21, "top10": 33, "arp": 5.02, "atrp": 7.71, "solv": 42.86 }, "delta": { "arp": 0.84, "atrp": 1.81, "solv": 12.24, "foundPct": 8.17 } } ], "createdAt": "2026-09-14T18:22:10.000Z", "updatedAt": "2026-11-02T15:06:12.000Z", "active": [ { "id": "gs_4Pz8Qw2Er6TyUi", "keyword": "emergency dentist", "engine": "maps", "mode": "grid", "status": "running", "trigger": "manual", "createdAt": "2026-11-05T10:12:40.000Z", "startedAt": "2026-11-05T10:13:02.000Z", "finishedAt": null, "progress": { "done": 18, "failed": 0, "total": 49 }, "metrics": null, "organicMetrics": null, "error": null, "note": null, "grid": { "size": 7, "radiusM": 4828, "shape": "square", "unit": "mi" }, "suspect": false, "wait": { "ahead": 0, "startsInMin": 0, "minutesLeft": 4 } } ] }]Get a campaign GET
Scope: `track:read`.
Run a scan now POST
One scan per keyword and engine (all keywords when none are given); an AI campaign asks each prompt on each of its AI engines. Spends points; refused with 409 quota when the month's points and the bought points would run out, 409 already_running when the keywords asked are scanning already. Scope: `track:run`.