Rotating Proxy Pool
A built-in rotating proxy pool spreads high-volume crawls across fresh IPs so rank tracking never trips rate limits.
Fetch core organic search data at lightning speed without heavy SERP features or rich results. Designed for high-volume queries where performance matters more than depth.
"organic_data": [
{
"title": "NFL.com | Official Site of the National Football League",
"displayed_link": "https://www.nfl.com",
"snippet": "The official source for NFL news, video highlights, fantasy football, game-day coverage, schedules, stats, scores and more.",
"link": "https://www.nfl.com/",
"rank": 1,
"extended_sitelinks": [
{
"title": "Teams",
"link": "https://www.nfl.com/teams/"
},
{
"title": "Scores",
"link": "https://www.nfl.com/scores/"
},
{
"title": "Schedules",
"link": "https://www.nfl.com/schedules/"
}
]
}
]"people_also_ask": [
{
"question": "Who is the losingest NFL team?",
"id": "accdef_1",
"rank": 1,
"answers": "..."
}
]"ads": []
import requests
api_key = "5eaa61a6e562fc52fe763tr516e4653"
url = "https://api.scrapingdog.com/google/"
params = {
"api_key": api_key,
"query": "football",
"advance_search": "false",
"results": "10",
"country": "us",
"page": "0"
}
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json()
print(data)
else:
print(f"Request failed with status code: {response.status_code}")import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
// Set the API key and request parameters
String apiKey = "5eaa61a6e562fc52fe763tr516e4653";
String query = "football";
String advanceSearch = "false";
String results = "10";
String country = "us";
String page = "0";
// Construct the API endpoint URL
String apiUrl = "https://api.scrapingdog.com/google/?api_key=" + apiKey
+ "&query=" + query
+ "&advance_search=" + advanceSearch
+ "&results=" + results
+ "&country=" + country
+ "&page=" + page;
URL url = new URL(apiUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = reader.readLine()) != null) {
response.append(inputLine);
}
reader.close();
System.out.println(response.toString());
} else {
System.out.println("HTTP request failed with response code: " + responseCode);
}
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}<?php
// Set the API key and request parameters
$api_key = '5eaa61a6e562fc52fe763tr516e4653';
$query = 'football';
$advance_search = 'false';
$results = '10';
$country = 'us';
$page = '0';
// Set the API endpoint
$url = 'https://api.scrapingdog.com/google/?api_key=' . $api_key . '&query=' . $query . '&advance_search=' . $advance_search . '&results=' . $results . '&country=' . $country . '&page=' . $page;
// Initialize cURL session
$ch = curl_init($url);
// Set cURL options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Execute the cURL request
$response = curl_exec($ch);
// Check if the request was successful
if ($response === false) {
echo 'cURL error: ' . curl_error($ch);
} else {
echo $response;
}
// Close the cURL session
curl_close($ch);require 'net/http'
require 'uri'
# Set the API key and request parameters
api_key = '5eaa61a6e562fc52fe763tr516e4653'
query = 'football'
advance_search = 'false'
results = '10'
country = 'us'
page = '0'
# Construct the API endpoint URL
url = URI.parse("https://api.scrapingdog.com/google/?api_key=#{api_key}&query=#{query}&advance_search=#{advance_search}&results=#{results}&country=#{country}&page=#{page}")
# Create an HTTP GET request
request = Net::HTTP::Get.new(url)
# Create an HTTP client
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true # Enable SSL (https)
# Send the request and get the response
response = http.request(request)
# Check if the request was successful
if response.is_a?(Net::HTTPSuccess)
puts response.body
else
puts "HTTP request failed with code: #{response.code}, message: #{response.message}"
endconst axios = require('axios');
const api_key = '5eaa61a6e562fc52fe763tr516e4653';
const url = 'https://api.scrapingdog.com/google/';
const params = {
api_key: api_key,
query: 'football',
advance_search: 'false',
results: '10',
country: 'us',
page: '0',
};
axios
.get(url, { params: params })
.then(function (response) {
if (response.status === 200) {
const data = response.data;
console.log(data);
} else {
console.log('Request failed with status code: ' + response.status);
}
})
.catch(function (error) {
console.error('Error making the request: ' + error.message);
});titlelinkdisplayed_linksnippetrankextended_sitelinksfaviconsourcequestionidrankanswerstitlelinkdisplayed_linksnippetrankqueryadvance_searchpagecountrylanguagedomaincountrylanguagedomainlocationuulecrtbssafefilternfprmob_searchhtmlBulk rank tracking runs into Google rate limits, IP bans, and bloated full-SERP payloads you never parse.
Thousands of keyword checks per hour from your own IPs trip Google rate limits and stall daily rank crawls.
Scraping the full SERP drags down AI overviews, shopping blocks, and panels you discard, wasting credits and parse time.
Premium SERP endpoints and residential proxy bills make tracking millions of keywords a month unworkable.
Re-parsing shifting Google HTML for a clean organic rank breaks constantly and corrupts your historical datasets.
One lightweight API call handles proxies, CAPTCHA, parsing, and scaling, returning only the core organic data you need.
Fetch Google search results significantly faster by avoiding heavy SERP elements and rich result blocks.
Smaller payloads mean reduced processing, storage, and credit consumption for high-volume workflows.
Built for scenarios where speed and consistency matter more than deep SERP enrichment.
Work with lean, predictable organic results that are easy to store, compare, and analyze.
A built-in rotating proxy pool spreads high-volume crawls across fresh IPs so rank tracking never trips rate limits.
CAPTCHAs and anti-bot challenges are handled for you, keeping high-throughput SERP pipelines running.
Provides clean, predictable JSON containing titles, links, positions, and snippets for organic listings only.
Designed with a reduced data payload to deliver significantly faster responses compared to the full Google Search API.
Returns only core organic search results without rich SERP features like images, videos, shopping, or AI components.
At just 5 credits per request, the light endpoint keeps large-scale rank tracking and bulk SEO pipelines affordable.
Run frequent rank checks for large keyword sets where speed and consistency matter more than rich SERP features.
Capture lightweight SERP snapshots at scale for auditing, comparison, or historical storage without heavy payloads.
Trigger alerts when rankings change for monitored keywords using fast, low-latency search result checks.
Quickly validate keyword positions across thousands of queries without the cost of full SERP enrichment.
Power internal dashboards with fast-loading organic result data that updates frequently and stays lightweight.
Test keyword visibility, title changes, or snippet shifts in automated pipelines where response time is critical.
Sign up and get free credits to start testing the Light Search API.
Access your unique API key from the dashboard and use it to scrape the data.
Call GET /google with your query and a country code for fast organic results.
Get a lean organic_data array with title, link, snippet, and rank for every listing.
Start your web scraping journey with 200 free credits. Test our service and upgrade to one of the plans below. Cancel anytime.

