How to use Rank Tracker API?
The Rank Tracker API lets you pull your keyword ranking data out of Sitechecker and into your own tools, scripts, and reports. Instead of opening the Rank Tracker tool and reading the tables by hand, you can request the exact data you need over HTTP:
- tracked keyword positions,
- visibility,
- competitor distribution,
- page and group aggregates,
- SERP snapshots,
- SERP Opportunities.

This guide explains what the Rank Tracker API is, how authentication and projects work, what each endpoint returns, and the most common ways SEO teams and agencies use it in their day to day work.
For the exact request paths, full field lists, and a live request builder, keep the API reference open next to this article.
What is the Rank Tracker API?
The Rank Tracker API is a module inside the Sitechecker Public REST API. It exposes the same data you see in the Rank Tracker tool, as clean JSON you can automate. It is a read API: it returns ranking data, it does not change your settings.
It is built for agencies and SEO teams who want to automate rank tracking: white label client reports, custom dashboards, competitor tracking, and feeding rankings into AI tools.
Who can use it
Public API access is a plan level entitlement, available on Premium and Enterprise plans. You also need your API key and a project with the Rank Tracker collecting data.
Setup
Authentication and project setup are the same as the rest of the Public API. Follow the getting started guide for your API key and project_id . In short: send the key as Authorization: Bearer <your_api_key> and use the base path https://sitechecker.pro/api/v1 . You can only access your own account's projects.
The one Rank Tracker specific thing to grab first is your project's filter values, so you pass valid location, device, and language values instead of guessing:
curl --url 'https://sitechecker.pro/api/v1/rank_tracker_filter_values?project_id=12345' \ --header 'Authorization: Bearer <your_api_key>'
The endpoints
| Endpoint | What it returns |
|---|---|
rank_tracker_summary |
Overview: main domain visibility, ranking distribution, short competitor list. |
rank_tracker_filter_values |
Valid search engines, devices, locations, and languages for the project. |
keywords |
Core endpoint: tracked keyword rows with position, volume, ranked URL, changes, and AI Overview flags. |
serp_snapshot |
Top 100 SERP for one keyword (by tracked_keyword_id ), on demand. |
keyword_daily_positions |
Basic daily position history, capped at 21 points. |
pages |
URL level aggregates: visibility, average position, tracked keyword counts. |
groups |
Keyword group aggregates, and the source of your group_id values. |
competitor_domains |
Competitor visibility and ranking distribution; source of your competitor_id values. |
competitor_keywords |
Keyword by competitor position matrix (cap 50 keywords). |
serp_opportunities |
Monthly snapshot of URLs ranking across your keywords. |
serp_opportunity_keywords |
Drilldown of keywords behind one opportunity (by opportunity_id ). |
Example, the core keywords call:
curl --url 'https://sitechecker.pro/api/v1/keywords?project_id=12345&date_from=2026-02-22&date_to=2026-05-22&device=desktop&rankings=top_10&limit=50' \ --header 'Authorization: Bearer <your_api_key>'
Add optional data with fields= (for example gsc_metrics , cpc , ai_overview , or keyword_refs on pages ). Full AI Overview text and citations live in the separate AI Visibility module, not here.
Rules to remember
- Filters are keyword level everywhere. On pages, groups, and competitors, filters shrink the underlying keyword set first, then the endpoint aggregates.
- Ranking filters are cumulative, distribution buckets are exclusive.
top_10means positions 1 to 10; the buckettop_4_10covers only 4 to 10. - Movement filters need a window. Use
moved_up/moved_downwithmovement_window(1d, 7d, 30d, 90d, all_time). - Visibility is a snapshot for the latest check in your date range (
as_of_date), with no chart trend points, exceptkeyword_daily_positions, which is capped at 21 days. - SERP Opportunities ignores the date picker; it is a monthly snapshot.
- Chain IDs (
group_id,competitor_id,tracked_keyword_id,opportunity_id) into downstream calls. Caps: keywords 50, competitor_keywords 50, serp_snapshot top 100.
Use cases: how agencies use the Rank Tracker API
Here are the patterns SEO agencies and in-house teams get the most value from.
1. Automated white-label client reporting
The most common use case. Instead of logging into a dashboard and rebuilding a report every month, agencies pull ranking data on a schedule and drop it straight into their own branded reports, dashboards, or client portals.
A monthly job hits rank_tracker_summary for the headline visibility and distribution, keywords for the movers, competitor_domains for the competitive context, and pages for the winning URLs, then formats it under the agency's own brand.
Because Sitechecker does not charge per seat, you can wire the same data into as many client workspaces as you manage without watching your margins shrink per client.
2. Plain ranking commentary with AI
A fast growing pattern is piping the API's JSON into an AI assistant to write the narrative that clients actually read. You pull the raw numbers, then ask a model to summarize what moved, flag notable jumps and drops, and draft client ready commentary.

The screenshot attached to this article shows exactly this: an operator using Claude connected to the Sitechecker Rank Tracker API to interrogate a project's data conversationally.
It turns "here are 400 keyword rows" into "here is what changed and what to do about it," in seconds, at the top of every report.
3. Finding content and outreach gaps with SERP Opportunities
serp_opportunities is one of the most strategic endpoints for agencies doing content and digital PR. Because it aggregates the top 100 SERPs across a whole keyword universe, it reveals which domains own your client's space and how.

