Google Images Scraper — Full-Size Image URLs & Sources
Pricing
from $0.12 / 1,000 image scrapeds
Google Images Scraper — Full-Size Image URLs & Sources
Scrape Google Images for full-size image URLs, dimensions, titles and source pages. No API key, no headless browser.
Pricing
from $0.12 / 1,000 image scrapeds
Rating
0.0
(0)
Developer
Mahmudul Hasan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Search Google Images and get back the full-size image URLs, not just thumbnails. No API key, no Google Cloud project, no headless browser.
What you get
Per image:
| Field | Coverage | Description |
|---|---|---|
image_url | Always | The full-size image, hosted at its original source |
width / height | Always | Original dimensions in pixels |
title | Most results | The image's title as Google shows it |
source_url | Most results | The page the image appears on |
thumbnail_url | Rarely | Google's thumbnail, when it serves one as a URL |
On partial fields. Google returns image search results as a page that doesn't pair every
image with its title in a machine-readable way. This Actor matches them by the image's host
domain, which resolves most results — around 7 in 10 on a typical query. Where an image is
served from a CDN unrelated to its source (a history.com article whose photo sits on
cloudinary.com, say), title and source_url are left null rather than guessed. A blank
field is recoverable; a confidently wrong one silently corrupts your dataset.
Every result always carries image_url and dimensions, so if that is what you need, coverage
is complete.
Results land in the run's dataset and export to JSON, CSV, Excel, XML or via the API.
Pricing
| You pay for | Price |
|---|---|
| Each image scraped | $0.12 per 1,000 |
| Each results page requested | $0.004 |
| Actor start | $0.05 per 1,000 runs |
Google returns about 100 images per page, so 1,000 images works out to roughly $0.16.
About the page fee. Google Search is heavily bot-protected and every page fetch consumes a paid proxy request whether or not it returns results. The $0.004 page fee covers that; a page that comes back empty costs only the page fee, never the per-image fee.
Set a maximum cost per run and the Actor stops cleanly when it reaches it. Proxy and compute are included — you are never billed separately for usage.
Input
{"queries": ["eiffel tower at night", "brutalist architecture"],"maxImagesPerQuery": 100,"imageSize": "large","imageType": "photo","safeSearch": "moderate","country": "us","language": "en"}
| Field | Description |
|---|---|
queries | Search terms, one per line. Batch them — one run with 20 queries beats 20 runs. |
maxImagesPerQuery | 1–500. Above 100 fetches extra pages, each billed as one page request. |
safeSearch | off, moderate or strict |
imageSize | any, large, medium or icon |
imageType | any, photo, clipart, lineart, gif or face |
licence | any, creative_commons or commercial |
country / language | Google gl and hl codes |
proxyConfiguration | Google SERP proxy is on by default. Leave it on. |
requestDelaySeconds | Pause between requests (default 2) |
Output
{"type": "image","query": "eiffel tower at night","page": 1,"title": "Eiffel Tower at night - Wikipedia","image_url": "https://upload.wikimedia.org/wikipedia/commons/a/a8/Tour_Eiffel.jpg","thumbnail_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ABC","source_url": "https://en.wikipedia.org/wiki/Eiffel_Tower","source": "Google Images","width": 3024,"height": 4032,"search_url": "https://www.google.com/search?q=eiffel+tower+at+night&udm=2&hl=en&gl=us"}
Queries that return nothing are written as {"type": "empty", ...} and failures as
{"type": "error", ...}, so one bad query never kills the run.
Common uses
- Build image datasets for training or evaluation
- Source reference imagery for design and moodboards
- Find where an image appears across the web via
source_url - Bulk-collect product or location photography
- Give an AI agent real image URLs instead of hallucinated ones (this Actor supports agentic payments via x402 and Skyfire)
Integrations
Run on a schedule, or send output to Google Sheets, Airtable, Slack, Make, Zapier or your own webhook. Everything is reachable through the Apify API and the JavaScript and Python clients.
Notes and limits
- This is an unofficial scraper. Google changes its embedded result structure regularly; the parser uses a structural strategy with a regex fallback, and when a page yields nothing the Actor logs it and moves on rather than failing the run.
- Keep the proxy on. Google Search blocks unproxied traffic within a handful of requests.
titleandsource_urlare populated for most but not all results — see On partial fields above.image_urland dimensions are always present.thumbnail_urlis usuallynull: Google inlines thumbnails into the page rather than serving them as URLs. Useimage_urland resize on your side if you need small versions.- The
licencefilter reflects Google's own labelling, which is a hint rather than a guarantee. Always verify usage rights at the source before reusing an image. - Image URLs point at third-party servers and can go dead or change without notice.
- Scrape only public data and use the output in line with Google's terms, applicable law, and the copyright of each image's owner.
Support
Found a bug or need a field that is not extracted yet? Open an issue on the Actor's Issues tab.