A rank tracking API gives your code the positions a rank tracker would show you in a dashboard: for each keyword, location and date, where your site or business appears in Google. You call it from a script, a reporting tool or an AI assistant, and you store the history yourself or read it from the vendor.
The first decision is which kind you need. Organic rank tracking needs one search per keyword per location. Google Maps rank tracking needs a grid of searches, because your Maps position changes every few streets. That one difference decides your cost, your vendor and how much code you write.
What you'll learn
- The three kinds of rank tracking API, and which one fits your job
- Why a Google Maps rank is a grid, with a live 9-point test
- APIs from 11 vendors compared, with prices checked on the vendors' own pages on November 4, 2026
- Real cost math for the same workload, free options, MCP servers for Claude and ChatGPT, and Python code
What a rank tracking API returns
Every rank tracking API answers the same question, "where does this result appear for this search?", but they hand you different amounts of work. A typical response holds the keyword, the search location, the device, the date, your position (or none if you are outside the depth checked) and often the competitors above you and the SERP features on the page.
There are three families, and most "best API" lists mix them up:
- Raw SERP APIs (DataForSEO, SerpApi, Serper, Bright Data). You send a search, you get the parsed results page as JSON. You find your own position in it, you schedule the checks and you keep the history. Cheapest per search, most code.
- Rank tracker platform APIs (SE Ranking, AccuRanker, Semrush, seoClarity). You set up tracked keywords in the vendor's tool, it checks them on schedule, and the API reads positions and history back out. Least code, priced per tracked keyword.
- Google Maps grid APIs (GTrack, Local Falcon, Semrush Map Rank Tracker, BrightLocal). You give a business, a keyword and a grid; the API runs a search from every grid point and returns your rank at each one, plus averages. Usually priced per grid point.
A fourth source is free and first-party: the Google Search Console API reports your average position from real impressions, across all searches, rather than your rank from one place.
SERP API vs rank tracking API: which one you need
A SERP API returns a page of results. A rank tracking API returns your position over time. People use "SERP tracking API" for both, so check what the vendor actually sells before you compare prices.
| Question | Raw SERP API | Rank tracker API | Google Maps grid API |
|---|---|---|---|
| What you get back | The whole results page, parsed | Your position and history for tracked keywords | Your Maps rank at every grid point, plus average rank |
| Who schedules checks | You | The vendor | The vendor, or you through the API |
| Who stores history | You | The vendor | The vendor |
| Billing unit | Per search or per page of 10 results | Per tracked keyword (plan size) | Per grid point per keyword |
| Best for | Building your own tool or product | Agency dashboards, BI exports | Local businesses and local SEO agencies |
If you are building a product, a raw SERP API is the raw material. If you want your rankings in Looker Studio, a spreadsheet or an AI assistant, a rank tracker API saves you the scheduler, the parser and the database. If your customers find you on Google Maps, you need grid data, and only some APIs give it to you ready-made.
Google Maps rank tracking API: why one rank is a grid
Google lists distance as one of its three main local ranking factors: "how far each business is from the customer who's searching" (How Google determines local ranking). So a business does not have one Google Maps rank. It has a different rank at every spot a customer searches from.
We tested this while writing this post. We searched "pizza" on Google Maps through DataForSEO's Maps SERP API from 9 points, a 3x3 grid spaced half a mile apart around Times Square, and tracked one well-known pizzeria that ranked third in the search from the centre point:
| Grid row | West | Centre | East |
|---|---|---|---|
| North | 12 | Not in top 20 | 19 |
| Middle | 12 | 3 | 12 |
| South | 14 | 14 | 19 |
Rank 3 at one point, 12 to 19 or nowhere half a mile or so away, and another pizzeria in first place at every one of the 9 points. One check from the centre point would have reported "rank 3" and hidden the other 8 results. The 9 Live searches cost under $0.02.
That is why a Google Maps rank tracking API is priced per point. A 5x5 grid is 25 searches per keyword, a 7x7 grid is 49 and a 9x9 grid is 81, on every run. Our guide to reading heatmap grid patterns explains what the shapes mean, and geo location rank tracking compares grids with city and ZIP code tracking.
The Maps grid APIs we checked:
| API | API access from | Billing | MCP server | Notes |
|---|---|---|---|---|
| GTrack (ours) | Business, $59.99/mo (36,000 credits); Pro $99.99 (81,000) | 1 credit per grid point per keyword; Local Pack scans 2 | Yes, ChatGPT and Claude | Read and Write scopes; Write enabled on request. No API on Free, Starter or Advanced |
| Local Falcon | Data retrieval API from Starter $24.99/mo (7,500 credits); separate on-demand API $199/mo plus $0.0032 per request | 1 credit per data point | Yes, included on every plan | Scans can also target Apple Maps, ChatGPT, Gemini, AI Overviews and AI Mode |
| Semrush Map Rank Tracker API | Any Semrush user per the API docs (Semrush's KB says to ask your account manager); scans need Local credits (Local Base $30/mo per location, 375 credits) | Local scan credits, no API units | Semrush MCP exists; Map Rank Tracker coverage not stated | Default grid 5x5 at 1.5 km radius; 1 to 100 keywords per campaign |
| BrightLocal (Local Search Grid) | Paid plan, from Track $41/mo for 1 location | Account credits; per-point cost not published | Yes ("BrightLocal Anywhere"), Grow plan only | Up to 5 keywords per grid report, ranks up to position 100 |
| DataForSEO Maps SERP API (build your own) | Pay as you go, $50 minimum top-up | $0.0006 per search (Standard queue), $0.002 (Live) | Yes, official | No grid product: you generate points, store results and draw maps |
Prices are list prices billed monthly, in USD, from each vendor's pricing page or docs on November 4, 2026 (Local Falcon, Semrush Map Rank Tracker API, BrightLocal, DataForSEO Maps). To be straight about our own product: Local Falcon gives API access on a cheaper plan than GTrack does. GTrack's per-point price is about half of Local Falcon's on Business and well under half on Pro, which the cost section shows.
Rank tracker API options for organic keywords
For organic Google rankings, these are the APIs that came up most in the top results for "rank tracker API", checked on the same day. Any of these SEO rank API options can feed a dashboard. The raw SERP APIs leave the scheduling and history to you; the rank tracker APIs do it for you.
| API | Type | Entry price | Cost per 1,000 | MCP |
|---|---|---|---|---|
| DataForSEO | Raw SERP API | $1 trial credit, then $50 minimum top-up; funds don't expire | $0.60 per 1,000 pages of 10 results (Standard), $2.00 (Live) | Yes |
| SerpApi | Raw SERP API | Free: 250 searches/mo; Starter $25/mo for 1,000 | $25 (Starter) down to $3.75 (Cloud 1M) and about $1.96 on the largest Cloud plan | Yes |
| Serper | Raw SERP API | 2,500 free queries; $50 for 50,000 credits (valid 6 months) | $1.00 down to $0.30 | None found |
| Bright Data SERP API | Raw SERP API | Free: 5,000 requests/mo; pay as you go | $1.50 per 1,000 requests (pay as you go) | Yes |
| SE Ranking | Rank tracker API + data API | API on every plan (Core and up) | Rank tracking uses plan keyword limits | Yes, included |
| AccuRanker | Rank tracker API | Read API from Expert, $849/mo for 10,000 keywords | Unlimited API calls within the plan | Yes, read-only |
| Semrush Position Tracking | Rank tracker API | API units on top of a subscription (Semrush's own pages disagree on which plans) | 100 API units per keyword per positions report | Yes, read-only Projects methods |
| seoClarity | Rank tracker API (enterprise) | Custom quote, minimum 2,000 keyword queries | "Starts at $0.15 per keyword" for daily data (undated page) | AI search MCP; rank data not stated |
Sources: DataForSEO, SerpApi, Serper, Bright Data, SE Ranking, AccuRanker, Semrush, seoClarity. SE Ranking and Semrush showed us euro prices from our location, so we left their plan prices out rather than convert them.
Two things to read in the small print. First, whether you pay for failed searches: SerpApi, Serper and Bright Data say only successful requests are billed (Bright Data bills every request if you send custom headers or cookies), and so does SE Ranking for its credit-billed Data API. Second, how depth is billed, which changed in 2025.
What a rank tracking API costs since Google dropped num=100
Until September 2025, a tracker could ask Google for 100 results in one request with the &num=100 parameter. Google stopped honouring it around September 11, 2025, and said: "The use of this URL parameter is not something that we formally support" (Search Engine Roundtable). Now Google returns about 10 results per page, so checking the top 100 takes about 10 requests.
Vendors passed that on in different ways. DataForSEO bills organic searches "for every 10 search engine results" since September 19, 2025, so depth 100 costs ten times depth 10: $0.006 instead of $0.0006 in the Standard queue (DataForSEO depth FAQ). AccuRanker moved to tracking the top 20 by default. Google Maps searches were not affected the same way: DataForSEO still bills a Maps search per 100 results.
Scraping got harder again in October 2026. Search Engine Roundtable reported third-party rank tracking breaking because Google is blocking scrapers more aggressively, and Nozzle reported "poisoned" results served to rank trackers (report, updated October 27, 2026). If you build on a raw SERP API, check for odd results and gaps in your data, and watch your vendor's status notices.
Organic math. Tracking 100 keywords daily for a month is 3,000 checks. Top 10 only, on DataForSEO's Standard queue: 3,000 x $0.0006 = $1.80. Top 100: $18. On SerpApi, top 100 means about 10 searches per check, so 30,000 searches, which is the Big Data plan ($275 a month).
Google Maps grid math. We priced the same three workloads at each vendor's per-point rate. The figures below are our calculations from list prices, monthly billing, on November 4, 2026.
| Workload (7x7 grid = 49 points) | Points a month | GTrack | Local Falcon | DataForSEO, build your own |
|---|---|---|---|---|
| 1 business, 10 keywords, weekly (4 runs) | 1,960 | Business $59.99 (API plan) | Starter $24.99 | $1.18 Standard / $3.92 Live |
| 1 business, 10 keywords, daily (30 runs) | 14,700 | Business $59.99 | Basic $49.99 | $8.82 / $29.40 |
| Agency: 50 locations, 5 keywords, weekly | 49,000 | Pro $99.99 (81,000 credits) | Premium $199.99 (63,150 credits) | $29.40 / $98 |
Per point, that is about $0.0017 on GTrack Business and $0.0012 on Pro, against about $0.0032 to $0.0033 on Local Falcon's monthly plans and $0.0006 to $0.002 on DataForSEO. Raw searches are the cheapest line, but the DataForSEO column leaves out your time: the grid generator, the scheduler, retries, storage, heatmaps and client reports. For one developer tracking a few businesses, building your own is a fine weekend project. For an agency billing clients, the hours spent building and maintaining that code cost more than the searches.
Whatever you choose, trim the grid. Points over water or outside your service area cost the same as useful ones. GTrack does not bill disabled pins, and our guide to how often to track Google Maps rankings covers schedule choices. For the daily vs weekly trade-off on organic keywords, see daily rank tracking.
Free Google rank API options
Google has no API that tells you your rank for any keyword from any location. The closest free Google rank API is the Search Console API, and it is worth setting up whatever else you buy.
The Search Analytics endpoint returns clicks, impressions, CTR and average position by query, page, country, device and date. Google publishes usage quotas, not a price: 1,200 queries per minute per site and up to 25,000 rows per request (Search Console API limits). Its limits as a rank tracker:
- Position is an average. It is the topmost position your link held, averaged over every search where you appeared (Google's definition). It cannot tell you your rank in a given neighbourhood.
- Country is the finest location. No city, ZIP code or coordinates.
- No Google Maps data. Your rank in the Maps app is not in it.
- Only your own site, only queries you got impressions for, about 2 to 3 days late, and some queries are hidden for privacy.
For free raw searches, SerpApi gives 250 a month, Serper 2,500 once and Bright Data 5,000 a month. That covers a test, not ongoing tracking. On the Maps side, GTrack runs your first scan with no account, and its $0 plan gives 200 credits a month in the dashboard, but not API access. Our roundup of free rank trackers covers the dashboard options.
SEO MCP servers: rank data inside Claude and ChatGPT
MCP (Model Context Protocol) lets an AI assistant call an API for you. Instead of writing code, you ask Claude or ChatGPT "how did my average rank for 'dentist near me' change this month?" and it calls the vendor's tools and answers with your data. In November 2026, most rank tracker API vendors we checked run an SEO MCP server; we found none for Serper.
The differences are in what the MCP can do and which plan unlocks it. AccuRanker's and Semrush's are read-only. SE Ranking and Local Falcon include theirs on every plan. BrightLocal's needs its Grow plan. GTrack's needs the Business or Pro plan, the same as its API.
GTrack's MCP connects to ChatGPT (as a custom connector in Developer mode) and to Claude (Settings, then Connectors, then Add custom connector), with a server URL that contains your API key (setup guide). When we connected it to Claude on November 4, 2026, it listed 21 tools:
- Scans:
list_scans,get_scan_status,initiate_scan_with_polling,initiate_scan_no_polling,generate_grid - Businesses and schedules:
get_tracked_businesses,get_tracked_business_history,get_scheduled_scans,get_scheduled_scan_history, plus creating and deleting share links for scheduled scan reports - Reports and AI visibility:
list_ai_reports,get_ai_reportand eight AI Tracker tools for campaigns, runs, results and prompts
GTrack also tracks organic keywords in its SERP Tracker, but that list has no SERP Tracker tools: the API and MCP cover Google Maps and AI visibility. A list_scans call returns rows like this (values replaced):
{
"_id": "3f1c…",
"keyword": "dentist near me",
"placeId": "ChIJ…",
"businessName": "Example Dental",
"gridSize": 7,
"createdAt": "2026-11-02T16:43:59.373Z",
"status": "COMPLETED",
"averageRanking": 6.26,
"scanType": "maps",
"reportUrl": "https://…/scan-report/3f1c…"
}
Prompts that work well: "show my last 3 scans", "list my tracked businesses", "compare this month's scheduled scan history for 'emergency plumber' with last month". Starting new scans from the assistant needs a key with the Write scope, which GTrack Support enables on request. Two habits: create a separate API key for MCP, as the guide recommends, and treat the MCP URL like a password, because the key is in it.
Rank tracking API in Python: two examples
Read your GTrack data. Create a key in GTrack under your profile name, then API Management (Business and Pro plans; the key is shown only once). Send it in the x-api-key header. This is the documented tracked-businesses endpoint (API key guide):
import os
import requests
r = requests.get(
"https://gtrack-api.wiremo.co/api/tracked-businesses",
headers={"x-api-key": os.environ["GTRACK_API_KEY"],
"Content-Type": "application/json"},
timeout=30,
)
if r.status_code == 429:
print("Rate limit hit. X-RateLimit-Reset:", r.headers.get("X-RateLimit-Reset"))
r.raise_for_status()
print(r.json())
Limits are set per plan, per hour, for read and write requests separately. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers, and a 429 means wait for the reset. The full endpoint list, with cURL, Python, Node, PHP and React samples, is in the documentation linked from the API Management screen.
Build a small Maps grid yourself. This is the code behind the Times Square test above, using DataForSEO's Maps SERP API. It builds a square grid around a point and finds one business by its Google place ID at each point:
import math, os
import requests
AUTH = (os.environ["DATAFORSEO_LOGIN"], os.environ["DATAFORSEO_PASSWORD"])
URL = "https://api.dataforseo.com/v3/serp/google/maps/live/advanced"
def grid(lat, lng, size=7, spacing_miles=0.5):
half = size // 2
dlat = spacing_miles / 69.0
dlng = spacing_miles / (69.0 * math.cos(math.radians(lat)))
return [(round(lat + r * dlat, 7), round(lng + c * dlng, 7))
for r in range(-half, half + 1) for c in range(-half, half + 1)]
def rank_at(keyword, lat, lng, place_id):
task = [{"keyword": keyword, "location_coordinate": f"{lat},{lng},15z",
"language_code": "en", "depth": 20}]
r = requests.post(URL, auth=AUTH, json=task, timeout=120)
r.raise_for_status()
task = r.json()["tasks"][0]
if task.get("status_code") != 20000:
raise RuntimeError(f"{lat},{lng}: {task.get('status_message')}")
items = (task.get("result") or [{}])[0].get("items") or []
for item in items:
if item.get("place_id") == place_id:
return item["rank_group"]
return None # not in the top 20 at this point
for lat, lng in grid(40.7580, -73.9855, size=3):
print(lat, lng, rank_at("pizza", lat, lng, "YOUR_PLACE_ID"))
Each point is one Live request at $0.002. For real tracking, send tasks to the cheaper Standard queue and collect results later, save every run with its date, and retry points that return errors. That missing layer is what a Maps grid API sells you.
How to choose a keyword ranking API
Before you sign up, run through these questions:
- Organic, Maps or both? If customers find you on Google Maps, insist on grid data. A single "local rank" from one address hides most of the picture, as the 9-point test shows.
- Do you want raw results or tracked history? Raw SERP APIs are cheaper per search and cost you engineering time. Rank tracker and grid APIs store history and handle scheduling.
- How deep do you need to see? Top 10 or 20 is enough for most decisions. Top 100 costs about ten times more on per-page billing.
- Location targeting: country, city, ZIP code or exact coordinates? For local work you need coordinates.
- Device: desktop and mobile organic results differ, so check that you can set the device per keyword. GTrack's grid scans have no device setting; its SERP Tracker has one.
- Write access: can the API create scans and keywords, or only read them? AccuRanker's write API is on Enterprise only, and GTrack's Write scope is enabled by support.
- Billing rules: are failed requests billed, do credits expire, is there a minimum top-up?
- MCP: if your team works in Claude or ChatGPT, check that the vendor's MCP covers the data you need and is on your plan.
- Reliability in 2026: ask how the vendor handled the num=100 change and the October 2026 blocking.
For a dashboard view of the same choices, our local rank tracker comparison covers the tools behind these APIs, and tracking Google Maps rankings accurately covers grid settings.
Try the grid before you code against it
Free: your first Google Maps grid scan with no account, then the $0 plan with 200 credits a month and 5x5 grids in the dashboard.
API and MCP: Business ($59.99 a month, 36,000 credits) and Pro ($99.99, 81,000 credits), with white-label reports.
Frequently Asked Questions
What is a rank tracking API?
It is an API that returns search positions to your code instead of a dashboard: for a keyword, location and date, where a site or business appears in Google. Raw SERP APIs return the whole results page and leave tracking to you; rank tracker APIs return the positions and history of keywords the vendor tracks for you; Google Maps grid APIs return a rank at every point of a grid around a business.
Is there a free rank tracking API?
The Google Search Console API has no published price, only usage quotas, and reports your average position by query, page, country and device. It is not location-specific and has no Google Maps data. For raw searches, SerpApi's free plan gives 250 a month and Bright Data's free tier 5,000 requests a month, enough for testing.
What is the difference between a SERP API and a rank tracking API?
A SERP API returns one results page as data; you find your position, schedule the checks and store the history. A rank tracking API does that for you and returns positions over time for your tracked keywords. SERP APIs are cheaper per search; rank tracking APIs save you the code and storage.
Does GTrack have an API?
Yes, on the Business ($59.99 a month) and Pro ($99.99) plans. The same key works with the GTrack MCP server for ChatGPT and Claude. Keys have Read access to scan results and business data; Write access, which starts new scans, is enabled by GTrack Support on request. The API covers Google Maps grid scans, scheduled scans, reports and the AI Tracker. GTrack's SERP Tracker for organic keywords, included on every paid plan, is used in the dashboard, not through the API.
How much does a rank tracking API cost?
Raw SERP APIs cost $0.30 to $25 per 1,000 searches at list prices on November 4, 2026. Tracking 100 keywords daily in the top 10 is about $1.80 a month on DataForSEO's Standard queue, and $18 for the top 100. Rank tracker platform APIs are priced by tracked keywords: AccuRanker's read API starts at $849 a month for 10,000 keywords. Google Maps grid APIs are priced per grid point, covered in the next answer.
How much does a Google Maps rank tracking API cost?
It is priced per grid point per keyword, so a 7x7 grid is 49 points every run. At list prices on November 4, 2026, that is about $0.0017 a point on GTrack Business, $0.0012 on GTrack Pro, about $0.0032 to $0.0033 on Local Falcon's monthly plans and $0.0006 to $0.002 on DataForSEO's raw Maps API, where you build the grid and reports yourself.