Knowledge

Decoding SERP API Pricing: What Drives Cost and How to Pay Less

A SERP API bill is keywords times depth times locations times devices times frequency. Why depth got ten times dearer in 2025, and how to pay less.

Matt Brown

October 5, 2026 · 8 min read

SERP API pricing looks simple: a price per thousand searches, a handful of monthly plans. The bill that arrives is rarely what teams expected, because the number of searches a project needs is the product of several decisions that are easy to make without noticing their cost. Track a few more cities, add mobile, go a page deeper, check daily instead of weekly, and the volume multiplies.

This guide breaks a SERP API bill into its parts, explains the change that made deep rank tracking ten times more expensive in 2025, and shows how to plan a workload that buys the data you need without paying for data you do not use. It includes a small calculator you can run against your own numbers and any provider’s price list.

Key takeaways

  • Monthly searches are keywords times pages times locations times devices times engines times checks per month. Every factor multiplies the others.
  • Depth is the most expensive factor now. Since Google stopped honouring the parameter that returned 100 results on one page in September 2025, tracking the top 100 takes ten requests instead of one.
  • The cheapest saving is usually frequency: check volatile, high-value keywords daily and the long tail weekly.
  • Compare providers on what you are charged for, not just the headline rate: whether failed and cached requests count, whether every engine is included, and how overage works.
  • Plan the workload first, then choose the plan. A tiered schedule in our example delivered top-100 coverage for priority keywords at about an eighth of the volume of tracking everything to 100 daily.

What you are actually paying for

Most SERP APIs, including ours, bill per search request. A request is one results page, for one query, in one location, on one device, from one engine, at one moment. Everything else follows from that unit:

FactorWhat it meansTypical range
KeywordsQueries you trackDozens to hundreds of thousands
DepthHow many positions you need; every 10 results is a page, and every page is a request10 to 100
LocationsCountries, regions or cities you track separately1 to hundreds
DevicesDesktop and mobile results differ, so tracking both doubles volume1 or 2
EnginesGoogle, Bing, Yandex and others, each a separate request1 to 3
FrequencyHow often each combination is checkedMonthly to several times a day

Multiply them and the scale becomes obvious. Five hundred keywords, two devices, five cities and a daily check is 150,000 requests a month before you go past the first page.

Why depth got ten times more expensive

For years, rank trackers asked Google for 100 results on a single page with a URL parameter, num=100. One request returned the whole top 100. In mid-September 2025, Google stopped honouring it, and tools that relied on it began showing gaps until they switched to paging through results ten at a time.

The effect on cost is direct. Tracking the top 100 for one keyword now takes ten requests, so the same depth costs ten times as much. For many teams that changes the question from “how deep can we track?” to “how deep do we actually need to track, and for which keywords?” Most clicks go to the first page, and for most keywords knowing whether you are on it, and roughly where, is the decision-relevant fact.

A calculator for your own workload

The module below computes monthly requests for one or more tracking schedules. Multiply the result by any provider’s price per thousand to compare plans.

import math
from dataclasses import dataclass

RESULTS_PER_PAGE = 10  # Google stopped honouring num=100 in September 2025, so every 10 results is a call


@dataclass
class Workload:
    keywords: int
    depth: int                  # how many positions you need: 10, 20, 100...
    locations: int = 1
    devices: int = 1            # 2 if you track desktop and mobile separately
    engines: int = 1
    checks_per_month: float = 30.0

    def calls_per_month(self):
        pages = math.ceil(self.depth / RESULTS_PER_PAGE)
        return math.ceil(self.keywords * pages * self.locations * self.devices * self.engines * self.checks_per_month)


def summarise(name, workloads):
    calls = sum(w.calls_per_month() for w in workloads)
    return f"{name}: {calls:,} calls a month"

Run on four typical workloads:

from serpcost import Workload, summarise

WEEKLY = 52 / 12   # checks per month for a weekly schedule

print(summarise("500 keywords, top 10, daily", [Workload(500, 10)]))
print(summarise("500 keywords, top 100, daily", [Workload(500, 100)]))
print(summarise("Tiered: top 10 daily, plus top 100 weekly for 100 priority keywords",
                [Workload(500, 10), Workload(100, 100, checks_per_month=WEEKLY)]))
print(summarise("200 local keywords, 5 cities, desktop and mobile, weekly",
                [Workload(200, 10, locations=5, devices=2, checks_per_month=WEEKLY)]))
500 keywords, top 10, daily: 15,000 calls a month
500 keywords, top 100, daily: 150,000 calls a month
Tiered: top 10 daily, plus top 100 weekly for 100 priority keywords: 19,334 calls a month
200 local keywords, 5 cities, desktop and mobile, weekly: 8,667 calls a month

The second and third lines are the point. Tracking 500 keywords to the top 100 every day takes 150,000 requests a month. Tracking all of them on page one daily, and the 100 that matter most to the top 100 weekly, takes 19,334, about an eighth, and still answers nearly every question a ranking report is used for.

Seven ways to pay less

  1. Match depth to the decision. Track most keywords to the first page, and only go deeper for the keywords where moving from position 40 to 15 changes what you do.
  2. Tier the frequency. Check high-value and volatile keywords daily, stable long-tail keywords weekly. Our guide to detecting SERP volatility shows how to tell which is which from your own data.
  3. Only add locations that differ. City-level tracking matters for local intent and much less for informational queries; when city-level targeting matters explains how to decide.
  4. Only track both devices where they diverge. Measure desktop and mobile for a sample first; if rankings match closely, track one and spot-check the other.
  5. Deduplicate across clients and teams. Agencies often track the same keyword in the same location for several clients. Fetch it once and share the result.
  6. Cache within the day. If several systems need the same results page, store the first response and reuse it rather than requesting it again.
  7. Pay for results, not attempts. Check whether failed requests, retries and cached responses are billed, since failures are a hidden share of every bill.

Comparing providers fairly

Headline prices per thousand are only comparable once the units match. When comparing SERP APIs, ask:

QuestionWhy it matters
Is a “search” one results page, or does deeper pagination cost extra credits?Determines the true cost of depth
Are failed, empty or retried requests billed?Failures are a hidden share of every bill
Is every engine and result type included, or priced separately?Determines the cost of tracking beyond Google web results
Are location and device targeting included at the same rate?Determines whether city-level or mobile tracking changes the rate
What happens above the plan: hard stop, overage rate or automatic upgrade?Determines what a busy month really costs
Are results live or served from a cache, and is that labelled?Determines how fresh the data is

The cost per clean record principle applies here too: the meaningful number is what you pay per usable results page, after failures, retries and duplicates, not the list price per request.

Build or buy

Running your own collection through proxies can be cheaper at very high volume, but it brings parsing, maintenance and the work of keeping up with changes like the end of num=100. A SERP API moves that work to the provider. How SEO platforms use SERP APIs covers where the line usually falls, and automating daily keyword position monitoring shows a complete pipeline built on one.

The bottom line

A SERP API bill is the product of keywords, depth, locations, devices, engines and frequency, and since Google stopped returning 100 results per page, depth is the factor that multiplies fastest. The way to pay less is not to hunt for the lowest rate per thousand, but to buy only the requests that change a decision: page one for most keywords, deeper for the few that matter, daily where rankings move and weekly where they do not.

Run the calculator on your own workload before choosing a plan, and multiply by each provider’s rate to compare like with like.

Sources and references

Ready to get started?

Try Shifter's residential proxies, 205M+ IPs, 195+ countries, from $0.10/GB.

Get Started