What You Get
The Data Layer Behind Any Local Rank Tracker
Managed local rank trackers hand you a dashboard and bill per tracked keyword and location. Serpent hands you the data underneath one — a clean position field on every result, for any keyword, in any location you target. Pipe it into your own database, multi-location dashboard, client report, or AI agent. You own the keywords, the locations, the schedule, and the storage.
Local Pack & Map Pack Monitoring
For local-intent queries like "plumber near me" or "best dentist [city]", track the SERP a local searcher sees and watch your local pack and map pack visibility — and which competitors hold the top local spots.
Multi-Location Tracking
Loop one keyword across every location you serve and store the position for each. The result is a per-location ranking matrix — the core of any multi-location local rank tracker — at per-call pricing, not per-keyword.
Country & Language Targeting
Track the same keyword across 50+ countries with the country parameter and set the result language with language. See the localized rankings a searcher in each market actually gets, from one code path.
Local Competitor Visibility
Pull the full result set for a local keyword and see exactly which businesses rank above you in each market. Track competitor movement on the same local keywords with one consistent response shape.
Daily Local Rank History
Schedule the same location-targeted call on any interval and store each position. Build a time series of how your local rankings move — without paying per-tracked-keyword pricing for every location.
White-Label Local SEO Reports
Feed local positions straight into branded agency reports. Because the ranking data is structured and yours, you can schedule it and ship per-location ranking reports to clients without a third-party tool in the loop.
Quick Start
Check a Local Ranking in One Call
Send a location-qualified keyword to /api/search with a country target. Every organic result returns its position — find your domain and read its local rank. No special flag required; the position field ships on every search.
# Top 100 results for a local-intent keyword, each with its position curl "https://apiserpent.com/api/search?q=best+dentist+austin&engine=google&country=us&num=100" \ -H "X-API-Key: YOUR_API_KEY"
import requests API_KEY = "YOUR_API_KEY" def local_rank(keyword, domain, country="us", language="en"): """Position of `domain` for `keyword` as seen from `country`.""" resp = requests.get( "https://apiserpent.com/api/search", headers={"X-API-Key": API_KEY}, params={"q": keyword, "engine": "google", "country": country, "language": language, "num": 100}, ) for r in resp.json()["results"]["organic"]: if domain in r["url"]: return r["position"] return None # not in top 100 # One keyword, a matrix of locations -> a multi-location tracker locations = [("us", "en"), ("gb", "en"), ("de", "de"), ("in", "en")] for country, lang in locations: pos = local_rank("emergency plumber", "yoursite.com", country, lang) print(country, pos or "not ranked") # Schedule daily and store each row to build a local rank history
{
"success": true,
"engine": "google",
"country": "us",
"results": {
"organic": [
{
"position": 1, // 1-indexed local rank — always present
"title": "…",
"url": "https://example.com",
"snippet": "…",
"pixel_position": 742 // only when pixel_position=true (paid)
},
{ "position": 2, "title": "…", "url": "…" },
{ "position": 3, "title": "…", "url": "…" }
]
},
"metadata": { "totalOrganicResults": 100 }
}
Parameters
Everything You Can Control
One endpoint, a handful of parameters. The same call works as an on-demand local SERP checker and as the engine behind a scheduled local rank tracker.
"dentist austin") to capture location-qualified local intent. Required.google, bing, yahoo, or ddg. Track and compare a local keyword's ranking across all four with identical code.us, gb, de, in, and 50+ more. Returns the rankings a searcher in that country sees. Loop it to track one keyword across many markets.en, es, de…) to set result language. Auto-detected from country when omitted.100. Default 10. Pull deep to catch local competitors below the fold.1–10. Positions stay sequential across pages.d, w, m, or y (day/week/month/year).true adds an integer pixel_position (exact y-coordinate from the top of the rendered desktop SERP) to every item. Paid tiers; desktop measurement.positiontitle, url, snippet on each result, plus metadata.totalOrganicResults for the count measured.Compare
Local Rank Tracking API vs. Managed Local Trackers
Managed local rank trackers bill per tracked keyword and location and lock your data in a dashboard. Serpent gives you the raw ranking data — yours to store, brand, and scale.
| Capability | Serpent API | Managed local trackers | SerpApi / DataForSEO |
|---|---|---|---|
| Position on every organic result | Yes | Yes | Yes |
| Local pack & map pack visibility | Yes | Yes | Yes |
| Multi-location tracking | Yes — loop locations | Yes (per-location fee) | Yes |
| Engines | Google · Bing · Yahoo · DuckDuckGo | Usually Google only | Google + others |
| You own the raw data | Yes | Locked in dashboard | Yes |
| Pricing model | Per call, from $0.03/10K pages | Per keyword × location | Per search / per call |
| Free tier | 10 free calls, no card | Limited trial | Trial credits |
See the wider picture in our rank tracking API overview and SerpApi alternatives guide.
FAQ
Local Rank Tracking API Questions
country and language) and read the 1-indexed position field on every organic result. Run it on a schedule to track how your local rankings move over time, or on demand as a local SERP checker. It powers local rank trackers, multi-location dashboards, and agency reports without per-keyword pricing.
country and language — and store the position returned for each. That gives you a per-location ranking matrix for one keyword, which is exactly what a multi-location local rank tracker is built on. Because you pay per call rather than per tracked keyword, tracking the same keyword set across many locations stays inexpensive at scale.
engine=google, engine=bing, engine=yahoo, or engine=ddg. Each engine returns the same response shape with a position field on every organic result, so you can track a local keyword's ranking across all four engines with identical code.
country with a two-letter ISO code (country=us, country=gb, country=de, country=in, and 50+ more) to get the rankings a searcher in that country sees, and language with a two-letter code to set the result language. Combine that with location-qualified keywords (for example "[keyword] [city]") to monitor city- and region-level local intent. Schedule the calls and store each position to build a continuous local rank history.
Build It Yourself
Local Rank Tracking Guides & Tutorials
Step-by-step walkthroughs that use the position field above to build real local rank trackers — across cities, countries, and the local pack.
Local SEO Rank Tracking
The overview: how local rank tracking works, what to track in the local pack, and how to monitor visibility by location.
Track Local Rankings Programmatically
Build a local rank tracker in code — query keywords, parse the position field, and automate location-specific monitoring.
Local Rank Tracking API Tutorial
A hands-on tutorial: pull local rankings via API, capture local pack visibility, and produce weekly diff reports.
Geo-Grid Local Rank Tracking
How geo-grid local rank tracking works, how to compute Share of Local Voice, and a cheaper Local Falcon alternative.
International Rank Tracking
Track the same keyword across 40+ countries with the country parameter and compare localized rankings side by side.
AEO for Local Businesses
How local businesses earn visibility in AI answers and local search — and how to measure it alongside your local rankings.
Start Tracking Local Rankings Free
Query any local keyword and read its position by location on Google, Bing, Yahoo, or DuckDuckGo. Per-call pricing from $0.03/10K pages, 10 free calls, no subscription.
Get an API Key