Google Images Scraper — Full-Res Image URLs & Source Pages avatar

Google Images Scraper — Full-Res Image URLs & Source Pages

Pricing

from $2.00 / 1,000 image result delivereds

Go to Apify Store
Google Images Scraper — Full-Res Image URLs & Source Pages

Google Images Scraper — Full-Res Image URLs & Source Pages

Scrape Google Images at scale. Get real full-resolution image URLs, source pages, dimensions and file sizes — not expiring thumbnails. Filter by usage rights.

Pricing

from $2.00 / 1,000 image result delivereds

Rating

0.0

(0)

Developer

Data Runner

Data Runner

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Google Images Scraper — Full-Resolution Image URLs & Source Pages

Scrape Google Images at scale and get the real image, not a thumbnail. This Google Images scraper returns the full-resolution image URL, the page that hosts it, pixel dimensions, format and file size for every result — exported to JSON, CSV or Excel, or pulled straight from the API.

Most cheap image scrapers hand you encrypted-tbn0.gstatic.com/... — Google's cached thumbnail. Those are small, stripped of metadata, and they expire. This Actor resolves the original file on the publisher's own server plus the source page URL, so the data is still useful next month.


What this Google Images scraper extracts

FieldDescription
imageUrlFull-resolution image URL on the hosting site — not a Google thumbnail
sourceUrlThe web page that publishes the image
sourceDomainClean domain of the source page (example.com)
titleImage / page title as indexed by Google
width, heightTrue pixel dimensions of the full-resolution file
imageFormatjpg, png, webp, gif, svg, …
fileSizeLabelFile size Google reports, e.g. 418KB
dominantColorDominant colour as rgb(r,g,b)
thumbnailUrlGoogle's cached preview, for quick rendering
usageRightsHintWhich licence filter the search ran under
positionRank within the query's results
contactEmails & socials for the source domain (optional add-on)
query, scrapedAtProvenance for every row

Sample output

{
"query": "modern kitchen cabinets tampa",
"position": 7,
"imageUrl": "https://example-cabinets.com/img/shaker-full.jpg",
"thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ABC123",
"title": "Modern Shaker Cabinets — Tampa Showroom",
"sourceUrl": "https://example-cabinets.com/gallery/shaker",
"sourceDomain": "example-cabinets.com",
"width": 1877,
"height": 2560,
"imageFormat": "jpg",
"fileSizeLabel": "418KB",
"dominantColor": "rgb(136,110,104)",
"usageRightsHint": "unknown",
"contact": null,
"scrapedAt": "2026-07-19T12:00:00.000Z"
}

How to scrape Google Images

  1. Add one or more search queries — Google operators work: site:, "exact phrase", -exclude.
  2. Set max results per query (up to 100).
  3. Optionally filter by usage rights, image size, image type, country and language.
  4. Select Residential proxies (required — see below).
  5. Run, then export as JSON, CSV, Excel or read the dataset from the API.

Input example