I got the free trial and in less than a minute I already integrated with their API to scrape Google. Super fast and easy to use.
United States
I love how you can use it to scrape data from Google. The light search is incredibly fast for high-volume queries.
Oslo, Norway
Scrapingdog is an awesome service. I use it with my Local Leads Sniper system and thanks to it I have been able to land a few clients.
Mexico
Reliable, and simple to use! It’s also inexpensive and has packaged solutions for every need (Google, LinkedIn). Highly recommend.
France
Yes, the API has a rate limit depending on your chosen subscription plan. For detailed information on request limits and how to manage them efficiently, please refer to documentation or message us on live chat.
You can use our Universal Search API to extract data from multiple search engines like Google, Bing, Baidu & Yahoo with a single API call. The output data you get is filtered and structured.
Yes, other than the data from search results, we have dedicated APIs for Google Scholar, Google Images, Google Lens, etc.
Our development team continuously monitors changes in Google's SERP layout and updates accordingly to ensure consistent and reliable data extraction.
Each API request consumes a certain number of credits based on the dedicated API you're using. For example, the Google Light Search API costs 5 credits per request. The number of credits required per request can vary depending on the specific API you're using.
Google does offer an API to extract search results, but there are restrictions to it, such as a cap on daily request limit. Moreover, the API is very expensive.
Get 200 free credits to spin the API. No credit card required!