Real-Time Extraction
Extract image links as you enter keywords, ensuring you get your projects' most recent and relevant images.
This API allows you to extract data from Google Images without worrying about proxy rotation and data parsing. It's easy to scale and ideal for data analysis.
"images_results": [
{
"title": "QB Composite Football β Baden Sports",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTQKY0wi8KpUCdXqTL5bEkZ...",
"source": "www.badensports.com",
"original": "http://www.badensports.com/cdn/shop/products/f90v.jpg?v=1571438901",
"link": "https://www.badensports.com/products/qb-composite-football?srsltid=...",
"original_height": 1000,
"original_width": 1000,
"original_size": "99KB",
"know_more_link": "https://www.google.com/search/about-this-image?img=...",
"rank": 1,
"is_product": true,
"is_licensable": false,
"is_video": false
},
{
"title": "NCAA Composite Football | Wilson ...",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSk4pkSM_g8fcOXjLg7Z8QC6...",
"source": "www.wilson.com",
"original": "https://www.wilson.com/en-us/media/catalog/product/article_images/WTF1661XB_/...",
"link": "https://www.wilson.com/en-us/product/ncaa-composite-football-wf30023",
"original_height": 650,
"original_width": 650,
"original_size": "42KB",
"know_more_link": "https://www.google.com/search/about-this-image?img=...",
"rank": 2,
"is_product": true,
"is_licensable": false,
"is_video": false
}
]import requests
api_key = "5eaa61a6e562fc52fe763tr516e4653"
url = "https://api.scrapingdog.com/google_images"
params = {
"api_key": api_key,
"query": "football"
}
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";
// Construct the API endpoint URL
String apiUrl = "https://api.scrapingdog.com/google_images?api_key=" + apiKey
+ "&query=" + query;
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';
// Set the API endpoint
$url = 'https://api.scrapingdog.com/google_images?api_key=' . $api_key . '&query=' . $query;
// 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'
# Construct the API endpoint URL
url = URI.parse("https://api.scrapingdog.com/google_images?api_key=#{api_key}&query=#{query}")
# 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_images';
const params = {
api_key: api_key,
query: 'football',
};
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);
});titleimagelinksourcerankoriginaloriginal_heightoriginal_widthoriginal_sizeknow_more_linkis_productis_licensableis_videorankapi_keyquerycountryresultshtmlGoogle Images is a JavaScript-heavy, infinite-scroll grid that hides the real source behind gstatic thumbnails, so scraping it by hand is brittle and slow.
The grid serves low-res gstatic thumbnails, so resolving each to its original full-resolution URL means extra round-trips and fragile DOM digging.
Results load only as you scroll, so a headless browser must render JS and trigger scroll events to reach image rank 30 or beyond.
Width, height, file size, is_product, and is_licensable never appear in the raw markup, so you must inspect every original asset yourself.
Building a vision dataset means thousands of queries, and Google rate-limits and CAPTCHA-walls repeat searches from the same IP within minutes.
One request returns a clean images_results array with full-resolution originals, source hosts, dimensions, and license flags, already parsed.
Each result ships the full-resolution original link plus its host page, so you can download or attribute the real asset directly.
Image dimensions, file size, and the is_product, is_licensable, and is_video flags come pre-extracted for filtering and compliance.
Pass a two-letter country code to capture region-specific image rankings for localized trend and marketing research.
Rotating proxies and automatic CAPTCHA handling let you run millions of image queries without bans or infrastructure to maintain.
Extract image links as you enter keywords, ensuring you get your projects' most recent and relevant images.
Refine searches by country and result count, and return the full page HTML when you need it.
Get high-resolution images from the original source, which can be used in almost any use case.
A built-in rotating proxy pool changes the IP for every query, so large dataset pulls never trip rate limits.
Scrapingdog clears the CAPTCHA and anti-bot challenges on repeated image searches, so requests just return data.
Receive parsed image results in just a few seconds with our high-performance Google scraping infrastructure.
Pull thousands of labeled, real-world images per keyword to train and benchmark visual-recognition and ML models.
Automatically curate and insert optimal images into marketing campaigns based on analytics.
Track where a brand, logo, or product image surfaces across the web to spot misuse, counterfeits, and licensing gaps.
Generate engaging content by automatically updating image feeds based on user interactions and preferences.
Analyze image trends across fashion, retail, and design to feed market research and creative direction.
Use is_product flags and original links to source product shots from multiple angles and compare listings at scale.
Sign up in seconds and get free credits to start testing the Google Images API without any setup.
Access your unique API key from the dashboard and use it to authenticate every image request.
Call /google_images with a query and an optional country code to fetch image results.
Get an images_results array with original URLs, source hosts, dimensions, and flags.
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, matter of fact they had all the plug-and-play codes ready for me, It was seamless. I am about to upgrade as I have used up my trial credits
United States
I love how you can use it to scrape data from Google.
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 since it gave me all the info that my client's Google Business Profile was missing. Great service!
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.
Yes, other than the dedicated API for Google Images, we have APIs for Google Lens, Google Search, and more. You can check them out in the product section in the header for more info.
Google doesn't provide an official Google Images API.
Each API request consumes a certain number of credits based on the dedicated API you're using. For example, the Google Search API costs 5 credits per request. So, if you make one request to the Google Search API, it will deduct 5 credits from the available credits in your account. The number of credits required per request can vary depending on the specific API you're using.
Get 200 free credits to spin the API. No credit card required!