Documentation Python quickstart Blog Free tools Enterprise solutions hello@quanticdata.ioLog in

SERP API · Rank tracking

Rank tracking API

Where a domain ranks for a keyword, from the city and device you choose: one SERP API call returns the top results as JSON, and your position is the rank of your domain in that list. Google, Bing and DuckDuckGo, $0.0009 per search from the plain page.

Rank tracking with the SERP API: hiking boots searched on Google from Denver, Colorado on mobile, the results page in the middle with a rank on every row and haixusa.com at position 2, and the row to store with query, location, device, rank and source. Plain page, as the answer says: $0.0009 per search.
Rank tracking by city and device: every result carries its rank, and you store one row per check.

How it works

Search, then find your domain.

A rank tracker needs three things from a search: the right place, the right device and enough results to find you. The SERP API takes location (a city or coordinates), device (desktop or mobile) and num, and returns the organic results with their rank, link and domain.

{
  "query": "hiking boots",
  "location": "Denver, Colorado",
  "device": "mobile",
  "search_metadata": {
    "path": "http",
    "total_time_taken": 4.16
  },
  "organic": [
    {
      "rank": 1,
      "source": "rei.com",
      "link": "https://www.rei.com/c/hiking-boots"
    },
    {
      "rank": 2,
      "source": "haixusa.com",
      "link": "https://www.haixusa.com/hiking-boots/?srsltid=AYCX9vIcuNkJR9iUgUkIzcMo3oOnTznLHhGyZcG2H…"
    }
  ]
}
Real answer for "hiking boots" searched from Denver, Colorado on mobile, 30 October 2026 (first two results).

Example

100 keywords, three countries, one script.

import requests

KEYWORDS = ["hiking boots", "trail running shoes"]   # up to as many as you track
DOMAIN = "example.com"
for country in ["us", "gb", "de"]:
    for kw in KEYWORDS:
        r = requests.post("https://api.quanticdata.io/v1/scraper/serp",
            headers={"Authorization": "Bearer YOUR_API_KEY"},
            json={"query": kw, "country": country, "device": "mobile", "num": 100})
        organic = r.json()["payload"]["organic"]
        pos = next((o["rank"] for o in organic if DOMAIN in o["link"]), None)
        print(country, kw, pos)
Python: position of one domain for each keyword and country

For many keywords at once, send them as one job to /v1/serp/bulk and collect the results when it is done. To schedule it without code, the n8n node and the MCP server run the same call.

Location and device

Rankings change by city and by phone.

Parameters that make a ranking local
ParameterWhat it does
locationHuman-readable place ("Denver, Colorado"), encoded server-side; or uule with lat,lon
countryMarket and proxy exit (gl)
devicedesktop, mobile, ios, android: the results page a phone gets
numResults to read (up to 100), so you find positions beyond the first page
enginegoogle, bing, duckduckgo

Cost

What tracking costs, at list price.

Daily cost at $0.0009 per search (plain page)
Keywords tracked dailySearches a monthCost a month
1003,000$2.70
1,00030,000$27.00
10,000300,000$270.00

One search per keyword per day, one country and device; multiply by the countries and devices you track. Searches that need the rendered page cost $0.002. The $2 monthly free credit covers the first 2,200 or so plain searches. No subscription, failed searches not billed.

Before you build it

Questions developers ask

How do I track rankings in a specific city?

Send location with the city name, or uule with coordinates; the results are those a person searching there would see.

Can I track mobile rankings?

Yes: device mobile (or ios, android) returns the results page a phone gets.

How deep can I look?

Up to 100 results per search with num; the position is the rank of your domain in that list.

Does it track Bing too?

Yes, set engine to bing or duckduckgo; Bing matters because ChatGPT draws on its index.

Is there a free tier?

The $2 monthly free credit covers the first searches; then $0.0009 per search from the plain page.

Track your first keywords today.

Create an API key, run the script above and log positions daily. $0.0009 per search, no subscription.