Reverse Image Search API - Google Lens | TinEye Alternative avatar

Reverse Image Search API - Google Lens | TinEye Alternative

Pricing

from $0.80 / 1,000 image searches

Go to Apify Store
Reverse Image Search API - Google Lens | TinEye Alternative

Reverse Image Search API - Google Lens | TinEye Alternative

Find where any image appears online. Bulk reverse image search via Google Lens with original source URL resolution. Covers Instagram, TikTok, eBay, Amazon and the entire web.

Pricing

from $0.80 / 1,000 image searches

Rating

0.0

(0)

Developer

Thodor

Thodor

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

What does Reverse Image Search - Google Lens Exact Match & URL Resolver do?

This actor is a reverse image search API that takes any image URL, runs it through Google Lens, and returns every exact-match page Lens found, including the page URL, title, publisher, publication date, and thumbnail. Google Lens no longer returns the direct URL of each matched image — only the page where it was found. To bridge that gap, this actor can optionally visit each result page and find the original-source image URL, so you get a direct download link instead of just the page address.

It is a clean, JSON-first Google Lens API for developers, OSINT teams, brand-protection workers, photographers, and e-commerce operators. Try it from the Apify Console, call it from the Apify API, schedule it as a cron job, or wire it into n8n, Zapier, Make, or your own pipeline. Apify handles residential proxy rotation, retries on 429 / /sorry/ blocks, scaling, and monitoring.

Unlike most reverse image search tools, this one forces vsint=FULL_IMAGE so Lens searches the whole frame instead of an auto-cropped subsection. The result is true exact matches, not visually-similar suggestions.

Why use this Google Lens reverse image search API?

  • Reverse image search at scale. Bulk / batch reverse image search across hundreds or thousands of source images per run. Output streams to the dataset as it lands. Export to JSON, CSV, Excel, or HTML.
  • URL resolver built in. Most reverse image search tools stop at the page URL. This actor goes a step further and finds the actual image file on each result page — so you get a real, downloadable image URL, not just where Lens saw it.
  • Exact-match focus. Full-frame Lens queries cut out the noise of visually-similar matches, so what you get back is genuinely the same image. Exactly what you need for image-source lookup, copyright takedowns, and image-theft detection.
  • Pay only for what you get. PAY_PER_EVENT pricing: one tiny charge per Lens search, one per match returned. No idle compute units, no surprises.
  • No CAPTCHA dance for you. Apify residential proxies rotate per attempt, with automatic retry on a fresh exit IP for any blocked request.

How to use this reverse image search Actor

  1. Open the actor in the Apify Console.
  2. Paste one or more image URLs into the Image URLs field. Direct links to .jpg, .png, .webp, .heic, or .avif files all work, and bigger originals give cleaner exact matches.
  3. Leave Resolve original-source image URL turned on (recommended) for the full pipeline, or turn it off for a faster, cheaper run when you only need the page URLs and titles.
  4. Click Start.
  5. Watch results stream into the Dataset tab. Download as JSON, CSV, Excel, or HTML when the run finishes, or fetch them via the API while the run is still going.

To automate this, hit the Apify API directly or use one of the official client libraries (Python, JavaScript). Every run accepts the same JSON body as the Input tab.

Input

FieldTypeRequiredDescription
imageUrlsarray of URLsyesImage URLs to reverse-search. Accepts bare strings or {"url": "..."} entries.
resolvebooleanno (default true)When true, each match is enriched with the original-source image URL — when we can still find it on the destination page. Sometimes the image has been moved or deleted, and you only pay for the matches we successfully resolve.
countrystring (ISO 3166-1 alpha-2)no (default US)Country used both as the Apify residential proxy exit region for every Google Lens request and as the gl= parameter sent to Lens (biases the regional index).

Example input JSON:

{
"imageUrls": [
"https://example.com/photo.jpg",
"https://example.com/another.png"
],
"resolve": true,
"country": "US"
}

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel, or read it as a spreadsheet directly from the Apify Console.

One dataset record per Lens match. A single input image typically produces several to several dozen output rows:

{
"source_image_url": "https://example.com/photo.jpg",
"page_url": "https://news.example.org/article/123",
"title": "Original story about the photo",
"publisher": "Example News",
"published_date": "2024-09-12",
"lens_thumbnail_url": "https://encrypted-tbn0.gstatic.com/...",
"lens_expected_width": 1920,
"lens_expected_height": 1080,
"scraped_date": "2026-05-14",
"resolved_image_url": "https://news.example.org/wp-content/uploads/2024/09/photo-full.jpg",
"resolve_status": "match_definitely",
"page_status": 200,
"thumbnail_mismatch": false
}

Data fields

FieldDescription
source_image_urlThe image you searched
page_urlWeb page where Google Lens found this match
titlePage title as Lens displays it
publisherPublisher / site name
published_datePublication date when Lens surfaces one (ISO 8601)
lens_thumbnail_urlThe thumbnail Lens shows for this match (usable as-is)
lens_expected_width / lens_expected_heightDimensions Lens reports for the match
scraped_dateDate this actor row was produced
resolved_image_urlThe original-source image file on the destination page (present when resolve=true)
resolve_statusmatch_definitely, match_maybe, match_no, no_candidate, fetch_failed, or thumbnail_failed
page_statusHTTP status of the destination page fetch
thumbnail_mismatchtrue when the resolved image didn't match the Google Lens thumbnail for this row, but matched a different Google Lens thumbnail from the same search

OSINT reverse image search and investigation. Trace where a photograph first appeared online, who has republished it, and on what dates. Investigators get the full-resolution original via the URL resolver, not just the Lens thumbnail. That is critical when verifying authenticity or building a timeline.

