Rank tracking
Rank tracking is a first-class Serplify feature with no DataForSEO equivalent.
Attach a track block to any SERP request and Serplify records a rank
snapshot for your target when the SERP completes. Query the history any time
via GET /v1/serp/track.
Record a snapshot
Section titled “Record a snapshot”Add track to a live search or
task request:
{ "keyword": "best running shoes", "location": { "code": 2840 }, "language": { "code": "en" }, "track": { "target": "nike.com", "label": "nike-brand" }}target— the domain/host to track (e.g.nike.com).https://,www., and any path are stripped for matching.label— optional grouping label (e.g. a project name).
track works with the standard and advanced formats. It cannot be combined
with format: "html" (raw HTML is never parsed, so there is no rank to
record) — that combination is rejected with 400 bad_request.
The synchronous response also includes the target’s rank inline:
"tracked_rank": { "target": "nike.com", "rank_absolute": 3, "rank_group": 1, "url": "https://www.nike.com/running", "found": true}When the target is not on the SERP, found is false and the ranks are null
— a snapshot is still recorded so gaps are visible in the history.
Query rank-over-time
Section titled “Query rank-over-time”GET /v1/serp/track returns your snapshots for a target, newest first.
curl "https://api.serplify.io/v1/serp/track?keyword=best%20running%20shoes&target=nike.com&location_code=2840&language_code=en&device=desktop" \ -H "Authorization: Bearer live_your_key_here"| Query param | Required | Notes |
|---|---|---|
keyword | yes | The tracked keyword. |
target | yes | The tracked domain/host. |
location_code | no | Filter by location. |
language_code | no | Filter by language. |
device | no | desktop or mobile. |
limit | no | Max snapshots (1–1000, default 100). |
{ "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0.02, "cost": 0, "currency": "USD" }, "data": { "keyword": "best running shoes", "target": "nike.com", "location_code": 2840, "language_code": "en", "device": "desktop", "snapshots": [ { "captured_at": "2026-07-02T12:00:00.000Z", "rank_absolute": 3, "rank_group": 1, "url": "https://www.nike.com/running" }, { "captured_at": "2026-07-01T12:00:00.000Z", "rank_absolute": 5, "rank_group": 2, "url": "https://www.nike.com/running" } ] }}Building a daily rank tracker
Section titled “Building a daily rank tracker”- Once a day, enqueue a task per keyword with
trackset. - Let webhooks or polling collect results — snapshots are written automatically.
- Chart the trend with
GET /v1/serp/track.
Querying history is free; you are only charged for the SERP requests that produce the snapshots.