Image scraper API
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
$ 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
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.
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.
| Field | Type | What it holds |
|---|---|---|
rank | integer | 1-based position. |
title | string · nullable | Image title as shown. |
thumbnail | string · nullable | Thumbnail URL (always present in the grid). |
image | string · nullable | Full-size image URL when Google exposes it. |
source | string · nullable | Host of the page showing the image. |
source_url | string · nullable | URL of the page showing the image. |
Inputs
The whole request. Anything you leave out falls back to the default shown in the catalog.
| Input | Type | Required | What it does |
|---|---|---|---|
query | string | yes | What to search, e.g. "proxy server diagram". |
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 images to deliver at most (1–100). You pay only for delivered images. |
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.
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/search_images/run \
-H "Authorization: Bearer $QD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"proxy server diagram","country":"us","max_results":20}'
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 scraper | This collector | |
|---|---|---|
| Attribution | Thumbnail only, source lost | Source page and host on every row |
| Cost per 1,000 | Rendered pages, browser time | $0.30, HTTP tier only |
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.
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.