Scraper API

Google Rank Checker API

for any keyword, location, and device

Check where any site ranks on Google for a keyword. One request returns every organic result as clean JSON, with its position, title, link, and displayed URL, plus the related searches sitting around it, and proxies handled for you.

SUCCESS
99.5%

of requests succeed

P50
1.7s

median response

P95
3.9s

95% finish faster

PRICE
$0.37

per 1k rank checks at volume

Stop maintaining scrapers

Google's layout shifts weekly. Your rank tracker shouldn't care.

  • Positions to recount as the layout shifts
  • Local packs and ads bleeding into results
  • Proxy rotation and retries per location
  • Wrong-country results on shared IPs
  • Re-parse the SERP after each redesign
One integration commit replaces a backlog you’ll never finish.
scraper | git log
hotfix: positions off after a layout shift
fix: local pack counted as an organic result
fix: rate-limit loop on geo-targeted checks
chore: rotate proxies for rank runs again
fix: selector drift broke position parse
hotfix: ads miscounted in the ranking
fix: pagination changed past page one
chore: refresh residential IPs by country
fix: rate limited at tracking volume
fix: wrong-country results on shared IPs
hotfix: positions off after a layout shift
fix: local pack counted as an organic result
fix: rate-limit loop on geo-targeted checks
chore: rotate proxies for rank runs again
fix: selector drift broke position parse
hotfix: ads miscounted in the ranking
fix: pagination changed past page one
chore: refresh residential IPs by country
fix: rate limited at tracking volume
fix: wrong-country results on shared IPs
hotfix: positions off after a layout shift
fix: local pack counted as an organic result
fix: rate-limit loop on geo-targeted checks
chore: rotate proxies for rank runs again
fix: selector drift broke position parse
hotfix: ads miscounted in the ranking
fix: pagination changed past page one
chore: refresh residential IPs by country
fix: rate limited at tracking volume
fix: wrong-country results on shared IPs
hotfix: positions off after a layout shift
fix: local pack counted as an organic result
fix: rate-limit loop on geo-targeted checks
chore: rotate proxies for rank runs again
fix: selector drift broke position parse
hotfix: ads miscounted in the ranking
fix: pagination changed past page one
chore: refresh residential IPs by country
fix: rate limited at tracking volume
fix: wrong-country results on shared IPs
feat: integrate HasData API
Code Examples

One GET Request. That's the whole integration.

Start with just a query. Add more parameters when your use case needs them.

request example
curl -G 'https://api.hasdata.com/scrape/google-light/serp' \
	--data-urlencode 'q=Coffee' \
	--data-urlencode 'location=Austin,Texas,United States' \
	--header 'x-api-key: <YOUR_API_KEY>' \
	--header 'Content-Type: application/json'
q * Search Query
Specify the search term for which you want to scrape the SERP.
location Location
Google canonical location for the search.
uule Encoded Location
The encoded location parameter.
domain Domain
Google domain to use. Default is google.com.
gl Country
The two-letter country code for the country you want to limit the search to.
hl Language
The two-letter language code for the language you want to use for the search.
lr Set Multiple Languages
The 'lr' parameter specifies the language of the websites to return results from. This parameter filters results based on the language of the web content.
tbs Advanced Search Parameters
This parameter supports various filters that can be combined by separating them with a comma. Here are examples of these filters: - Specific Time Range: `cdr:1,cd_min:10/17/2018,cd_max:3/8/2021` - Filter results to show only those within the defined date range. - Sort by Date: `sbd:1` - Results are sorted by date, from the most recent to the oldest. - Sort by Relevance: `sbd:0` - Results are sorted by relevance to the search query. - Sites with Images: `img:1` - Only show results from webpages that contain images. Quick Date Range (qdr): - `qdr:h` - Show results from the past hour. - `qdr:d` - Limit results to the past day. - `qdr:w` - Filter results from the week. - `qdr:m` - Display results from the past month. - `qdr:y` - Show results from the past year. - `qdr:h10`, `qdr:d10`, `qdr:w10`, `qdr:m10`, `qdr:y10` - Specify a number to show results from the last 10 hours, days, weeks, months, or years respectively. These filters enhance the control over search results, allowing for precise retrieval of information based on specific criteria.
safe Adult Content Filtering
Adult Content Filtering option.
filter Results Filtering
Defines whether to enable or disable the filters for 'Similar Results' and 'Omitted Results'. Set to 1 (default) to enable these filters, or 0 to disable them.
start Result Offset
This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page. For Google Local Results, the start value must be in multiples of 20, such as 20 for the second page, 40 for the third page, etc.
num Number of Results
Number of results per page, ranging from 10 to 100.
TRY ALL 12 PARAMETERS FREE
No-Code Alternative

