Documentation Python quickstart Blog Free tools Enterprise solutions hello@quanticdata.ioLog in

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.
Google Lens as JSON: the pages where an image appears, one object per visual match.

What you get

One match, one object.

Fields of each visual match
FieldWhat it holds
rankPosition
titleTitle of the page with the match
linkURL of that page
sourceSite name
domainDomain
imageURL of the matching image
thumbnailThumbnail when shown
descriptionText 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"}'
cURL: visual matches for a public image
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"])
Python: domain, title and page of each match
{
  "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 first match of the real answer to this request, 30 October 2026 (long URLs shortened).

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.

Request parameters for search_type: lens
ParameterMeaning
image_urlhttp(s) URL of the image to search by
countryProxy exit and Google locale (gl), ISO code: us, gb, de, it…
langInterface language (hl): en, de, it…
devicedesktop (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.