Exact Google positions for any keyword and location, as JSON.
A rank tracker is a loop over keywords that records where each URL sits. You hit one endpoint with the keyword and a location, and get ranked results back as JSON in about 1 to 1.5 seconds.
One curl call checks one keyword:
The organic array comes back position-ordered. Flatten it to one row per result and you have a rank log you can diff day over day:
To read a single site's rank, find its row and take the position. To watch a whole set, store the rows with a timestamp and compare pulls. That loop is the entire tracker.
From zero to your first rank log in about two minutes:
Create a free account. Try it free, no card needed.
Copy your key from the dashboard. Or try a keyword in the playground first, no code at all.
Run the curl above with your keyword. The organic array is your rank log; store it with a timestamp and diff pulls.
Every web search returns the full organic list plus the SERP features you track alongside a ranking. All of it is clean JSON, so there is no HTML parsing on your side.
People-also-ask and related searches are the content-gap signal SEO teams want next to a position. You get both in the same response, so a rank tracking API on CrustAPI doubles as a keyword-idea feed without a second call.
You can scrape Google yourself. The cost shows up later, in proxies that get blocked and parsers that break every time the SERP layout shifts.
| DIY scraper | CrustAPI | |
|---|---|---|
| Proxies and blocks | Your problem | Handled for you |
| Output | Raw HTML to parse | Position-ordered JSON |
| Billing | Pay for every request | one charge per check, empties free |
| PAA and related | Parse them separately | In the same response |
| Location targeting | Build it yourself | Pass a location string |
Each successful rank check is billed once at your Google Search rate. A check that returns zero results costs nothing.
| Deposit | Google Search / 1,000 requests | Maps / 1,000 businesses | LinkedIn reads / 1,000 requests | People, Jobs, Refresh / 1,000 units |
|---|---|---|---|---|
| $10+ | $1.00 | $1.96 | $6.00 | $1.96 |
| $149+ | $0.76 | $1.49 | $4.50 | $1.49 |
| $549+ | $0.56 | $1.10 | $3.30 | $1.10 |
| $1,999+ | $0.41 | $0.80 | $2.45 | $0.80 |
| $6,500+ | $0.33 | $0.65 | $1.95 | $0.65 |
| $27,500+ | $0.28 | $0.55 | $1.65 | $0.55 |
| $50,000+ | $0.26 | $0.50 | $1.50 | $0.50 |
| $100,000+ | $0.20 | $0.40 | $1.50 | $0.40 |
Every eligible account gets $6 of free usage monthly. Each deposit keeps its prices until spent; paid funds never expire. People and Jobs bill per successful search, Refresh per accessible profile. Full profiles in People use the read rate per full profile. See all billing details.
Larger deposits unlock lower endpoint prices. Each deposit keeps its prices until spent. See the full deposit table on the pricing page. Prices in USD, ex-tax.
At standard Google Search prices, 500 keywords checked daily for 30 days cost $15 if every check returns results. Paid funds never expire.
We give you the raw ranked data. We do not draw the charts or send the "you dropped to page two" email.
You want a finished dashboard: if you need share-of-voice graphs, alerting, and a client-facing report out of the box, a packaged tracker like Ahrefs or Semrush is the faster path. CrustAPI is the data layer you build one of those on, not the UI.
Related: Google Search API · SERP API · Scrape Google search results
It is an endpoint you call with a keyword to read where pages rank in Google's results. CrustAPI returns the organic list position-ordered as JSON, plus people-also-ask and related searches, so you can log positions over time and build your own tracker on top.
Send a GET to /v1/search?type=web with your keyword in the q parameter and your key in the x-api-key header. The organic array comes back in rank order, so the index of the URL you care about is its position. Each query takes about 1 to 1.5 seconds.
Yes. Pass a location string with the query and Google returns results for that place. That is how you track city-level and local rankings separately from national ones.
Google Search costs $1.00 per 1,000 successful requests at standard prices, down to $0.20 for the largest deposit. Empty and failed searches are free. Every eligible account gets $6 of free usage monthly. Paid funds never expire.
No. CrustAPI gives you the raw ranked data as JSON, and you build the dashboard, the diffing, and the alerts on top. If you want a finished UI instead, a packaged tool like Semrush or Ahrefs is the better buy.
Yes. Both come back in the same web search response wherever Google shows them, so your rank tracker doubles as a keyword-idea and content-gap feed with no extra calls.
CrustAPI hands you Google's ranked results as clean JSON by keyword and location, at the applicable price per successful check with empties free. Start on the free tier and put a rank tracker on top of data you control, not a per-seat tool you rent.
Try for free