Check Google rankings without code

Prefer no code? Pull the same ranked results from a visual scraper. No API, no setup, just a keyword and a location.

Google SERP Scraper
Google SERP Scraper
Keyword
best running shoes
Location
United States
Run scrape
Response

The SERP, one predictable schema

Every organic result carries its position. The lightweight endpoint returns organic results and related searches. Switch to the full SERP endpoint for the AI Overview and People Also Ask shown below.

organicResults.json
[
  {
    "position": 1,
    "title": "The 15 Best Running Shoes of 2026, Tested by Runner's World",
    "link": "https://www.runnersworld.com/gear/a19663621/best-running-shoes/",
    "displayedLink": "www.runnersworld.com › Running Gear › Running Shoes",
    "snippet": "Our Editors' Top Pick: Adidas Adizero Evo SL. Our Best Value Pick: New Balance...",
    "date": "Jul 6, 2026"
  }
]
Fields in organicResults
position number

Rank of the result on the page (1-based)

title string

Result title as shown on Google

link string

Destination URL

displayedLink string

Breadcrumb-style URL Google shows

snippet string

Description text under the title

date string

Publish date when Google shows one

What We Offer

An all-in-one scraping service

Every feature you need to collect data from thousands to millions of requests.

Loved by developers

Teams that deleted their scraper

Now it's the part of the pipeline they don't think about

4.8 ★★★★★
across 100+ reviews on 5 platforms
Trustpilot Trustpilot ★★★★★

HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.

Denver Sinclair
Denver Sinclair
Capterra Capterra ★★★★★

The SERP API provides accurate, structured search engine data across multiple regions and devices, enabling us to monitor market trends and performance with ease.

DD
Doaa D.
Trustpilot Trustpilot ★★★★★

We use the Google SERP API by HasData for its AI-overview feature. It delivers real-time data with consistent reliability. The JSON output includes an actual SERP screenshot, ensuring full accuracy.

Liam Hawthorne
Liam Hawthorne
Capterra Capterra ★★★★★

We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.

JN
Jacob N.
Trustpilot Trustpilot ★★★★

We are using this service for google scraping and it works well. We used to use several services, but this looks like best match efficiency/cost.

Jan Svanda
Jan Svanda
CEO at E-solutions LLC
Pricing

Plans that get cheaper at scale

Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.

Free
$0 /mo
One-time free trial
200 rank checks to start
1 concurrent request
Team seats
Community support
Start free
Startup
$41 /mo
$1.02 / 1k rank checks
40K rank checks / month
15 concurrent requests
Team seats
Email support
Get started
Business
Recommended
$83 /mo
$0.41 / 1k rank checks
200K rank checks / month
30 concurrent requests
Team seats
Priority email support
Get started
Enterprise
$208 /mo
$0.35 / 1k rank checks
50 concurrent requests
Team seats
Dedicated account manager
Get started
Monthly rank check volume
Free 200K 1M 4M 12M 20M
Best fit
Business
rank checks / mo
200K
Concurrency
30
$ / 1k rank checks
$0.41
$83 /mo
Get Started

Start with 200 free rank checks. No credit card required.

FAQ

Questions, answered

1 Grab your API key 2 Send a GET request 3 Get structured JSON

Your first rank check
is minutes away

200 rank checks free · no credit card