Get a scan
RankShark TrackScopetrack:read
Every grid point (rank, organic rank, the listings seen in order), the listings, the metrics, the competitors and, for AI scans, aiMetrics and brands. Live while the scan runs.
Scope: track:read.
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
id*stringScan id (gs_…). A malformed id is 404 not_found.
^gs_[A-Za-z0-9]{10,40}$OK
application/json- response
id*stringgs_…
keyword*stringengine*stringThe scan's engine: maps, search (the Google results page: local pack and web results), bing_maps, bing_search, or an AI engine
mode?stringwebsite: a website campaign's scan, or a web search at the campaign's location (one point)
"grid""website"status*string"queued""waiting""running""done""failed""cancelled"trigger?string"manual""schedule"createdAt?|date-timestartedAt?|null until the first point
date-timefinishedAt?|null until finished
date-timeprogress?metrics?|nullorganicMetrics?|Search engines: the website's organic rank
aiMetrics?|AI scans (without sources here)
error*|Why the scan failed, in plain words (null: it did not)
note?|What the scan is waiting for (null: nothing)
grid?|nullsuspect*booleanResults may be unreliable (part of the scan's results were not for the grid points' locations): left out of trends, comparisons and reports
warning?|Suspect scans: what to tell the reader
wait?campaignId?|The campaign (gt_…)
trackerId?|The campaign (gt_…; same as campaignId)
center?|nullzoom?integer|nulllocation?|Website scans: the location
language?stringcountry?stringipArea?|Where the searches came from
target?|nullpoints*array<>places*The listings seen, by key
competitors*array<>brands?array<>AI scans
curl -X GET 'https://panel.rankshark.io/v1/track/scans/gs_3Hq7Vt2NwR8cYp'{ "id": "gs_3Hq7Vt2NwR8cYp", "keyword": "dentist near me", "engine": "maps", "mode": "grid", "status": "done", "trigger": "schedule", "createdAt": "2026-11-02T15:00:04.000Z", "startedAt": "2026-11-02T15:00:31.000Z", "finishedAt": "2026-11-02T15:06:12.000Z", "progress": { "done": 49, "failed": 0, "total": 49 }, "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, "error": null, "note": null, "grid": { "size": 7, "radiusM": 4828, "shape": "square", "unit": "mi" }, "suspect": false, "campaignId": "gt_8fK2mQ9xLp3s", "trackerId": "gt_8fK2mQ9xLp3s", "center": { "lat": 30.2509, "lng": -97.7493 }, "zoom": 13, "language": "en", "country": "us", "ipArea": "austin, texas, US", "target": { "name": "Harbor Dental", "domain": "harbordental.example", "fid": "0x8644b50a3e3c0b1d:0x6a8d1e2f3c4b5a69", "pid": "ChIJd8BlQ2BZwokRAFUEcm_qrcA", "key": "0x6a8d1e2f3c4b5a69", "phone": "+1 512-555-0142" }, "points": [ { "i": 0, "row": 0, "col": 0, "lat": 30.2943, "lng": -97.7995, "st": "ok", "rank": 3, "ids": [ "0x3b8a1f0c2d9e4a17", "0x1c2d3e4f5a6b7c8d", "0x6a8d1e2f3c4b5a69" ], "depth": 20 }, { "i": 1, "row": 0, "col": 1, "lat": 30.2943, "lng": -97.7828, "st": "ok", "rank": 2, "ids": [ "0x3b8a1f0c2d9e4a17", "0x6a8d1e2f3c4b5a69", "0x1c2d3e4f5a6b7c8d" ], "depth": 20 }, { "i": 24, "row": 3, "col": 3, "lat": 30.2509, "lng": -97.7493, "st": "ok", "rank": 1, "ids": [ "0x6a8d1e2f3c4b5a69", "0x3b8a1f0c2d9e4a17", "0x1c2d3e4f5a6b7c8d" ], "depth": 20 }, { "i": 48, "row": 6, "col": 6, "lat": 30.2075, "lng": -97.6991, "st": "ok", "rank": null, "ids": [ "0x3b8a1f0c2d9e4a17", "0x1c2d3e4f5a6b7c8d" ], "depth": 20 } ], "places": { "0x6a8d1e2f3c4b5a69": { "name": "Harbor Dental", "category": "Dentist", "rating": 4.8, "reviews": 312, "address": "1200 S Congress Ave, Austin, TX 78704", "lat": 30.2509, "lng": -97.7493, "fid": "0x8644b50a3e3c0b1d:0x6a8d1e2f3c4b5a69", "pid": "ChIJd8BlQ2BZwokRAFUEcm_qrcA" }, "0x3b8a1f0c2d9e4a17": { "name": "Bluebonnet Family Dentistry", "category": "Dentist", "rating": 4.6, "reviews": 198, "address": "815 W 6th St, Austin, TX 78703", "lat": 30.2716, "lng": -97.7529, "fid": "0x8644b5a1c2d3e4f5:0x3b8a1f0c2d9e4a17", "pid": null }, "0x1c2d3e4f5a6b7c8d": { "name": "Lakeline Smiles", "category": "Cosmetic dentist", "rating": 4.9, "reviews": 87, "address": "2300 S Lamar Blvd, Austin, TX 78704", "lat": 30.2468, "lng": -97.7801, "fid": "0x8644b4c3d2e1f0a9:0x1c2d3e4f5a6b7c8d", "pid": null } }, "competitors": [ { "key": "0x6a8d1e2f3c4b5a69", "name": "Harbor Dental", "category": "Dentist", "rating": 4.8, "reviews": 312, "address": "1200 S Congress Ave, Austin, TX 78704", "lat": 30.2509, "lng": -97.7493, "fid": "0x8644b50a3e3c0b1d:0x6a8d1e2f3c4b5a69", "pid": "ChIJd8BlQ2BZwokRAFUEcm_qrcA", "appearances": 44, "arp": 4.18, "atrp": 5.9, "solv": 55.1, "top3": 27, "best": 1, "isTarget": true }, { "key": "0x3b8a1f0c2d9e4a17", "name": "Bluebonnet Family Dentistry", "category": "Dentist", "rating": 4.6, "reviews": 198, "address": "815 W 6th St, Austin, TX 78703", "lat": 30.2716, "lng": -97.7529, "fid": "0x8644b5a1c2d3e4f5:0x3b8a1f0c2d9e4a17", "pid": null, "appearances": 46, "arp": 3.61, "atrp": 4.67, "solv": 61.22, "top3": 30, "best": 1, "isTarget": false }, { "key": "0x1c2d3e4f5a6b7c8d", "name": "Lakeline Smiles", "category": "Cosmetic dentist", "rating": 4.9, "reviews": 87, "address": "2300 S Lamar Blvd, Austin, TX 78704", "lat": 30.2468, "lng": -97.7801, "fid": "0x8644b4c3d2e1f0a9:0x1c2d3e4f5a6b7c8d", "pid": null, "appearances": 31, "arp": 6.4, "atrp": 11.78, "solv": 18.37, "top3": 9, "best": 2, "isTarget": false } ]}