# Google Lens Scraper - Reverse Image Search (`aboo.script/lens-google-scraper`) Actor

\[💰$2 / 1K] Google Lens reverse image search scraper that gets through Google bot checks. No login, no API key. Paste any image URL and get visual matches and exact matches with page URL, title, source site, image, price and stock, plus the real page link of every exact match.

- **URL**: https://apify.com/aboo.script/lens-google-scraper.md
- **Developed by:** [Aboo Script](https://apify.com/aboo.script) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google Lens Scraper - Reverse Image Search

![Google Lens Scraper](https://i.ibb.co/kYFyB7M/lens-google-banner.png)

**Google Lens Scraper** runs a reverse image search on [Google Lens](https://lens.google/) for any image URL and turns the results into clean, structured data you can download as JSON, CSV, Excel, or HTML. Paste one or more image links and get every visual match and exact match with page URL, title, source website, image, price, and stock status. No account, login, or API key required.

### Introduction

[Google Lens](https://lens.google/) is Google's visual search engine: give it a picture and it finds the web pages that show the same image or similar ones, including online shops that sell the product in the photo. It is one of the best tools to trace where an image is used, find a product from a photo, or spot copies of your own pictures.

This Google Lens scraper collects the same public results you see in your browser and turns them into a ready-to-use dataset. You can run it once, schedule it to run daily, or connect it to your own tools as a Google Lens API alternative.

### What data can you extract from Google Lens?

- 🔗 Page URL, website domain, and source name of every match
- 🏷️ Page title
- 🧭 Result type (visual match or exact match) and position
- 💲 Price as shown and as a number, plus stock status for product pages
- 📅 Publish date of the page (exact matches, when Google shows it)
- 🖼️ Image URL, image width and height, and Google thumbnail
- 🔎 The searched image URL, country, and language of each result

### Use Cases

- 🛍️ **Product research**: find which shops sell the product in a photo and at what price.
- 🕵️ **Image copyright monitoring**: see which websites reuse your photos, product shots, or artwork.
- 📈 **Competitor and reseller tracking**: discover marketplaces and resellers that list your products.
- 🧾 **Fact checking and OSINT**: trace where an image first appeared and where else it is used.
- 🤖 **AI and automation**: feed clean, structured visual search data into spreadsheets, dashboards, or AI workflows.

### How to scrape Google Lens step by step

1. Paste one or more public image links into **Image URLs**.
2. Choose the **Result types** you want: visual matches, exact matches, or both.
3. Set **Max results per image** to how many matches you want for each image and result type.
4. Click **Start** and wait for the run to finish.
5. Download your data in JSON, CSV, Excel, or HTML from the **Output** tab.

### Input

- **Image URLs**: public image links to search, such as `https://images.unsplash.com/photo-....jpg`. Google Lens links like `https://lens.google.com/uploadbyurl?url=...` are accepted too. Other Google pages are skipped.
- **Result types**: `visual` for visual matches (pages with similar images) and `exact` for exact matches (pages that use the same image). Both are selected by default.
- **Max results per image**: how many matches to save for each image and each result type. `0` saves all matches Google shows.
- **Country**: two-letter country code of the Google market, for example `us`, `gb`, or `de`.
- **Language**: language of the Google interface, for example `en`, `de`, or `fr`.
- **Proxy configuration**: Apify Proxy is on by default and datacenter proxies work well. Pick a proxy country to get results and prices from that market.

### Input Examples

Search two product photos for visual and exact matches:

```json
{
  "startUrls": [
    { "url": "https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=800" },
    { "url": "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=800" }
  ],
  "resultTypes": ["visual", "exact"],
  "maxResults": 5,
  "country": "us",
  "language": "en",
  "proxyConfiguration": { "useApifyProxy": true }
}
```

### Output

Each match is saved as one item in the dataset. Here is an example of a single item:

```json
{
  "url": "https://exploregilis.com/product/sony-black-headphone/",
  "type": "Exact match",
  "position": 1,
  "title": "Sony black headphone - Explore Gili's",
  "source": "Exploregilis",
  "domain": "exploregilis.com",
  "price": "Rp 269",
  "priceNumeric": 269,
  "inStock": true,
  "date": null,
  "imageUrl": "https://exploregilis.com/wp-content/uploads/2024/02/product-11.webp",
  "imageWidth": 800,
  "imageHeight": 800,
  "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQtdVvly9I-z2VZsgc561F2X77lEJ0xmu7M4mb-40UL923z6kkw",
  "inputImageUrl": "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=800",
  "country": "us",
  "language": "en",
  "scrapedAt": "2026-10-31T07:02:13.338Z"
}
```

You can download the dataset in JSON, CSV, Excel, XML, or HTML, or access it through the Apify API.

### Notes

- Google Lens shows about 60 visual matches and up to a few hundred exact matches per image; these are the most you can get for one image.
- The image must be reachable by Google without login. Images from sites that block Google (for example some Wikimedia links) return no matches.
- Exact match page links are released by Google with a short delay, so a run with exact matches can take about two minutes per batch of images.
- Results, prices, and currency follow the location of the proxy more than the **Country** setting. Choose a proxy country for local results.
- Price and stock status are only shown for product pages, and the publish date only for some exact matches; otherwise these fields are `null`.
- Some exact matches have no image link or thumbnail; those fields are `null`.

### Why use the Google Lens Scraper?

- ✅ **No login or API key**: paste image links and run, nothing to set up.
- 🎯 **Visual and exact matches in one run**: get similar images and pages that use the same image together.
- 🔗 **Real page links**: every exact match comes with the page address, not a Google redirect link.
- 🧹 **Clean data**: prices as numbers, dates in one standard format, and one item per match.
- 💸 **Pay for what you need**: set a result limit per image and keep every run small and cheap.
- 🔄 **Ready for automation**: schedule runs, export to Google Sheets, or connect to Make, Zapier, and n8n.

### FAQ

#### How many results can I scrape?

Set **Max results per image** to any number, or `0` for all matches. The limit applies to each image and each result type. See **Notes** for how many matches Google Lens shows per image.

#### Do I need a Google account?

No. The actor only collects publicly available search results. You do not need to log in or provide any account details.

#### Can I search images from my computer?

The actor searches images by URL. Upload your image to any public image host (or your own website) and paste the link into **Image URLs**.

#### Can I scrape data on a schedule?

Yes. Use Apify Schedules to run the actor every hour, day, or week, and get fresh data automatically.

#### Can I request a new feature or filter?

Yes. Right now the actor supports image URLs, result types, country, and language. If you need other outputs, such as text found in the image or AI answers about it, get in touch and they can be added.

#### Can I get a custom or private version?

Yes. The actor can be customized for your workflow, delivered as a private version, or a new scraper can be built for a different website. Use the contact details below.

### Need to scrape other Google platforms?

- [Google AI Mode Scraper - Answers & Sources](https://apify.com/aboo.script/google-ai-mode-scraper): full Google AI Mode answers with every cited source.
- [Google Ads Transparency Scraper](https://apify.com/aboo.script/adstransparency-google-scraper): ads and advertisers from the Google Ads Transparency Center.
- [Google Scholar Authors Scraper](https://apify.com/aboo.script/google-scholar-authors-scraper): researcher profiles, citations, and publications from Google Scholar.
- [Google Maps Contributor Scraper](https://apify.com/aboo.script/google-maps-contributor-scraper): reviews and photos posted by a Google Maps contributor.
- [Google Maps Business Posts Scraper](https://apify.com/aboo.script/google-maps-business-posts-scraper): updates, offers, and events posted by businesses on Google Maps.

***

**Need help or want a custom solution?**

- 📧 Email: aboo.script@gmail.com
- 🧩 More scrapers: [Apify profile](https://apify.com/aboo.script)

### Image Credit

Image credit: [Google Lens](https://lens.google/)

# Actor input Schema

## `startUrls` (type: `array`):

Public image URLs to search (for example https://images.unsplash.com/photo-....jpg). Google Lens links such as https://lens.google.com/uploadbyurl?url=... are accepted too. The image must be reachable without login.

## `resultTypes` (type: `array`):

Which Google Lens results to save: visual matches (pages with similar images) and/or exact matches (pages that use the same image). Both by default.

## `maxResults` (type: `integer`):

Maximum number of matches saved per image and per result type. 0 means all matches Google shows (about 60 visual matches and up to a few hundred exact matches).

## `country` (type: `string`):

Two-letter country code of the Google market, for example us, gb, de. Results and prices follow this market and the proxy location.

## `language` (type: `string`):

Language of the Google interface, for example en, de, fr, pt-BR.

## `proxyConfiguration` (type: `object`):

Each session uses its own IP address. Datacenter proxies work well; pick a proxy country to get results and prices from that market.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=800"
    },
    {
      "url": "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=800"
    }
  ],
  "resultTypes": [
    "visual",
    "exact"
  ],
  "maxResults": 5,
  "country": "us",
  "language": "en",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=800"
        },
        {
            "url": "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=800"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("aboo.script/lens-google-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [
        { "url": "https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=800" },
        { "url": "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=800" },
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("aboo.script/lens-google-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=800"
    },
    {
      "url": "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=800"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call aboo.script/lens-google-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aboo.script/lens-google-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/PXzoagHQXrdqnzhFk/builds/cNos4uXxeHhJjI5Sr/openapi.json