Dating profile verification. Run a list of profile photos through the actor to catch stolen or recycled images. Reverse image search for dating profiles works across Tinder, Hinge, and every other major dating app, anywhere Google has indexed the photos. Useful for both individual safety checks and Trust & Safety teams running bulk reverse image search for dating sites.

Scammer and catfish detection. A scammer's profile picture often originates from a stock photo, a public Instagram account, or another victim's social media. Reverse image search scammer photos to surface those origins and prior fraud reports.

Copyright protection, artwork, and image-theft detection. Photographers, illustrators, and stock-photo licensees use bulk reverse image search artwork to find unauthorized reuse. Get downloadable evidence URLs straight from the dataset and feed them into your DMCA workflow. Reverse image search copyright work is exactly what the URL resolver is designed for.

E-commerce product matching. Reverse image search clothing, an outfit, furniture, jewelry, or any product photo to find duplicate listings, knock-offs, and competitor pricing across marketplaces.

Social media monitoring and brand protection. Track image usage online across every major platform, and find where a brand asset, leaked screenshot, or viral photo has spread.

Specialized lookups. Reverse image search plants, mugshots, art, anime stills, or anything else where you want the authoritative page of context, not just visually-similar images.

Supported platforms and sources

Google Lens indexes the public web, so any page reachable by Googlebot can surface as a match. In practice you'll routinely see results from:

  • Social media: Facebook, Pinterest, Twitter / X, Instagram, TikTok, YouTube, LinkedIn, Tumblr, Reddit, VK
  • Marketplaces: eBay, AliExpress, Taobao, Depop, Shutterstock, Etsy
  • Image and art hosts: DeviantArt, Pixiv, Flickr, Imgur, ArtStation
  • News and publisher sites: every major outlet plus long-tail blogs
  • Dating sites and forums where Google has indexed the photo

The actor does not separately query each platform's own search endpoint. It leverages Google Lens' single, consistent index of all of them. That means a single reverse image search call effectively gives you a Facebook reverse image search, Pinterest reverse image search, Twitter reverse image search, TikTok reverse image search, Depop reverse image search, eBay reverse image search, and so on, wherever Google has crawled.

Note: private content (private Instagram, closed Facebook groups, WhatsApp messages, Discord servers) is not indexable by Google and therefore not reachable by Lens or this actor.

Tips and advanced options

  • Disable resolve for speed and cost savings. With resolve off, each input image finishes in a few seconds. With resolve on it can take 30-90 seconds per image because the actor visits every result page to find the original image. Turn it off when you only need page URLs and titles.
  • Use big, clean source images. Lens is most precise with originals ≥1000px on the long edge. Tiny thumbnails or heavily-cropped versions produce more visually-similar noise and fewer true exact matches.
  • Interpret resolve_status correctly. match_definitely = high-confidence match. match_maybe = likely match. match_no = page loaded but the original image wasn't found. no_candidate = page loaded but had no usable images. fetch_failed = paywall, captcha, or network block. thumbnail_failed = the Lens thumbnail couldn't be loaded, so the result page wasn't tried (we still kept the page URL).
  • thumbnail_mismatch=true means the resolved image didn't match the Google Lens thumbnail for this row, but did match a different Google Lens thumbnail from the same search. Usually happens when Lens displays a cropped or scaled thumbnail and the page hosts a clean original — the match is still real.
  • Schedule it. Use Apify Schedules to monitor image leaks or stolen art daily / weekly. Pair with Apify Webhooks to notify Slack, Discord, or email whenever new matches show up.
  • Combine with other actors. Pipe the output into a downstream actor that screenshots page_url, runs OCR, or scores publisher against a reputation list.

FAQ

Does this resolve images from the following domains? Yes, across the public web. From real runs we routinely get resolved image URLs from:

  • Social: Facebook, Instagram, Threads, TikTok, X / Twitter, Pinterest, LinkedIn, YouTube
  • Encyclopedic: Wikipedia (all language editions), Wikimedia Commons, Britannica
  • News & media: BBC, Forbes, Reuters, CNN, CNBC, India Today, Hindustan Times, The Daily Beast, and most other major outlets
  • E-commerce: Amazon, eBay, AliExpress, Shutterstock
  • Long tail: Medium, Substack, WordPress blogs, fandom wikis, personal sites

What doesn't resolve cleanly:

  • Private or login-walled content — private Instagram accounts, closed Facebook groups, Discord, WhatsApp, paywalled articles. If Google can't index it, we can't find it
  • Sites behind aggressive bot protection — parts of Reddit, namu.wiki, and certain regional outlets sometimes return fetch_failed

Why don't I get results for some images? Either Lens has no exact match in its index, or every proxy attempt was blocked. The actor logs both cases distinctly. Try a different version of the source image (typically a larger or less cropped one).

Why does the resolved image sometimes differ in size from the Lens thumbnail? Publishers often serve compressed, resized, or watermarked thumbnails on listing pages. The resolver looks for the largest, highest-priority visually-matching image on the page. That's typically the original asset, not the same crop Lens showed.

Can I use this for a video or a GIF? Lens treats animated GIFs as their first frame. Reverse image search on a video isn't directly supported. Extract a representative frame yourself and feed it as a still image.

How does this compare with other Apify Google Lens actors? This actor specializes in exact-match reverse image search with original-image URL resolution. Other Google Lens actors on Apify focus on visually-similar matches, OCR, translation, or AI-mode Lens features. If you need OCR or translation, look at those. If you need the page URL and the actual downloadable original image for each exact match, at scale, with structured JSON output, this is the right tool.