Google Images Scraper
Pricing
from $0.40 / 1,000 image results
Google Images Scraper
Search Google Images and get one row per tile: the thumbnail URL, the page the image sits on, its domain, the title and the rank. Google stopped serving original file URLs, so rows say so plainly rather than passing a thumbnail off as the original.
Pricing
from $0.40 / 1,000 image results
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Search Google Images and receive one clean dataset row per image tile. Results include the Google thumbnail URL, source page URL, source domain, title/alt text, rank, and the served thumbnail dimensions.
Since August 2026 Google no longer serves the original image URL. The Images HTML contains no
/imgreslinks and no direct file URLs anywhere - Google resolves them client-side when a tile is opened. Rows therefore carryimageUrl: nullandimageUrlAvailable: falserather than passing the Google thumbnail off as the original.safeSearchis also not applied: anysafevalue makes Google return a mostly unrelated tile set, so the parameter is omitted and rows carrysafeSearchApplied: false.
Why this actor
- Direct HTTP first, with an automatic rotating-datacenter proxy fallback when Google returns a block or an empty shell.
- Optional Apify Proxy fallback only after direct Google traffic is blocked or rate-limited.
- Bounded to 100 rows and 3 result pages per run.
- Deduplicates image URLs across pages.
- Empty input returns a non-empty representative row marked
_sample: true; it is never charged. - Only successful image rows call
Actor.charge({ eventName: "image" }). Diagnostics and samples are never charged.
Input
query is the search phrase. maxItems is 1-100, maxPages is 1-3, and language, countryCode, and safeSearch control localization. enableProxyFallback is enabled by default. The actor tries direct traffic first and uses a proxy only after a block, network failure, rate limit, or empty Google response. The fallback uses rotating Apify datacenter addresses. Metered proxy groups (Residential, Google SERP) are not offered: if proxyConfiguration.apifyProxyGroups asks for one it is replaced with the datacenter group, a warning is logged, and the rows carry a proxyNotice field explaining the substitution. Proxy servers you supply yourself in proxyConfiguration.proxyUrls (or top-level proxyUrls) are used verbatim, in the order given.
Output
Each successful row contains imageUrl (currently always null, see above), imageUrlAvailable, thumbnailUrl, thumbnailWidth, thumbnailHeight, sourcePageUrl, sourceDomain, title, docId, width, height, query, rank, page, safeSearchApplied, and transport (google_serp_proxy, datacenter_proxy, or custom_proxy when you supply your own proxy servers).
Billing
$0.012 to start a run, then $0.0004 per image row — $0.40 per 1,000 images.
The start charge covers the search request, which costs the same whether it returns a hundred tiles or none. Sample rows and diagnostics are never charged, so a search that comes back empty costs the start charge alone.
Responsible use
The actor returns public search metadata and URLs. Users are responsible for respecting image licenses, copyright, robots policies, and the terms of the source websites before downloading or reusing images.


