Rotating Proxy Network
Our API includes a built-in rotating proxy system that automatically changes IP addresses for every Google Lens request.
Google Lens API allows you to extract related data from Google Lens. The output data will have title, source, link, and thumbnail in structured JSON.
"lens_results": [
{
"position": 1,
"title": "\"The Rocky Horror Picture Show\" 35th Anniversary...",
"source": "imdb.com",
"source_favicon": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=...",
"link": "https://www.imdb.com/media/rm2580580096/rg4018969088",
"thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:..."
}
]import requests
api_key = "5eaa61a6e562fc52fe763tr516e4653"
url = "https://api.scrapingdog.com/google_lens"
params = {
"api_key": api_key,
"url": "https://lens.google.com/uploadbyurl?url=https://i.imgur.com/HBrB8p0.png"
}
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.net.URLEncoder;
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 imageUrl = "https://lens.google.com/uploadbyurl?url=https://i.imgur.com/HBrB8p0.png";
// Construct the API endpoint URL
String apiUrl = "https://api.scrapingdog.com/google_lens?api_key=" + apiKey
+ "&url=" + URLEncoder.encode(imageUrl, "UTF-8");
URL urlObj = new URL(apiUrl);
HttpURLConnection connection = (HttpURLConnection) urlObj.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';
$image_url = 'https://lens.google.com/uploadbyurl?url=https://i.imgur.com/HBrB8p0.png';
// Set the API endpoint
$url = 'https://api.scrapingdog.com/google_lens?api_key=' . $api_key . '&url=' . urlencode($image_url);
// 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'
image_url = 'https://lens.google.com/uploadbyurl?url=https://i.imgur.com/HBrB8p0.png'
# Construct the API endpoint URL
url = URI.parse("https://api.scrapingdog.com/google_lens?api_key=#{api_key}&url=#{URI.encode_www_form_component(image_url)}")
# 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_lens';
const params = {
api_key: api_key,
url: 'https://lens.google.com/uploadbyurl?url=https://i.imgur.com/HBrB8p0.png',
};
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);
});lens_resultspositiontitlesourcesource_faviconlinkthumbnailpositionlens_resultsLens has no public API and runs on a JavaScript-rendered canvas, making DIY reverse-image scraping brittle and hard to scale.
Lens has no query string. You must wrap each image in an uploadbyurl link and wait for the match grid to render.
Thumbnail and favicon URLs use gstatic CDNs with short-lived tokens, so scraped references rot unless you re-host them.
Lens ranks matches by visual similarity in lazy-loaded tiles, so pulling position, title, source, and link is painstaking.
Repeated lookups trip reCAPTCHA and IP bans fast, so a reverse-image pipeline needs constant proxy rotation and fixes.
One API call handles proxies, CAPTCHA, rendering, parsing, and scaling, so you focus on your visual data.
Get deeper insights from images by automatically detecting and analyzing objects, scenes, and elements.
Supercharge your applications with visual search functionality in a single structured response.
Save time by automating large-scale image data extraction with stable performance and no maintenance.
Integrate image and text extraction directly into your applications with easy-to-use JSON responses.
Our API includes a built-in rotating proxy system that automatically changes IP addresses for every Google Lens request.
Scrapingdog automatically bypasses the CAPTCHA and anti-bot protection Google uses, so requests run without blocks.
All important fields like title, source, link, and thumbnail are ready to use without complex parsing.
Our API ensures you always receive the latest Google Lens visual matches and image results instantly.
Our powerful infrastructure is designed to deliver reliable results every time, with optimized proxy rotation.
Receive Google Lens results in just a few seconds with our high-performance visual scraping API.
Power image-based product search for shopping platforms, letting users discover items by uploading a photo instead of typing a query.
Detect inappropriate content, logos, and watermarks at scale by matching user-uploaded images against Google Lens visual results.
Analyze trends in user-uploaded images to understand what your audience is searching for and refine your campaigns.
Enhance visual recognition systems by feeding structured Google Lens match data into your AI and machine learning pipelines.
Classify and label property photos automatically using visual search results to keep large image libraries organized.
Extract and organize archival records and historical imagery by collecting visual matches and their sources.
Sign up and get free credits to start testing the Google Lens API.
Access your unique API key from the dashboard and use it to scrape visual search data.
Wrap your image in an uploadbyurl link and send it as the url param.
Receive a clean lens_results array with position, title, source, link, and thumbnail for each match.
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.
United States
I love how you can use it to scrape data from Google.
Norway
Scrapingdog is an awesome service. It enabled me to land clients.
Mexico
Reliable and simple to use. It is also inexpensive and has a packaged solution for every need. Highly recommend.
France
At Scrapingdog, we have created a dedicated API for it, you can test it for free with 200 credits.
Unfortunately, Google doesn't have an official Lens API. However, you can use 3rd party providers like Scrapingdog.
Of course, you can scrape it using any programming language. However, to scale this process, you need an API.
Yes, Scrapingdog provides dedicated APIs for Google Images, Google Scholar, and Google Search, among others.
Each request consumes credits based on the API used. For example, the Google Search API costs 5 credits per request.
Get 200 free credits to spin the API. No credit card required!