Track Google rankings on desktop and mobile
Get the organic positions for a keyword as a desktop or mobile searcher sees them in a given country, plus the SERP features around them.
What gets in the way
Rankings differ between desktop and mobile and between countries, and the features above the organic results, such as AI Overview and People Also Ask, change how much traffic a position is worth.
You need a structured SERP per keyword, device and country, with the real destination URL for each result so you can match it to your client's pages.
How CrawlerData solves it
Request each keyword with device set to desktop or mobile, plus country and language.
Google Search APIorganic_results gives position, title, link and snippet. Links are resolved to the destination site, not Google redirects.
Google Search APIThe same response includes ads, ai_overview, people_also_ask, local_pack, top_stories, knowledge_panel and related_searches when Google shows them.
Google Search APIUse autocomplete suggestions to find new keywords to track.
Google Autocomplete API
One request, structured data back
Find your domain in organic_results to get its position. Change "device" to "mobile" for the mobile SERP.
curl -X POST https://api.crawlerdata.com/v1/jobs \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"endpoint":"google-search","params":{"query":"best crm software","country":"us","device":"desktop"},"queue":"live"}'const res = await fetch('https://api.crawlerdata.com/v1/jobs', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({
"endpoint": "google-search",
"params": {
"query": "best crm software",
"country": "us",
"device": "desktop"
},
"queue": "live"
}),
});
const { job, result } = await res.json();import requests
res = requests.post(
"https://api.crawlerdata.com/v1/jobs",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"endpoint": "google-search",
"params": {
"query": "best crm software",
"country": "us",
"device": "desktop",
},
"queue": "live",
},
)
data = res.json(){
"search_parameters": {
"engine": "google",
"query": "best crm software",
"country": "us",
"language": "en",
"device": "desktop",
"page": 1
},
"organic_results": [
{
"position": 1,
"title": "If You Had to Pick the Best CRM for Small Business Today, ...",
"link": "https://www.reddit.com/r/CRMSoftware/comments/1vmy4xb/if_you_had_to_pick_the_best_crm_for_small/",
"displayed_link": "Reddit · r/CRMSoftware"
},
{
"position": 2,
"title": "Enterprise CRM Software: Salesforce vs HubSpot ...",
"link": "https://www.alphabold.com/crm-software-solutions-for-large-companies/",
"displayed_link": "https://www.alphabold.com › crm-software-solutions-for..."
}
],
"people_also_ask": [
{
"question": "Will CRM be replaced by AI?"
},
{
"question": "What is the #1 CRM platform?"
}
],
"related_searches": [
{
"query": "Best crm software reddit"
},
{
"query": "Best crm software for small business"
}
]
}Excerpt of the result object, with fields and items trimmed. Full response on the Google Search API page.
A worked example
Every endpoint costs 1 credit per request. Here is what a typical monthly workload costs with whole credit packs.
1,500 keywords × 2 devices (desktop and mobile) × 30 days
= 90,000 requests a month
1 credit per request, so 90,000 credits a month.
Buy one month at a time
2 × Starter (100,000 credits) for $100.00
$100.00 / month
$0.0011 per keyword check
Buy six months at once (best)
540,000 credits needed: 11 × Starter (550,000 credits) for $550.00
$91.67 / month
$0.0010 per keyword check, 10,000 credits left unused after six months
Packs are bought whole, like in the pricing calculator. Credits are valid for 6 months, so buying ahead can move you to a cheaper pack. Failed requests are not charged. Prices exclude sales tax/VAT.
Limits to plan for
- Each request returns one results page. Tracking beyond the first page means one request per page (page 1 to 10).
- Results reflect what Google shows at request time for the country, language and device you choose. Personalised results are not reproduced.
- SERP features appear only when Google shows them for that query. ai_overview is present only when an AI Overview is shown.
- A live request usually takes 10 to 120 seconds. Use the fast or regular queue for daily batches.
Questions
Is desktop or mobile priced differently?
No. Every request costs 1 credit on every endpoint, whatever the device.
Are the result links real URLs?
Yes. Organic links are resolved to the destination site, so you can match them to your pages directly.
Can I check page 2 and beyond?
Yes, with the page parameter, from 1 to 10. Each page is a separate request.
Do I get the AI Overview?
When Google shows one for the query, the response includes ai_overview with its text and sources. When it does not, the field is empty.
Which countries can I track?
31 countries, including us, gb, ca, au, de, fr, es, it, nl, in and jp.
Related solutions
Search data for AI and LLMs
Fresh Google results as JSON for LLM agents, tools and RAG pipelines.
See how it works
News and brand monitoring
Google News mentions of your brand, competitors and topics on a schedule.
See how it works
Local business data
Businesses by category and place, with rating, address, phone and website.
See how it works
APIs used
Google Search API
Organic results with real destination links, ads, AI Overview, People Also Ask, local pack, top stories, knowledge panel and related searches. Desktop or mobile.
from $0.30 / 1,000 requests
Google Autocomplete API
Google search suggestions for what someone has typed so far.
from $0.30 / 1,000 requests
Try it on your own data
Get 50 free credits when you sign up with your work email and verify it. Failed requests are never charged.