POST /v1/lens
Google Lens API
Send an image URL and get back what Google Lens finds: visually similar images and the pages and products they come from. Reverse image search for agents and product tools.
Overview
What the Google Lens API does
The Google Lens API runs a Lens search for a public image URL and returns the visual matches: each with a title, the source site, the page link and domain, and image URLs.
Lens is heavier to run than a text search, so a call is 2 credits. The image must be reachable over HTTPS without a login.
What you get
-
results[]array - Visual matches: position, title, source, link, domain, image_url, thumbnail_url.
-
requestobject - Echo of the normalized request (endpoint, engine, q, country, language, page…), handy for logging.
-
metaobject - request_id, credits_used, cached, engine, latency_ms, resolved_urls and parse_quality. parse_quality=empty means the call was not billed.
Request
curl https://api.serpkite.com/v1/lens \
-H "Authorization: Bearer $SERPKITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://upload.wikimedia.org/wikipedia/commons/a/a9/Example.jpg"}'Response (illustrative, placeholder domains)
{
"request": {
"endpoint": "lens",
"engine": "google",
"url": "https://upload.wikimedia.org/wikipedia/commons/a/a9/Example.jpg"
},
"results": [
{
"position": 1,
"title": "Example.jpg - Wikimedia Commons",
"source": "Wikimedia Commons",
"link": "https://commons.wikimedia.org/wiki/File:Example.jpg",
"domain": "commons.wikimedia.org",
"image_url": "https://upload.wikimedia.org/wikipedia/commons/a/a9/Example.jpg"
},
{
"position": 2,
"title": "Sample image used in documentation",
"source": "Example Docs",
"link": "https://docs.example.com/images/sample",
"domain": "docs.example.com",
"thumbnail_url": "https://thumbs.example.net/sample-thumb.jpg"
}
],
"meta": {
"request_id": "req_01J8ZK4M6Q2V7",
"credits_used": 2,
"engine": "google",
"cached": false,
"latency_ms": 812,
"resolved_urls": true,
"parse_quality": "ok"
}
}
Every response also carries X-Credits-Used, X-Credits-Remaining,
X-Cache and X-Tokens-Estimate headers.
Run this query in the playground
Reference
Parameters
The parameters /v1/lens accepts, in the JSON body or the query string.
| Name | Type | Default | Description |
|---|---|---|---|
url
required
|
string | – | Public HTTPS URL of the image to search with. |
country
|
string | us | Country to search from, as a two-letter ISO code (us, gb, de, in…). |
language
|
string | en | Interface language, as a language code (en, de, fr, pt-BR…). |
fields
|
string | – | Comma-separated projection, e.g. results.title,results.link,knowledge_graph. Cuts tokens. |
max_age
|
integer | – | Accept a cached result up to this many seconds old. Cache hits cost 50% of the credits. |
Full reference, error codes and headers are in the API docs. Send a JSON array of up to 100 request objects to run them in one call.
Use cases
What people build with the Google Lens API
Photo to product
Identify a product from a photo and find where it's sold.
Image provenance
Find where else an image appears online, for trust and safety or copyright checks.
Multimodal agents
Let an agent look up what's in a user-supplied image.
Pricing
Google Lens API pricing
Cost per call
2 credits
per image
- From $1.20 per 1,000 calls at volume.
- Credits never expire. No subscription.
- Failed, empty and blocked calls are refunded.
- 2,500 free credits = 1,250 calls, then 1,000 credits a month.
For reference: Serper lists Google searches at $1.00 per 1k on its entry tier and $0.30 at its best tier, and its credits expire after 6 months. SerpKite credits cost $1.00 to $0.60 per 1k.
| Pack | Price | Per 1k credits | Per 1k calls | Calls per pack |
|---|---|---|---|---|
| Starter | $10 | $1.00 | $2.00 | 5,000 |
| Growth | $50 | $0.80 | $1.60 | 31,250 |
| Pro | $300 | $0.60 | $1.20 | 250,000 |
FAQ
Google Lens API: common questions
Keep exploring
Related APIs and integrations
Start building
Start with the Google Lens API
2,500 free credits, then 1,000 every month. No credit card.