No KYC — no ID, no selfie, no documents. Pay in crypto: BTC, USDT, USDC, ETH, SOL, LTC
Language: English
Get an API key

Use case · SEO · as of October 2026

Rank tracking API: how many searches you need, and what they cost

Since Google dropped num=100, the cost of rank tracking depends on how deep you look. This page gives the formula, ready-made budgets and code that stops paging as soon as it finds your domain.

Last updated: · 7 min read

Quick answer

How many API searches does rank tracking need, and what does it cost?

Searches per month = keywords × pages checked × checks per month × locations × devices. A daily top-10 check of 1,000 keywords is 30,000 searches a month; a daily top-100 check is 300,000, because Google now serves about 10 results per page. With SerpCrypto, a no-KYC SERP API paid in crypto, 100,000 searches cost $56.25 and credits never expire (October 2026).

Rank tracking with SerpCrypto: the numbers

Cost of one check1 credit per results page; About 10 organic results per page, as Google has served since it stopped honouring num=100 in September 2025; each extra page is one more credit
Price per 1,000 searches$0.75/1K searches at 10,000 searches, $0.56/1K searches at 100,000 searches, $0.38/1K searches at 1,000,000 searches
Failed searchesNot charged
TargetingCountry (gl), language (hl), Google domain and a city-level location string, on desktop or mobile
Extra signals in the same creditAI Overview citations, People Also Ask, local pack, ads, top stories
Credit expiryPrepaid search credits never expire: unused searches stay on your account until you use them

How do I calculate the searches my rank tracker needs?

Multiply five numbers: keywords, results pages per keyword, checks per month, locations and devices. One results page holds about 10 organic results, so tracking the top 30 means 3 pages per keyword per check.

searches per month = keywords × pages × checks per month × locations × devices

Two levers cut the bill without losing much signal. First, stop paging as soon as you find the domain you track: a page ranked 4th never needs pages 2 to 10. Second, check long-tail keywords weekly and money keywords daily. The code further down does the first automatically.

What does a typical rank tracking setup cost?

Monthly searches for common setups, and the smallest SerpCrypto pack that covers one month. A month is counted as 30 daily checks or 4 weekly checks.

SetupSearches per monthPack that covers a month
100 keywords, top 10, daily, 1 location3,00010,000 searches ($7.50) lasts about 3 months
1,000 keywords, top 10, daily30,000100,000 searches ($56.25) lasts about 3 months
1,000 keywords, top 30, weekly12,00025,000 searches ($18.75) lasts about 2 months
1,000 keywords, top 100, weekly40,000100,000 searches ($56.25) lasts about 2.5 months
5,000 keywords, top 10, daily150,000250,000 searches ($140.63) lasts about 7 weeks
1,000 keywords, top 10, daily, 3 cities × desktop and mobile180,000250,000 searches ($140.63) lasts about 6 weeks
10,000 keywords, top 100, weekly400,000500,000 searches ($281.25)

Worst case: every keyword is checked to the last page. Stopping when the domain is found usually needs far fewer searches.

How do I find my domain's position in the JSON?

Walk through organic_results page by page and compare the host of each link with your domain. The position field is already the rank on the whole results list, so page 2 starts at about 11. Stop as soon as you find the domain, and record "not in the top N" when the last page you allow yields nothing.

Python: rank of a domain, stopping at the first match
import os
from urllib.parse import urlparse

import requests

API = "https://serpcrypto.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]}


def rank_of(domain, query, gl="us", hl="en", location=None, max_pages=3):
    """Return (position, url, searches_used); position is None if not found."""
    params = {"engine": "google", "q": query, "gl": gl, "hl": hl}
    if location:
        params["location"] = location
    for page in range(1, max_pages + 1):
        params["page"] = page
        resp = requests.get(API, headers=HEADERS, params=params, timeout=60)
        resp.raise_for_status()
        for r in resp.json().get("organic_results", []):
            host = urlparse(r["link"]).netloc.lower()
            if host == domain or host.endswith("." + domain):
                return r["position"], r["link"], page
    return None, None, max_pages


