cloro
Rank Tracking

A rank tracking API for Google SERP positions and changes — parsed, pay-per-call

A rank tracking API for SEO teams that would rather work in JSON than in a dashboard. One call gives you the whole SERP for a query — organic, ads, PAA, related searches, AI Overview — so you can track a position over time or monitor the full results page for changes from the same endpoint. Billing is per call, with no fixed keyword bundle to plan around.

4.8 · 37 reviewsG2.com software review platform logo
SEO teams running production rank-tracking pipelines on cloro every day
1,000,000,000 monthly API calls

What is a rank tracking API?

Rank tracking is recording where your pages appear in Google for the keywords you care about, on a fixed cadence, so that movement becomes a trend you can act on instead of an anecdote. Arank tracking API is the programmatic shape of that work — you'll also see it sold as arank tracker API or a SERP tracking API: instead of a hosted dashboard with a scraper hidden underneath, one HTTP call per query × country × device returns the ranked SERP as JSON, and the pipeline — storage, diffing, reporting — runs in your own systems. Widen the same loop from your own position to every element on the page — sponsored ads, AI Overview sources, People Also Ask — and rank tracking becomes SERP monitoring, change detection over time, from the identical call.

The distinction matters because on a 2026 SERP,"position" is a methodology choice, not a single number: rank among organic results or rank counting SERP features, desktop or mobile, with or without the AI Overview block that now tops the page — a block Semrush's 10M-keyword study tracked on as much as a quarter of keywords at its 2025 peak. A dashboard picks those definitions for you. An API returns the full envelope — organic with rank_group andrank_absolute, ads, People Also Ask, AI Overview sources — so your definition of position is the one in your reports, and it survives every tool change.

One API for the SERP elements rank trackers actually need

Organic positions are the headline metric, but the modern SERP is layered: sponsored ads above the fold, an AI Overview block consuming the top of mobile results, People Also Ask in the middle, related searches at the bottom. cloro returns all of them in one response, parsed and position-tagged.

Why SEO teams build rank tracking on cloro, not on bundled tools

Rank-tracking products come in two shapes: hosted dashboards (pre-built UI, opaque scraper underneath, monthly bundle pricing) and APIs (raw structured response, you compose the dashboard, pay-per-call). Teams that need their data in their warehouse and their methodology under their control pick the API. Here's why.

Google organic results panel showing position-tagged result list

Bundled credits leave money on the table

Hosted trackers price by tracked-keywords-per-month, capped regardless of cadence. cloro is pay-per-call — sample at the cadence your question demands, not the cadence the bundle enforces.

Google sponsored ads block showing parsed ad position and URL

Dashboard products lock the SERP shape inside

Most rank trackers expose `position` and `URL` and stop. cloro returns the full envelope per call — `ads[]`, `peopleAlsoAsk[]`, `aioverview` with sources, `relatedSearches[]`. Those elements often shift days before your organic rank does, so watching them is the earliest signal you get. Compute AI Overview citation rate, track ad rotation, diff PAA over time — it's already in the response.

Side-by-side SERP comparison showing mobile and desktop layout differences for the same query

Mobile and desktop SERPs are structurally different

In 2026, mobile shoves the AI Overview to position 0, compresses ads, hides PAA below the fold — and mobile is now the majority surface, at 52% of worldwide web traffic (Statcounter). Hosted trackers default to desktop and surface mobile as an upcharge. cloro takes `device: "mobile"` or `"desktop"` per call at the same price.

Position-tagged SERP source list showing rank_group, rank_absolute, and full SERP envelope fields

Methodology lock-in undermines reporting

Different rank trackers count "position" differently: rank-1 vs rank-absolute, organic-only vs SERP-feature-included, desktop-primary vs mobile-primary. Switch tools and a competitor appears to "move" even when the SERP did not. cloro returns both rank_group and rank_absolute per result alongside the full SERP envelope, so your reporting math stays the same when you switch tools.

Track 100 keywords across 3 countries in one batch

One API call per query × country × device combination. Results land in JSON — roll up to your warehouse, BigQuery, dbt, or whatever runs your reporting, then diff adjacent runs to turn positions into trends and the full SERP into change alerts.

Batch-track a keyword set across countries and devices

python
from cloro import Cloro

client = Cloro(api_key="sk_live_your_api_key_here")

# Your tracked-keyword set, country list, and device matrix.
keywords = ["best project management software", "asana alternatives", "remote team tools"]
countries = ["US", "GB", "DE"]
devices = ["desktop", "mobile"]

results = []
for query in keywords:
    for country in countries:
        for device in devices:
            response = client.monitor.google(query=query, country=country, device=device)
            data = response["result"]
            for r in data["organicResults"]:
                results.append({
                    "query": query,
                    "country": country,
                    "device": device,
                    "position": r["position"],
                    "url": r["link"],
                    "title": r["title"],
                })

# Now you have 1 row per (query, country, device, ranked URL).
# Push to BigQuery, dbt, or your rank-tracker warehouse.
print(f"{len(results)} ranked rows captured")

Response example

200 OKapplication/json
{
  "success": true,
  "result": {
    "organicResults": [],
    "peopleAlsoAsk": [],
    "relatedSearches": [],
    "ads": []
  }
}

Use cases

Four rank-tracking and SERP-monitoring pipelines SEO teams ship on top of cloro instead of a dashboard subscription.

Warehouse-native rank reporting

Nightly batch per keyword × country × device, rows landing in BigQuery, position trends computed in dbt and served in the BI tool your team already opens.

