SERP API · Google Lens
Google Lens API
The pages Google Lens finds for an image, returned as JSON: title, link, domain, image and thumbnail of each visual match. Send an image URL with search_type: "lens". Google has no public Lens API; this is how teams run reverse image search as data, billed per search.
![A Google Lens call with one public image URL and no query: the image in the middle, framed, next to its visual matches with the first one marked, and the real visual_matches[0] JSON: rank 1, image, description, source pinterest.com and link. $0.0009 from the plain page, $0.002 rendered.](/serp-api/google/lens/hero.webp?v=20261030api)
What you get
One match, one object.
| Field | What it holds |
|---|---|
rank | Position |
title | Title of the page with the match |
link | URL of that page |
source | Site name |
domain | Domain |
image | URL of the matching image |
thumbnail | Thumbnail when shown |
description | Text near the image when shown |
The image must be reachable by URL (http or https).
Example
One request, one JSON answer.
curl -X POST https://api.quanticdata.io/v1/scraper/serp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"search_type":"lens","image_url":"https://www.gstatic.com/webp/gallery/1.jpg","country":"us"}'import requests
r = requests.post("https://api.quanticdata.io/v1/scraper/serp",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"search_type": "lens", "image_url": "https://www.gstatic.com/webp/gallery/1.jpg", "country": "us"})
for m in r.json()["payload"]["visual_matches"]:
print(m["domain"], m["title"], m["link"]){
"rank": 1,
"title": "10 1WRHKHS ideas love wallpaper backgrounds, whatsapp pictures, h letter images",
"link": "https://www.pinterest.com/4cinsightstest/1wrhkhs/",
"source": "pinterest.com",
"domain": "pinterest.com",
"image": "https://i.pinimg.com/originals/d4/a6/30/d4a63031f57bdcafb86ca02100fdd6d2.jpg",
"description": "Aerial View of a Valley with Mountains and Water You can do anything, Social media sche…"
}The answer is the usual envelope: payload.visual_matches holds the list above, payload.search_metadata says which tier answered and how long it took.
Parameters
Which image, which market.
| Parameter | Meaning |
|---|---|
image_url | http(s) URL of the image to search by |
country | Proxy exit and Google locale (gl), ISO code: us, gb, de, it… |
lang | Interface language (hl): en, de, it… |
device | desktop (default), mobile, ios or android |
Every parameter, for every vertical, is in the API reference.
Price
Per search, nothing monthly.
A successful search costs $0.0009 when Google's plain page answers and $0.002 when the rendered page is needed; search_metadata.path in the answer says which one you got. In our test on 30 October 2026 the call answered in 5.63 seconds.
Failed searches are not charged. There is no subscription: a $2 free credit every month covers the first calls, then you top up your balance by card, PayPal or crypto.
If you would rather pay per match than per search, the Reverse image search collector returns the same data at $0.004 per delivered match (up to 40 per run), with no pagination to handle.
Every price per search and per vertical: SERP API pricing.
Official API or this one
There is no public Lens API.
Google offers web detection in its Cloud Vision API, a separate product with its own results and pricing; Google Lens itself has no public API.
This endpoint returns the visual matches Google Lens shows for the image, as JSON, billed per successful search.
Use cases
What teams build with it.
Copyright and brand protection: where your images are reused, with the page and the domain.
Product matching: where a product photo appears for sale.
Verification: the earliest and most common sources of an image.
Before you call it
Questions developers ask
Can I upload a file instead of a URL?
The endpoint takes an image URL; publish the image at a reachable address first.
Is this the Cloud Vision API?
No. Cloud Vision is a separate Google product; this endpoint returns what Google Lens shows.
How many matches do I get?
As many as Lens shows for the image: 10 in our test on 30 October 2026. The reverse image search collector caps a run at 40 matches.
How fast is a call?
About 6 seconds in our test on 30 October 2026.
What does it cost?
$0.0009 per search from the plain page, $0.002 when the rendered page is needed; the reverse image search collector bills per match.
Start with the free credit.
Create an API key, run the example above and read the JSON. Pay per search after the $2 monthly credit, no subscription.