RankSharkDocs
Scans

Compare a scan with an earlier one

RankShark TrackScopetrack:read

GET
/v1/track/scans/{id}/compare

Metric changes (positive = better), point movements on the same grid, competitors then and now. Suspect scans are not compared (change null).

Scope: track:read.

Authorization

headerAuthorizationBearer <rstk_… API key or OAuth access token>

A Track API key (rstk_…, Settings → API & MCP) or an OAuth access token issued for this API

Path Parameters

id*string

Scan id (gs_…). A malformed id is 404 not_found.

Match^gs_[A-Za-z0-9]{10,40}$

Query Parameters

base?string

The scan to compare with (gs_…; default: the previous finished scan of the same keyword and engine)

Match^gs_[A-Za-z0-9]{10,40}$

Response Body

OK

application/json
  1. response
scan*
base*|

null: there is no earlier finished scan

note?string

Why there is nothing (or less) to compare

sameKeyword?boolean
change?|

Metric changes, positive = better (null: a suspect scan)

organicChange?|null
points?|

null: the grids differ (or a suspect scan)

pointsNote?string
competitors?array<>
ai?
Example Request
curl -X GET 'https://panel.rankshark.io/v1/track/scans/gs_3Hq7Vt2NwR8cYp/compare'
Example Response
{  "scan": {    "id": "gs_3Hq7Vt2NwR8cYp",    "keyword": "dentist near me",    "engine": "maps",    "mode": "grid",    "status": "done",    "finishedAt": "2026-11-02T15:06:12.000Z",    "suspect": false,    "metrics": {      "points": 49,      "total": 49,      "found": 44,      "foundPct": 89.8,      "top3": 27,      "top10": 39,      "arp": 4.18,      "atrp": 5.9,      "solv": 55.1    },    "organicMetrics": null  },  "base": {    "id": "gs_9Lm4Kd6PzX1aQe",    "keyword": "dentist near me",    "engine": "maps",    "mode": "grid",    "status": "done",    "finishedAt": "2026-10-26T15:05:51.000Z",    "suspect": false,    "metrics": {      "points": 49,      "total": 49,      "found": 40,      "foundPct": 81.63,      "top3": 21,      "top10": 33,      "arp": 5.02,      "atrp": 7.71,      "solv": 42.86    },    "organicMetrics": null  },  "sameKeyword": true,  "change": {    "arp": 0.84,    "atrp": 1.81,    "solv": 12.24,    "foundPct": 8.17  },  "organicChange": null,  "points": {    "improved": 14,    "declined": 3,    "same": 32,    "newlyFound": 4,    "lost": 0,    "compared": 49  },  "competitors": [    {      "key": "0x3b8a1f0c2d9e4a17",      "name": "Bluebonnet Family Dentistry",      "isTarget": false,      "atrp": 4.67,      "solv": 61.22,      "atrpBefore": 4.2,      "solvBefore": 65.31    }  ]}