---
title: "Scrape Google Images results"
method: POST
path: "/images/google-search"
tags: ["Plugins"]
---

# Scrape Google Images results

`POST /images/google-search`

## Request

- Base URL: `https://api.scrapeunblocker.com`
- URL: `https://api.scrapeunblocker.com/images/google-search`
- Auth: API key in header `x-scrapeunblocker-key`

Runs the Google Images vertical (`udm=2`) for `q` and returns the image results as JSON. Every result carries `imageUrl` (the full-resolution origin image, not a Google thumbnail; for an image found inside a document such as a PDF, which has no URL of its own, it is Google's thumbnail and `sourcePageUrl` is the document), `sourceDomain` and `googleImagesUrl` (the Google Images viewer link, i.e. the `/imgres?...` URL a browser copies from the result tile), plus `sourcePageUrl`, `title`, `sourceName`, `thumbnailUrl`, `width`, `height` and `fileSize` where available. Set `proxy_country` to target a market: the Google market (`gl`) follows it automatically, and `gl` is only an optional override. `pages` fetches up to 5 result pages of ~100 each; every page fetched is billed as one request. `time_range` (past hour/day/week/month/year) or `date_from`/`date_to` limit the results to images Google found in that period, so a repeated scan returns only what is new.

## Query parameters

- `q` string, required: Image search term, e.g. 'eiffel tower'.
- `gl` string, nullable: Optional Google market override (ISO-2, e.g. 'us', 'de'). Leave empty and the market follows `proxy_country` ('us' when neither is set). The market, not the proxy country, is what decides which images rank.
- `pages` integer: How many Google Images result pages to fetch (1-5, ~100 results each; Google stops at ~400-500 per query). Each page fetched is billed as one request.
- `max_results` integer, nullable: Optional cap on the number of results returned (default: all results of the fetched pages).
- `proxy_country` string, nullable: Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Image results are market-specific.
- `time_range` string, nullable: Only images Google found within this recent period: `hour`, `day`, `week`, `month` or `year` (Google Images' Tools > Time filter). Use it to get just the new results on repeated scans. Cannot be combined with `date_from`/`date_to`.
- `date_from` string, nullable: Only images Google found on or after this date (YYYY-MM-DD). Works alone or with `date_to`; cannot be combined with `time_range`.
- `date_to` string, nullable: Only images Google found on or before this date (YYYY-MM-DD). Works alone or with `date_from`; cannot be combined with `time_range`.

## Response `200`

JSON with a `results` array plus the query and count. A query Google reports as having no matches returns an empty `results` array (`resultsCollected: 0`).

- unknown

## Other responses

- `400`: Invalid parameters, e.g. an unknown `time_range` or a date not in YYYY-MM-DD format (plain-text message).
- `403`: Blocked by Google CAPTCHA after retries - try another proxy_country.
- `422`: Validation Error
- `502`: No image results collected (upstream block or an unusable page), or the call did not finish in time.

---

[API](https://skmtc.dev/scrapeunblocker/apis/scrapeunblocker-api.md) · [All operations](https://skmtc.dev/scrapeunblocker/apis/scrapeunblocker-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrapeunblocker/apis/scrapeunblocker-api/revisions/c02f1254cc47?raw)
