Check where your site ranks for every keyword, in every country you sell in, on your own schedule. Get organic results, related searches and news coverage as clean JSON, without fighting CAPTCHAs.

Rank tracker
example.com · United States
| Keyword | Rank | Change |
|---|---|---|
| trail running shoes | #2 | 3 |
| waterproof hiking boots | #5 | 1 |
| running socks | #8 | |
| best trail shoes 2026 | #11 | 2 |
The challenge
APIs used
Use one or combine them. Every API takes a simple JSON request and returns structured JSON.
How it works
List the keywords you want to rank for and the countries that matter to you.
Run a daily or weekly job that sends each keyword and country to the Google Search API.
Find your domain in `organic_results` and save its `rank` with the date.
Example
This script searches each keyword, finds the first result from your domain and saves its position. Keywords where you don't appear in the results are saved with no rank.
import csv
import datetime
import requests
API_URL = "https://api.dataguru.cc/api/v1/google/search"
HEADERS = {"Authorization": "Api-Key YOUR_API_KEY"}
MY_DOMAIN = "example.com"
KEYWORDS = ["trail running shoes", "waterproof hiking boots"]
COUNTRY = "us"
def position(keyword):
res = requests.post(
API_URL,
headers=HEADERS,
json={"query": keyword, "country": COUNTRY, "num_results": "50"},
timeout=60,
)
res.raise_for_status()
for result in res.json().get("organic_results", []):
if MY_DOMAIN in result.get("link", ""):
return result["rank"], result["link"]
return None, None
with open("rankings.csv", "a", newline="") as f:
writer = csv.writer(f)
today = datetime.date.today().isoformat()
for keyword in KEYWORDS:
rank, url = position(keyword)
writer.writerow([today, COUNTRY, keyword, rank, url]){
"search_information": {
"total_results": 48200000,
"query_displayed": "trail running shoes"
},
"organic_results": [
{
"rank": 1,
"title": "The Best Trail Running Shoes, Tested",
"link": "https://www.example-reviews.com/trail-running-shoes",
"displayed_link": "example-reviews.com › gear",
"snippet": "We ran hundreds of miles to find the best shoes for grip and comfort."
},
{
"rank": 2,
"title": "Trail Running Shoes for Men & Women",
"link": "https://www.example.com/trail-running-shoes",
"displayed_link": "example.com › shoes › trail",
"snippet": "Shop lightweight trail runners with free returns."
}
],
"related_searches": [
{
"query": "best trail running shoes for beginners"
}
]
}Example response trimmed to the fields used above. Values are illustrative.
What you get
Store the rank of your pages for every keyword and see exactly when they move.
See which domains rank above you in organic_results and how that changes over time.
Compare rankings across countries and languages with the country and language
What it costs
Tracking 100 keywords in one country, once a day:
$60.00 / month
3,000 requests × $0.02 / req on the Google Search API. No subscription or minimum; you only pay for successful requests.
See all pricingWho it's for
FAQ
num_results, which covers the first five pages.More use cases
E-commerce & Retail
Keep a watchlist of products, check price, stock and seller on a schedule, and build a price history you can chart and alert on.
Social Media
Find posts that mention your brand or competitors, pull the conversation around them, and track engagement over time.
Recruiting & HR
Upload resumes in bulk and get contact details, skills, experience, education and quality scores back as JSON, ready for your ATS or spreadsheet.
Image results for a keyword, or a visual search from an image URL to find where your images appear.
$0.02 / req
Chart ranking trends, flag big drops and see which competitors moved above you.
Collect related_searches to find new keywords people search for around your topic.
Follow coverage of your brand and competitors with the Google News API.
Use the Google Images API to see where your product images show up.