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

Image scraper API

Search engines · v1.1.0 · search_images

$0.0003 / image

$0.30 / 1K · pay per delivered image

An image scraper API returns Google Images results as rows: title, thumbnail URL, the page hosting the image and that page's host. Send a query and a country; get back a grid you can filter, store and attribute — billed per delivered image.

$0.0003 per delivered image · $2 free every month · Failed runs never billed

What it does

What an image scraper API does

The useful part of an image search is rarely the picture alone: it is the page behind it. Every row here carries both, so a dataset of visual references keeps its source, and an attribution or takedown check has something to point at.

Served from the same no-JS tier as the web search collector, so a run of 100 images costs cents and needs no browser. Full-size image URLs come through only when Google exposes them — when it does not, the field stays null rather than being guessed from the thumbnail.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
querystringyesWhat to search, e.g. "proxy server diagram".
countrystringnoISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool.
langstringnoInterface language (hl), e.g. en, it, de.
max_resultsintegernoHow many images to deliver at most (1–100). You pay only for delivered images.

Outputs — 9 fields, one row per image

What one image looks like

Every delivered image carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position.
titlestring · nullableImage title as shown.
thumbnailstring · nullableThumbnail URL (always present in the grid).
imagestring · nullableFull-size image URL when Google exposes it.
sourcestring · nullableHost of the page showing the image.
source_urlstring · nullableURL of the page showing the image.
domainstring · nullableHost of the source page, without www.
title_truncatedbooleanTrue when Google printed the title cut with an ellipsis.
pageintegerWhich result page this row came from.

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/scraper/collectors/search_images/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/search_images/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"proxy server diagram","country":"us","max_results":20}'

Example response

POST /v1/scraper/collectors/search_images/run
$ curl $QD/search_images/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"query": "proxy server diagram", "country": "us", "max_results": 20}'
{ "status": "done", "count": 20,
  "results": [
    {
      "title": "…",
      "thumbnail": "…",
      "image": "…",
      "source": "…" } ],
  "cost": 0.006 }
# 20 images × $0.0003 · nothing delivered, nothing charged

Try it

Image search, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

Get my free API key
Image scraper API: from query and country, QuanticData reads the image results and returns one row per image with title, domain and rank, at $0.0003 per delivered image.
You send query and country; the run goes out through a residential exit and comes back as images with rank, title and source — 9 fields on every row — and you are billed $0.0003 for each image actually delivered, nothing for a run that delivers none.
$0.0003 / image6,666 images on the free $2 every month
Semantic inputquery, country, lang — no URL lists
Up to 100images per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

Pricing

Image scraper API pricing

$0.0003 per delivered image. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 6,666 images before you spend anything.

$0.0003per delivered image$0.3 per 1,000 delivered images
6,666 imageson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

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.

What people build with the image scraper API

Three shapes of work this endpoint was designed around.

Visual competitive research

Collect what images rank for a product query and which sites they come from.

Dataset seeding

Build an image reference list with the source page attached, ready for review before download.

Brand monitoring

Watch which pages surface for your product photos and where they are hosted.

Image scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
AttributionThumbnail only, source lostSource page and host on every row
Cost per 1,000Rendered pages, browser time$0.30, HTTP tier only

What people search for

Live autocomplete demand around Image search, pulled with our own Keyword ideas collector.

Building an image dataset you can defend

There is no official API that returns Google Images results — Custom Search can be pointed at images but queries a configured index with a quota measured in hundreds per day. So image datasets get built by scraping, and the question becomes what you keep.

The field that decides whether a dataset survives review is source_url. A folder of images with no provenance cannot be licence-checked, cannot be attributed and cannot be cleaned when a rightsholder objects. Every row here carries the hosting page and its host, so a dataset stays traceable back to where each image came from — which is the difference between an asset and a liability.

The full-size image URL is nullable on purpose. Google does not always expose it, and a guessed URL that dead-links in six months is worse for a dataset than an honest empty field.

Limits, provenance and the legal bit

Up to 100 images per run, HTTP tier only. Rows are metadata and URLs — no image bytes are fetched or stored on our side, so downloading is a decision you make separately and can log. Throughput is your plan's rate limit rather than anything about the collector: 60 requests/minute on pay-as-you-go, up to 1,200 on the top tier.

Collecting publicly visible data is generally lawful in most jurisdictions, and courts have repeatedly declined to treat reading a public page as unauthorised access. Images are a sharper case than text: the search result is public, but each image is usually someone's copyrighted work and a thumbnail URL is not a licence. Training on, republishing or redistributing them raises questions that collecting the metadata does not. Keeping source_url is what keeps those questions answerable. None of this is legal advice — get some for your actual use case.

Image scraper API: the POST to the search_images collector, 20 images delivered and the bill, 20 × $0.0003 = $0.006 in usage.cost_usd; zero images would cost $0.
The same call you would paste into a terminal: a Bearer key, query, country and lang in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many images arrived and usage.cost_usd is $0.006, which is 20 × $0.0003. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

FAQ

Questions we get about the image scraper API.

Something else? Ask us

Do I get the full-size image?

Only when Google publishes it in the results grid. Otherwise you get the thumbnail and the page that hosts the image, and the image field stays null — the collector does not guess a full-size URL that may not exist.

Am I allowed to reuse the images?

The API returns links and metadata, not licences. Rights stay with whoever owns the image, which is exactly why every row carries the source page: check it before you use anything.

Is there a free image scraper API?

Every account gets $2 of credit every month with no card, which is about 6,666 delivered images on this endpoint at $0.0003 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.0003. A run capped at 100 images — the maximum for this collector — costs $0.03 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.

Can I use these images to train a model?

Collecting the metadata and deciding to train on the underlying images are separate questions with separate answers. The images are generally copyrighted by whoever made them, and the legal position on training varies by jurisdiction and is actively litigated. Every row keeps the source page precisely so you can check the terms at the origin before deciding.

Does it download the files?

No. It returns thumbnail and source URLs plus the hosting page. Fetching bytes is a separate step you control — which keeps storage, bandwidth and the licensing decision on your side rather than implied by an API call.

Run the image scraper API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Run in dashboard
Illustration: three coloured zones of the page that is read (Image results) turn into clean JSON with the fields title, domain and rank; 9 fields on every row.