Google Images Scraper avatar

Google Images Scraper

Pricing

from $0.40 / 1,000 image results

Go to Apify Store
Google Images Scraper

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

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 /imgres links and no direct file URLs anywhere - Google resolves them client-side when a tile is opened. Rows therefore carry imageUrl: null and imageUrlAvailable: false rather than passing the Google thumbnail off as the original. safeSearch is also not applied: any safe value makes Google return a mostly unrelated tile set, so the parameter is omitted and rows carry safeSearchApplied: 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.