{
"queries": ["modern kitchen cabinets tampa", "site:houzz.com shaker kitchen"],
"maxResultsPerQuery": 100,
"imageSize": "large",
"usageRights": "creativeCommons",
"country": "us",
"language": "en",
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Search filters

FilterOptionsGoogle parameter
Image typephoto · clip art · line drawing · GIFtbs=itp:
Image sizelarge · medium · icontbs=isz:
Usage rightsCreative Commons · commercial & othertbs=il:
SafeSearchoff · moderate · strictsafe=
Countryany two-letter codegl=
Languageany two-letter codehl=

Use cases

  • Competitive & market research — see which brands' images rank for your commercial keywords.
  • Design and moodboard sourcing — bulk-collect reference imagery with real dimensions, so you know what is print-usable before downloading.
  • Creative Commons image discovery — filter to CC licences to find imagery you can evaluate for reuse.
  • E-commerce catalogue enrichment — find high-resolution product photography and where it is published.
  • Brand monitoring — track where your product images are being republished, by domain.
  • Lead generation — turn "who ranks for this visual query" into a contact list with the optional enrichment below.
  • Dataset building — assemble labelled image URL sets for computer-vision work.

Turn image results into leads (optional add-on)

Set resolveContacts: true and every image's source domain is looked up for public contact details — emails and social profiles — and attached to the row.

That converts a plain image search into a prospecting motion: "find businesses whose photos rank for modern kitchen cabinets tampa, then get their contact details." The businesses ranking in Google Images for your commercial keywords are, by definition, active in your market and investing in visual content.

Billing is honest here: you are charged only when a contact is actually found, never per attempt, and never twice for the same domain in one run.


Pricing

Pay per event — you pay for results, not runtime.

EventPriceCharged when
Image result delivered$0.002Each image pushed to the dataset ($2.00 per 1,000)
Source-domain contact resolved$0.005Only when a contact is genuinely found ($5.00 per 1,000)
Actor start$0.00005Once per run

Blocked queries, duplicates and failed extractions are never charged. If you set a charge limit, the Actor stops working the moment it is reached rather than burning compute it cannot bill.

Budgeting for contact enrichment. Image results are far less domain-concentrated than people expect: a measured sample of 100 images spanned 83 distinct source domains. Since contacts are billed per domain, enabling resolveContacts roughly doubles to triples the cost of a run rather than adding a rounding error. For 1,000 images expect about $2.00 without enrichment and $4–6 with it. Enable it when you want the leads, not by default.


Requirements & limits — read before your first run

Google Images is aggressively anti-bot, and proxy quality decides your success rate. Here is exactly what was measured during development, including what did not work:

SetupMeasured result
No proxy (direct)Blocked on the first request, every time
Datacenter proxy, 1 querySucceeded once — 100 results extracted
Datacenter proxy, 3–5 queries100% blocked, at both maxConcurrency 1 and 4
Residential proxy (small/exhausted pool)Also blocked — traffic reached Google, Google returned interstitials

Two things follow from this, and both matter more than any marketing claim:

Lowering concurrency does not rescue datacenter IPs. A datacenter run at maxConcurrency: 1 was blocked exactly as completely as one at 4. Google flags the IP range, not the request rate. The schema defaults to RESIDENTIAL for this reason.

Residential is necessary, but it was not proven sufficient. In testing, a residential run still came back blocked: the traffic genuinely reached Google (96 connections to www.google.com), but the responses averaged ~23 KB — the size of a CAPTCHA interstitial, not the ~1.3 MB of a real results page. That test ran on a minimal residential pool, and a well-provisioned pool is very likely to behave better — but "very likely" is not "measured", so it is not claimed here as fact.

Start with one query before you commit to a large run. Blocked queries cost you nothing, so a single-query test tells you your real success rate on your plan and proxy pool for free. Scale up only once you see results coming back.

If Apify Proxy itself rejects the request (common when the selected proxy group is not included in your plan), the run reports proxy-error rather than blocked — a different problem with a different fix, so the summary keeps them apart.

Roughly 100 results per query is the real ceiling. Google embeds complete full-resolution data for about the first 100 organic results of a search. Tiles that lazy-load beyond that point carry only a thumbnail and a link — the full-resolution URL genuinely is not on the page, and the legacy pagination parameters no longer return results. Rather than pad the output with thumbnail-only rows, this Actor caps at 100 and tells you in the log. To go deeper, split one broad query into several narrower ones (by city, material, style, site: domain) — that also produces better-targeted data.

Never crashes on a block. A blocked query rotates to a fresh proxy session and retries; if it still fails, it is recorded in the run summary and the remaining queries continue. You always get partial results plus a per-query breakdown of what happened.


This Actor returns publicly available search metadata: URLs, titles, dimensions and domains. It does not download or redistribute image files by default.

downloadImages is off by default and stores copies in your own key-value store when enabled. Indexed in Google Images does not mean free to reuse. The usageRightsHint field reports which licence filter the search ran under — it is never a claim about a specific image's licence, because Google does not expose one. Always verify the licence on the source page before reusing an image.


FAQ

Does this return the real image or a Google thumbnail? The real, full-resolution file hosted on the publisher's own server. The Google thumbnail is included separately as thumbnailUrl for previewing.

Why do I only get ~100 images per query? That is Google's limit for full-resolution data, not the Actor's. Split broad queries into narrower ones to collect more.

Do I need proxies? Yes, and they need to be good ones. Direct traffic is blocked on the first request, and datacenter IPs are blocked across the whole range no matter how slowly you run. Residential is the right choice, though a thin residential pool was also blocked in testing — see the measured table above.

My run says proxy-error — what does that mean? Apify Proxy rejected the request (HTTP 429/403) before it ever reached Google, almost always because the selected proxy group is not included in your plan. This is reported separately from blocked precisely so you do not go hunting for an anti-bot problem you do not have.

Every query came back blocked. What now? Google served an anti-bot interstitial. Blocked queries are never charged, so this costs you nothing but time. Check that you are on residential proxies with a healthy pool, then retry a single query. If one query works and five do not, slow down by lowering maxConcurrency.

How do I know it will work before I spend anything? Run one query. Blocked queries are free, so a single-query test measures your actual success rate at zero cost before you scale up.

Can I search a specific website's images? Yes. Use Google's site: operator, e.g. site:example.com kitchen.

Can I find images I am allowed to reuse? Set usageRights to creativeCommons or commercial to filter the search. Always confirm the licence on the source page before reuse.

What happens if Google blocks a query? The session rotates to a new proxy IP and retries. If it keeps failing, that query is marked blocked in the summary and the run continues — you keep everything else, and you are not charged for the blocked query.

Can I get emails for the sites hosting these images? Yes — enable resolveContacts. You are billed only for contacts actually found.

What export formats are supported? JSON, CSV, Excel, XML and HTML table, plus the Apify API and any of its client libraries.

Can I schedule this to run automatically? Yes — use Apify Schedules to run it hourly, daily or weekly, and monitor how visual search results shift over time.


Build a full pipeline with the Data Runner suite

This Actor is one stage of a lead-generation pipeline. Chain it with its siblings:

ActorWhat it doesChain it
Google Maps Lead GeneratorLocal businesses with phone, address, rating & websiteStart here for a geographic market
Google Images Scraper (this Actor)Who ranks visually for your keywords, and on which domainsFind the players investing in visual content
Website Email ExtractorEmails & socials from any list of domainsFeed it the sourceDomain column

Typical flow: run this Actor on your commercial keywords → export the sourceDomain column → feed it into Website Email Extractor → get a contact list of businesses that are already competing for visual attention in your market.

Browse the full suite at apify.com/jurassic_jove.


Support

Found a bug, or has Google changed its result format? Open an issue on the Actor's Issues tab — payload-format changes are treated as priority fixes.