Batch runnerBigQuerydbt
Best for: In-house SEO teams

Production tracking at 50k keywords

Submit async batches and let webhooks write results as they land — per-call pricing means the 50k-keyword daily run costs what it uses, not what a bundle tier says.

Async webhookQueueWarehouse
Best for: Enterprise SEO

SERP-feature-aware tracking

Track AI Overview citations, PAA presence, and ad pressure alongside organic position — the same call returns the full envelope, so feature tracking is free.

aioverviewpeopleAlsoAsk[]Daily cadence
Best for: SEO analysts

Multi-client agency tracking

Per-tenant API keys on one shared pipeline: every client gets their own keyword set, cadence, and branded report, without per-seat dashboard licenses.

Per-tenant keysShared pipelineClient reports
Best for: SEO agencies

Pricing that scales with you

Pick a plan that fits your volume. Price per credit drops as you scale.

Hobby
$0.40
per 1,000 credits
  • $100/mo
  • 250,000 credits
  • 20 concurrent jobs
  • Email support
Starter
$0.39
per 1,000 credits
  • $250/mo
  • 650,000 credits
  • 50 concurrent jobs
  • Email support
Most Popular
Growth
$0.37
per 1,000 credits
  • $500/mo
  • 1,350,000 credits
  • 75 concurrent jobs
  • Priority email support
Business
$0.36
per 1,000 credits
  • $1,000/mo
  • 2,800,000 credits
  • 100 concurrent jobs
  • Priority email support
Enterprise
$0.34
per 1,000 credits
/mo
  • 5,871,025 credits
  • 135 concurrent jobs
  • Priority support
Enterprise$5,000+

Increased concurrency, overages on credits and credit discounts for annual contracts.

Know more

Credit cost per request varies by provider. The figures below are for async/batch requests; sync requests add a +2 credit surcharge.

ChatGPT (full response) 7 credits
ChatGPT (web search) 5 credits
Perplexity 3 credits
Grok 4 credits
Copilot 5 credits
AI Mode 4 credits
AI Overview (incl. SERP) 5 credits
Gemini 4 credits
Google Search 3 credits +2/page
Google News 3 credits +2/page

ChatGPT full response includes query fan-out, ads, and shopping data. Google News uses the same pricing as Google Search.

Estimate your monthly cost and plan

7 credits each
5 credits each
3 credits each
4 credits each
5 credits each
4 credits each
4 credits each
3 credits / 1 page
3 credits / 1 page
Monthly requests
0
Credits needed
0
Recommended plan:

Rank Tracking API, answered

What's a rank tracking API and how is it different from a rank tracker?+

A rank tracker is a product (dashboard, alerting, scheduled jobs). A rank tracking API is the data layer underneath. Teams hit the limits of hosted trackers within a year — custom metrics, warehouse export, internal-tool integration — and migrate. cloro returns organic positions, ads, AI Overview, PAA, and related searches in one JSON response per query × country × device.

Does cloro support the AI Overview position?+

Yes. Pass `include: {"aioverview": {"markdown": true}}` and the response includes the full AI Overview block — text, markdown, HTML, source URLs with citation positions, embedded sponsored ads, and videos. AI Overview rank-tracking is the same call as organic rank-tracking, with one extra include flag and +2 credits.

How does pricing compare to bundled rank trackers?+

3 credits per Google SERP call (n=10), +2 per additional results page, +2 if you enable AI Overview enrichment. The Hobby plan ($100/month) includes 250k credits — comfortable for a daily 500-keyword × 3-country desktop program at n=10, and Growth ($500/month, 1.35M credits) absorbs the same shape across desktop and mobile or with AI Overview enabled on every call. You're not stuck paying for capacity you didn't use, and you don't hit a bundle ceiling during launch weeks.

Can I diff SERPs between two timestamps?+

The API returns the SERP for each call. Diffing is your code, our response. Most teams persist the full `result` envelope per call (organicResults + ads + PAA + aioverview), then compare adjacent runs in their warehouse. Common diffs: organic position change per URL, AI Overview source list churn, sponsored-ad advertiser rotation, PAA question turnover — the change report is a SQL query against your own snapshots, not a vendor feature.

Is this a rank tracker or a SERP monitoring API?+

Both — they're the same call here. Rank tracking watches your organic position over time; SERP monitoring watches every element on the page (sponsored ads, AI Overview sources, People Also Ask, related searches) for change — often days before organic positions move. cloro returns the full SERP envelope on every `/v1/monitor/google` call, so you choose which slice to report on — one position or the whole results page — without paying for a second product.

What about local / city-level rank tracking?+

For city-level rank tracking, see /use-cases/local-rank-tracking/ — the same `/v1/monitor/google` endpoint with a `location` parameter accepting any of Google's ~100,000 canonical geotargets. Same auth, same response shape, same per-call pricing.

How do I scale to 50k+ tracked keywords?+

Use the async endpoint (`POST /v1/monitor/google/async`) which delivers via webhook rather than burning sync concurrency. For a 50k-keyword × 3-country × daily run, async is the right pattern: submit batches, let the webhook handler write to your warehouse as results land. Sync is for ad-hoc queries; async is for the production cadence.

Start tracking Google rankings and SERP changes via API

Per-call billing. Organic positions, sponsored ads, AI Overview, People Also Ask, and related searches all come back in one JSON response, scoped to a query, country, and device. Push the rows into your existing reporting stack and run your usual numbers on them — position trends today, full-SERP change detection whenever you widen the diff.