curl --request POST \
--url https://api.scrapeunblocker.com/images/google-search \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/images/google-search"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/images/google-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Scrape Google Images results
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.
curl --request POST \
--url https://api.scrapeunblocker.com/images/google-search \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/images/google-search"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/images/google-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Your ScrapeUnblocker API key. Apply on every request.
Query Parameters
Image search term, e.g. 'eiffel tower'.
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.
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.
1 <= x <= 5Optional cap on the number of results returned (default: all results of the fetched pages).
1 <= x <= 500Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE'). Image results are market-specific.
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.
Only images Google found on or after this date (YYYY-MM-DD). Works alone or with date_to; cannot be combined with time_range.
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
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).

