How to Find Every Keyword a Domain Ranks For, via API
Your competitor ranks for hundreds of keywords you have never thought to target. Some of them are buying-intent terms you could win with one good page. The problem is you cannot see them. Their ranking list is invisible from the outside unless you go pull it.
That is exactly what this endpoint does. Give it a domain and it returns the keywords that domain ranks for in Google, each one with its position, search volume, CPC, difficulty, estimated traffic value, and the exact URL that ranks. Point it at your own site to audit yourself, or point it at a rival to reverse-engineer their whole SEO strategy.
If you just want to eyeball it first, the ranked keywords checker does the same thing in the browser with no code. Drop in a domain, see what it ranks for. This tutorial covers the Ranked Keywords API so you can pull it in bulk and feed it into your own tools.

What you need
Three things and you are ready:
- A free Trackee account. The free plan has enough credits to run the examples here.
- An access key from your dashboard.
- The
x-access-keyheader on every request.
No SDK, no OAuth, no approval queue.
Step 1: Get your API key
Sign in to your dashboard, open the API keys section, and create a key. Copy it right away, since the full value only shows once.
That key goes in the x-access-key header on every call. Keep it on your server, out of any client-side code.
Step 2: Pull a domain's keywords
Here is a full request. Swap in your key and the domain you want to look at. Each lookup costs 10 credits.
curl -X POST https://api.trackee.dev/v1/ranked-keywords \
-H "x-access-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "domain": "stripe.com", "limit": 50 }'The limit controls how many keywords come back per call, up to 100. The response looks like this:
{
"success": true,
"credits": { "charged": 10, "remaining": 4970 },
"data": {
"domain": "stripe.com",
"total": 115957,
"keywords": [
{ "keyword": "payment processing", "position": 2, "search_volume": 18100, "etv": 5400, "url": "https://stripe.com/payments" }
]
}
}Look at total first. That is how many keywords the domain ranks for in all, 115,957 in this example. The keywords array is the slice you asked for. Bump limit to 100 to grab more per call.
What each field tells you
Every entry in keywords carries the numbers you need to judge whether a keyword is worth chasing.
keywordis the search term the domain ranks for.positionis where it sits on the results page. Lower is better, and anything in the top 3 is real traffic.search_volumeis roughly how many times that term gets searched each month. This is the demand.etvis estimated traffic value, the dollar value of the visits that keyword sends. It blends volume, position, and CPC into one number, so it is the fastest way to sort by impact instead of raw volume.urlis the exact page that ranks. Handy for seeing whether they win with a blog post, a product page, or a doc.
The endpoint also carries CPC and keyword difficulty per keyword, so you can spot the terms that are both cheap to rank for and worth money when you do.
Mining a competitor for your content plan
Here is where this gets useful. Run it on a competitor instead of yourself.
curl -X POST https://api.trackee.dev/v1/ranked-keywords \
-H "x-access-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "domain": "competitor.com", "limit": 100 }'Now you have their ranked list. Sort it by etv and the top of that list is the traffic actually paying their bills. Those are the keywords to study.
Then do the subtraction. Pull your own domain the same way, and any keyword they rank for that you do not is a gap. High volume, decent difficulty, no page on your side? That is a brief writing itself.
A workflow that holds up:
- Pull the competitor at
limit: 100, sorted mentally byetv. - Pull yourself with the same call.
- Find keywords in their list that are missing from yours.
- Look at their
urlfor each one to see what kind of page wins, then write a better version.
Run this across three or four competitors and the keywords that show up on all of them are the ones your whole category is fighting over.
No code? Use the dashboard
You do not have to touch the API to get this. The same ranked-keyword pull runs from the Trackee dashboard with no code, and if you manage several sites, the brands view keeps each one's keywords in its own place. That is how agencies run keyword research for a whole roster of clients from one screen instead of juggling spreadsheets.
Let an AI agent pull it for you
If you work in an AI coding tool or a chat agent, Trackee has an MCP server and a coding skill so an agent can call this in plain language. You ask it "what does competitor.com rank for that we don't," and it runs the calls, diffs the lists, and hands you the gaps. No wiring up the request yourself.
What's next
You can now pull any domain's full keyword profile, read the metrics on each one, and diff a competitor against yourself to find your next posts.
Good next steps:
- Read the Ranked Keywords API page for the full parameter and field list.
- Browse the API reference for related endpoints like domain overview and keyword research.
- Start on the free plan and scale up when your volume grows.
Pick your closest competitor, pull their top 100 by traffic value, and cross off everything you already rank for. What is left is your content plan for the next quarter.