Tools / Google Search / API
A rank tracker is the same search run on a schedule and compared with the last run. Your agent calls seo.serp each week for every keyword and location, saves the positions, and tells you what moved and who entered the top ten. You pay per search run, not per tracked keyword per month.
Ask your agent
Every Monday, check our position for these 25 keywords in Denver and send me what moved more than three places.
Connect RouterGrowth once, then ask in plain words. New workspaces start with $1 of credit. Get a key or read the setup guide.
A real run
One call to seo.serp (live serp results), run through RouterGrowth on October 19, 2026. These are the first rows it returned; fields that name a person are masked.
| position | domain | title |
|---|---|---|
| 7 | www.rotorooter.com | Denver Plumber | 24/7 Emergency Plumbing |
| 13 | www.milehighdrain.com | 24-Hour Emergency Plumbing Services in the Denver ... |
| 14 | teamdavelogan.com | Best 24-Hour Plumber Denver, CO | Trusted Emergency ... |
Google in Denver for emergency plumber: the first organic result sits at position 7, below a local pack, local services ads and paid results.
Step by step
One row per keyword and City,State,Country. Local terms need the city, or the ranks mean little.
The agent calls seo.serp for each row and saves position, URL and domain.
Match on domain and URL to see gains, drops, new entries and pages that fell out.
serp_features shows when a local pack, ads or an AI Overview pushed organic results down.
Price
List prices on Google, read from the catalog when this page was built. The exact figure is quoted before every run, and a monthly plan lowers it.
In practice
You describe the job; the agent picks the calls, shows the price and runs them.
Every Monday, check our position for these 25 keywords in Denver and send me what moved more than three places.
List the keywords our site ranks for, then track the top 20 weekly on the live results page.
Connect
One MCP server for Claude, ChatGPT, Claude Code, Codex and Cursor, or the same call over the CLI and REST with the input above.
claude mcp add --transport http routergrowth https://api.routergrowth.com/mcp
npm install -g routergrowth && routergrowth setup
routergrowth run -c seo.serp -i '{"keyword": "emergency plumber", "location": "Denver,Colorado,United States"}'curl -X POST https://api.routergrowth.com/v1/run \
-H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
-d '{"capability": "seo.serp", "input": {"keyword": "emergency plumber", "location": "Denver,Colorado,United States"}}'Worth knowing
Position is the place on the full page, so organic results can start at 7 when ads and a local pack sit above.
Store each week's rows in a table; the comparison is a join, not a feature you rent.
Every run fetches the page fresh, so a position reflects that moment and that location.
FAQ
It is the data call behind one. Scheduling, storage and the diff are done by your agent or script.
As often as you run it. Weekly is enough for most keywords; each run is charged per search.
The call takes keyword, location, language and engine. It does not take a device setting.
Yes. Every domain on the page comes back, so you can follow any of them.
More on Google Search
Reading this as an agent? This page as markdown: /tools/google-search/serp-tracker-api.md
Connect your agent once. The first calls run on the $1 that comes with signup.