if __name__ == "__main__":
    pos, url, used = rank_of("example.com", "project management software", max_pages=3)
    print(pos, url, "searches used:", used)

Should I track AI Overview citations as well as positions?

Yes, if your queries trigger AI Overviews, because a page can rank 7th and still be cited in the overview above position 1. The same search that gives you positions also returns ai_overview.references when Google shows an overview, at no extra credit.

Store three things per keyword and day: your organic position, whether your domain is among the overview references, and which other domains are. Over a few weeks this shows which competitors Google's AI cites for your topics, which a position report alone cannot.

How do I track rankings in several cities?

Run the same query once per city with the location parameter, for example Denver, Colorado, United States and Miami, Florida, United States. Local intent queries, such as services, shops and clinics, can differ a lot from one city to the next, and the map pack in local_results changes even more.

Each city is a separate search, so multiply your budget by the number of cities. The local SEO page covers map pack tracking, and locations and languages explains the location strings.

Daily or weekly checks: which one do I need?

Daily checks suit a few hundred keywords that drive revenue, or the weeks after a site migration or a Google update. Weekly checks suit long-tail sets, competitor monitoring and reporting to clients.

A mixed schedule keeps the signal and divides the cost: 200 money keywords daily plus 2,000 long-tail keywords weekly, top 10 only, is 6,000 + 8,000 = 14,000 searches a month. Because SerpCrypto credits never expire, a quiet month does not waste what you bought.

Which pack fits a rank tracker?

Most rank trackers between 1,000 and 5,000 keywords fit between 100,000 searches and 500,000 searches. Every engine and every page costs one credit; credits never expire.

Starter

25,000 searches

$18.75

$0.75/1K searches

  • A side project or an AI agent
  • About 830 searches a day for a month
  • Credits never expire
Choose 25,000 searches

Build

100,000 searches

$56.25

$0.56/1K searches

  • Daily rank tracking for 3,300 keywords
  • One page per keyword per day for a month
  • Credits never expire
Choose 100,000 searches

Grow

250,000 searches

$140.63

$0.56/1K searches

  • SEO tools and agent fleets
  • All engines at the same rate
  • Credits never expire
Choose 250,000 searches

Scale

500,000 searches

$281.25

$0.56/1K searches

  • Production rank tracking
  • Higher concurrency on request
  • Credits never expire
Choose 500,000 searches

In every plan: Every engine at 1 credit per search · Failed requests not charged · Credits never expire · Country, language, city and device targeting

Rank tracking API: common questions

Why did my rank tracking costs go up in 2025?

Google stopped honouring num=100 around 10 to 14 September 2025. Before that, one request could return 100 results; now each page of about 10 results is a separate request. Tracking the top 100 therefore takes 10 times more searches than before.

Can I track mobile and desktop rankings separately?

Yes. Add device=mobile to get the phone results page. Mobile and desktop are separate searches, so tracking both doubles the searches for those keywords.

Does SerpCrypto provide a rank tracking dashboard?

No. SerpCrypto is an API: it returns the results page as JSON, and you store and chart the positions in your own tool, spreadsheet or database. The Python code on this page is a starting point.

What happens if a search fails during my nightly job?

You get an HTTP error with a code such as search_failed or search_timeout, and the failed request is not charged. Retry it later with exponential backoff; the errors page has a ready-made loop.

Do I need an ID or a company to buy credits?

No. SerpCrypto is a no-KYC SERP API: no ID, no selfie, no company documents. You top up from $25 in BTC, USDT, USDC, ETH, SOL, LTC and buy a pack from your balance.

Sources (1)
  1. Google num=100 impact data — Search Engine Land (2025-09)

From $0.30/1K searches · no KYC

Get an API key