Skip to content

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.

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.

GET /v1/serp/track returns your snapshots for a target, newest first.

Terminal window
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 paramRequiredNotes
keywordyesThe tracked keyword.
targetyesThe tracked domain/host.
location_codenoFilter by location.
language_codenoFilter by language.
devicenodesktop or mobile.
limitnoMax 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" }
]
}
}
  1. Once a day, enqueue a task per keyword with track set.
  2. Let webhooks or polling collect results — snapshots are written automatically.
  3. Chart the trend with GET /v1/serp/track.

Querying history is free; you are only charged for the SERP requests that produce the snapshots.