Reverse image search API
A reverse image search API, powered by Google Lens: give it a public image URL and get back where that image appears across the web as rows — title, the page it lives on, source site and domain, plus image and thumbnail URLs. Billed per match delivered.
$0.002 per delivered match · $2 free every month · Failed runs never billed
$ curl $QD/google_lens/run \
-H "Authorization: Bearer $QD_API_KEY" \
-d '{"image_url": "https: //upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Colosseo_2020.jpg/960px-Colosseo_2020.jpg", "max_results": 20}'
{ "status": "done", "count": 20,
"results": [
{
"title": "…",
"link": "…",
"source": "…",
"domain": "…" } ],
"cost": 0.04 }
# 20 matchs × $0.002 · nothing delivered, nothing charged
What a reverse image search API does
Point it at a reachable image URL and it returns Google Lens's visual matches: pages showing that image or ones close to it, each with the hosting page and its domain so a match is something you can act on, not just look at. Switch on exact_matches and it reads the "pages using this exact image" tab instead, which adds the publish date and pixel size per entry — the view you want for provenance and image-rights work.
There is no official Lens API, and the surface is rendered and defended, so doing this yourself means driving a browser through Google's protections for every image. The collector runs that ladder service-side and returns parsed rows. Note what it is not: it finds where an image appears, it does not OCR the text inside the image or caption it — the output is matches and their sources.
What one match looks like
Every delivered match carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.
| Field | Type | What it holds |
|---|---|---|
rank | integer | 1-based position. |
title | string · nullable | Match title. |
link | string · nullable | Page the matching image lives on. |
source | string · nullable | Site name shown on the card. |
domain | string · nullable | Registrable host of the source page. |
image | string · nullable | Full-size image URL when exposed. |
thumbnail | string · nullable | Google-hosted thumbnail. |
date | string · nullable | Exact-matches only: publish date shown. |
size | string · nullable | Exact-matches only: pixel size shown ("426x320"). |
exact_match | boolean | Whether the exact-matches tab was read. |
Inputs
The whole request. Anything you leave out falls back to the default shown in the catalog.
| Input | Type | Required | What it does |
|---|---|---|---|
image_url | string | yes | Publicly reachable http(s) image URL to reverse-search. |
exact_matches | boolean | no | Return pages using this exact image (adds date + pixel size). |
country | string | no | ISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool. |
lang | string | no | Interface language (hl), e.g. en, it, de. |
max_results | integer | no | How many matches to deliver at most (1–40). You pay only for delivered matches. |
Pricing
Reverse image search API pricing
$0.002 per delivered match. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 1,000 matchs before you spend anything.
Pay as you go
- $2 free credit / month
- 60 requests / min
- List unit prices
Starter
- $15 free credit / month
- 300 requests / min
- 10% off unit prices
Growth
- $50 free credit / month
- 600 requests / min
- 20% off unit prices
Scale
- $250 free credit / month
- 1,200 requests / min
- 30% off unit prices
Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.
Integration
One POST, typed rows
Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/.
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/google_lens/run \
-H "Authorization: Bearer $QD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"image_url":"https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Colosseo_2020.jpg/960px-Colosseo_2020.jpg","max_results":20}'
What people build with the reverse image search API
Three shapes of work this endpoint was designed around.
Brand and asset protection
Run your product shots through exact-matches to find every page reusing them, with the date and size to prioritise.
Counterfeit and leak detection
Track where a hero image surfaces across marketplaces and domains you never licensed.
Image provenance
Given a photo, list the pages carrying it and their sources before you trust or attribute it.
Reverse image search API versus rolling your own
The differences that actually cost time when you build this in-house.
| DIY scraper | This collector | |
|---|---|---|
| What you send | An image and a browser to fight Google Lens with | A public image URL |
| Modes | Visual matches only | Visual matches, or exact-use pages with date and size |
| Each match | A thumbnail with no context | The hosting page, its domain and the source |
Does it use Google Lens or another engine?
Google Lens. The image URL you send is reverse-searched through Lens, and the collector returns its visual-matches tab by default or the exact-image tab when you set exact_matches.
Can it read text from the image (OCR)?
No. This returns where the image appears — matching pages and their sources — not the text inside it. Pulling the words out of a picture is OCR, a different task from reverse image search.
Does the image have to be public?
Yes. You pass a URL Google can fetch, so the image must be reachable over http(s). A file behind a login or sitting on your laptop will not work until it is hosted somewhere public.
What extra fields do exact matches add?
The exact-image tab returns, per page, the publish date shown and the pixel size ("426x320") on top of the usual title, link, source and domain — which is why it is the mode used for rights and provenance checks.
Is there a free reverse image search API?
Every account gets $2 of credit every month with no card, which is about 1,000 delivered matchs on this endpoint at $0.002 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.
How much does one run cost?
Multiply the rows you actually receive by $0.002. A run capped at 40 matchs — the maximum for this collector — costs $0.08 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.
Run the reverse image search API now
$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.