In the attached example, a single call across roughly 3,500 opportunity URLs surfaced that YouTube appeared as an opportunity 572 times, more than eight times the next domain, pointing to video as a wide open channel.
It also flagged a direct competitor winning the exact keyword cluster the client wants, and around 100 Reddit and Quora threads where buyers were actively asking for alternatives, a founder led engagement play rather than a content one.
Filter by content_type to separate listicles you want to be listed in (listings ) from review placements (reviews ) and community threads (ugc ), then drill into any URL with serp_opportunity_keywords to get the exact terms to target.
4. Deciding whether to compete or get listed with SERP snapshots
serp_snapshot answers a practical strategy question for any head term: can we realistically rank, or should we get placed inside the pages that already rank?
The attached example pulls the top 20 for a competitive head term and shows the client's domain does not appear at all, while the SERP is dominated by big brands and "best of" listicles.

The read is clear: rather than competing head on, the near term play is outreach to get listed inside those listicle pages, or targeting a narrower long tail variant where the client already ranks.
One API call replaces a lot of manual SERP eyeballing, and it scales across every priority keyword.
5. Competitor visibility and keyword gap tracking
competitor_domains and competitor_keywords let you track rivals as first class citizens. Agencies use the domain endpoint to monitor share of visibility over time (are we gaining or losing ground on the tracked set), and the keyword matrix to find gaps where a competitor ranks in the top 10 and the client does not.
That gap list becomes the content and optimization roadmap for the next sprint.
6. Local and multi location reporting
For clients with local or multi location audiences, national averages hide the truth.
Because filters are keyword level and location aware, you can pull rankings per configured location and device, then report mobile and desktop positions side by side per city.
Use rank_tracker_filter_values to get the configured locations, then loop your keywords or pages calls per location_id .
7. Ranking movement alerts
Rather than waiting for the monthly report, teams poll keywords with rankings=moved_up or rankings=moved_down and a movement_window , then push notable movements into Slack or email.
Clients hear about a big jump or a sudden drop the day it happens, which is exactly the kind of proactive communication that drives retention.
8. AI Overview visibility monitoring
AI Overviews are reshaping the SERP, and clients want to know when they appear and whether the brand is mentioned.
The cheap has_ai_overview and brand_mentioned flags on the keywords endpoint let you track, at scale, how many of a client's keywords trigger an AI Overview and where the brand shows up, without pulling heavy AI payloads. It is an easy, high value line to add to any modern SEO report.
Best practices
- Discover, then request. Start every integration with
projectsandrank_tracker_filter_valuesso you pass valid IDs instead of guessing. - Request lean, expand with fields=. Keep default responses small and only add
gsc_metrics,ai_overview,cpc,keyword_refs, orpage_refswhen you actually need them. - Respect the caps and paginate. Loop with
offsetor the cursor rather than trying to force a large range into one call. - Chain IDs, do not hardcode them. Pull
group_id,competitor_id,tracked_keyword_id, andopportunity_idfrom their source endpoints and reuse them downstream. - Cache the snapshot layer. SERP Opportunities updates monthly, so there is no need to call it more than once per snapshot.
Common errors
The API returns clear error codes so you can handle problems in your integration:
INVALID_API_KEYorREVOKED_API_KEY: the Bearer token is wrong or has been revoked.MISSING_PUBLIC_API_ACCESS: the account does not have an active API entitlement. Check your plan.ACCESS_DENIED: the requested project belongs to another account.PROJECT_NOT_FOUND: theproject_iddoes not exist or is not visible to your key.INVALID_DATE_RANGEorINVALID_FILTER: a date range or filter value is not valid. Recheck values againstrank_tracker_filter_values.RATE_LIMIT_EXCEEDED: you are sending requests too quickly. Slow down and retry.KEYWORD_NOT_FOUND,OPPORTUNITY_NOT_FOUND,SNAPSHOT_UNAVAILABLE: the specific ID or snapshot you asked for is not available.
Frequently asked questions
What is the Rank Tracker API used for? It gives you programmatic access to your Sitechecker keyword ranking data: positions, visibility, competitor distribution, page and group aggregates, SERP snapshots, and SERP Opportunities. Teams use it to automate client reports, build custom dashboards, track competitors, and feed rankings into AI tools.
How do I authenticate with the Rank Tracker API? Send your API key as a Bearer token in the Authorization header on every request. Your key is in your project settings, alongside the Site Audit API key.
Do I need a specific plan to use it? Yes. Public API access is available on Premium and Enterprise plans. Without an active entitlement, requests return MISSING_PUBLIC_API_ACCESS .
How do I get my project ID? Call GET /api/v1/projects with your API key. The response lists every project your key can access, each with its project_id .
Can I track competitor keyword rankings through the API? Yes. Use competitor_domains for domain level visibility and distribution, and competitor_keywords for a keyword by competitor position matrix.
Can I see AI Overview data? The Rank Tracker API exposes cheap AI Overview indicators (has_ai_overview , brand_mentioned ) on the keywords endpoint. Full AI Overview text, citations, and source analysis are part of the separate AI Visibility module.
Why do the pages and groups endpoints not return keyword details? To keep responses fast and lean. Request fields=keyword_refs (pages) or fields=page_refs (groups) for a lightweight reference list, then call the keywords or pages endpoint for full metrics.
Need help?
If you have any questions about the Rank Tracker API, you can reach us at support@sitechecker.pro. For the full endpoint reference and a live request builder, see the API documentation. We will be glad to help you out.