Google Images Scraper: Full Size Image URLs, Sizes, Sources avatar

Google Images Scraper: Full Size Image URLs, Sizes, Sources

Pricing

from $1.49 / 1,000 images

Go to Apify Store
Google Images Scraper: Full Size Image URLs, Sizes, Sources

Google Images Scraper: Full Size Image URLs, Sizes, Sources

Scrape Google Images for any search terms: full size image URL, width and height, thumbnail, source page, site name and domain, plus price when the image is a shop listing. Pick country and language and filter by size, type, colour, time or usage rights. No login, no browser.

Pricing

from $1.49 / 1,000 images

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

200 Google Images results in 19 seconds

From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.

Why choose this actor?

  • The full size file, not just the thumbnail. Every row carries the original image URL on the publisher's site with its width and height in pixels, Google's thumbnail, the page the image appears on, that site's name and domain, the file size and the main colour. In our test on 5 October 2026, two searches returned 200 images in 19 seconds, and every one of the 200 rows had all of those fields filled. No Google account, no API key, no browser.
  • Google's own filters, in the input form. Size, type (photo, clip art, line drawing, animated, face), colour (full colour, black and white, transparent or one of 12 colours), time (past day, week, month, year) and usage rights (Creative Commons or commercial licences), plus country, language and SafeSearch. We checked each filter against an unfiltered search before release: a Creative Commons search came back from Wikimedia Commons, Public Domain Pictures and Flickr, and with the blue filter on, 30 of 40 images had a blue main colour.
  • You never pay for filler. When Google cannot match a search it shows unrelated pictures instead of an empty page. The actor checks every page, and a page where not one title holds a word of your search is not delivered and not charged. In our test the nonsense search "qzxvblorft wwkpjjq" cost nothing, while Google had served 42 random images for it. Duplicates within a search are never charged either.

Run it on Apify

Part of The Mine Works Marketing, SEO and reviews family: Facebook Ad Library Scraper, Google Ads Transparency Scraper, Similarweb Scraper, Google News Scraper, Trustpilot Reviews Scraper, Google Trends Scraper.

Try it in one minute

Paste this into the JSON tab of the input page and press Start. It returns 20 images for each of two searches in well under a minute.

{
"queries": ["golden retriever puppy", "modern kitchen interior"],
"maxResultsPerQuery": 20
}

Give the input as search terms only, one per line in the "Search terms" box (or as a JSON array in queries), typed the way you would type them into Google Images. Each term is searched on its own and gets its own rows, ranked in Google's order. Country, language and the filters apply to every term in the run; to compare countries or filters, start one run per setting.

Apify's free plan includes $5 of credit every month, which covers about 1,900 images at this actor's price.

Copy to your AI assistant

themineworks/google-images-scraper on Apify. Scrapes Google Images results for search terms and returns one row per image with the full size image URL, width and height, thumbnail URL and size, source page URL, source domain and site name, file size, dominant colour, rank and, when Google lists the image as a product, its price and currency. Call ApifyClient("TOKEN").actor("themineworks/google-images-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: queries (array of search terms). Optional: maxResultsPerQuery (default 100, 20 to 1000), country (default "us", two letter code), language (default "en"), imageSize (any, large, medium, icon), imageType (any, photo, clipart, lineart, animated, face), imageColor (any, color, blackAndWhite, transparent, red, orange, yellow, green, teal, blue, purple, pink, white, gray, black, brown), timeRange (any, day, week, month, year), usageRights (any, creativeCommons, commercial), safeSearch (default false). Skip rows with _type "info"; the per search run summary is the key-value store record OUTPUT. Full spec: GET https://api.apify.com/v2/acts/themineworks~google-images-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral

Key features

  • 25 fields per image. Rank, page, title, full size URL, width, height, thumbnail URL, thumbnail width and height, source page, domain, site name, file size as text and in bytes, dominant colour as hex, Google's image id, product price and currency when the picture is a shop listing, the country, language and filters used, a link to the same Google search, and the time collected.
  • Up to 1,000 images per search term, up to 500 terms per run. Google serves about 100 images a page (sometimes 50), and 355 in all for "red sneakers" in our test; the actor reads page after page until it has your number or Google has nothing more. Three terms run at a time.
  • Five Google filters plus SafeSearch, set once for the whole run, exactly as the Tools menu in Google Images offers them.
  • Any country and interface language. Pass a two letter country code (us, gb, de, in, br, jp and so on) and a language code (en, de, pt-BR, ja), and Google ranks the images for that market. We tested the United States and the United Kingdom before release.
  • Shoppable images flagged. When Google shows a price on an image, the row says is_product: true with product_price and product_currency. In our "red sneakers" sample, 33 of the first 100 images carried a price.
  • Plain HTTP and small memory. No browser: Google's results page already holds every tile's data, so a run uses 256 MB and peaked at 109 MB in our tests.

How to use it

Basic: one search term

{
"queries": ["red sneakers"],
"maxResultsPerQuery": 100
}

One Google page, about 100 images, ranked as Google shows them.

Several terms at once

{
"queries": ["eiffel tower at night", "vintage botanical illustration", "minimalist logo design"],
"maxResultsPerQuery": 200
}

Each term is read on its own, three at a time. A term with fewer images than you asked for simply returns what Google has, and its status in the run summary says why it stopped.

Images you may reuse, for a blog or a deck

{
"queries": ["mountain lake", "city skyline at dusk"],
"maxResultsPerQuery": 50,
"imageSize": "large",
"usageRights": "creativeCommons"
}

Google reads licence details from the pages it indexes. The filter narrows results to images Google believes carry a Creative Commons licence, which in our test meant Wikimedia Commons, Public Domain Pictures, Pixnio and Flickr. Always open source_page_url and confirm the licence before you reuse an image.

Track who ranks in image search for your keywords

{
"queries": ["handmade leather wallet", "leather wallet men", "bifold wallet"],
"maxResultsPerQuery": 100,
"country": "us"
}

Group the rows by source_domain to see which sites own the first 100 images for each keyword, and where your own domain sits (position). Schedule the run weekly in Apify Console (Schedules, Add schedule) and compare positions over time.

Product images and prices for a category

{
"queries": ["ceramic coffee mug", "linen bedding set"],
"maxResultsPerQuery": 200,
"imageType": "photo"
}

Filter on is_product to keep the images Google lists as products, with product_price and product_currency, and use source_domain to see which stores show up most.

Moodboards and reference sets in one colour

{
"queries": ["living room interior", "bedroom interior"],
"maxResultsPerQuery": 100,
"imageColor": "green",
"imageSize": "large"
}

dominant_color gives each image's main colour as a hex value, so you can sort a mixed set by colour after the run as well.

Another country and language

{
"queries": ["Kopfhörer", "Fahrrad"],
"maxResultsPerQuery": 100,
"country": "de",
"language": "de"
}

Google ranks the images for the German market. Titles stay as the source pages wrote them.

Input parameters

ParameterTypeDefaultWhat it does
queriesarray of strings["red sneakers", "modern kitchen interior"]Search terms, one per item, up to 500. Required. Repeats are removed.
maxResultsPerQueryinteger100Most images per term, 20 to 1,000.
countrystringusTwo letter country code Google ranks for (gl).
languagestringenGoogle interface language (hl), such as en, de, pt-BR.
imageSizestringanyany, large, medium or icon.
imageTypestringanyany, photo, clipart, lineart, animated or face.
imageColorstringanyany, color, blackAndWhite, transparent, red, orange, yellow, green, teal, blue, purple, pink, white, gray, black or brown.
timeRangestringanyany, day, week, month or year.
usageRightsstringanyany, creativeCommons or commercial.
safeSearchbooleanfalseTurn on Google SafeSearch.

What data do you get?

One row per image, in Google's order for each search term.

The image: image_url (the full size file on the publisher's site), image_width, image_height, file_size (as Google shows it, such as 162KB), file_size_bytes, dominant_color (hex), image_id (Google's id for the image).

The thumbnail: thumbnail_url (Google's copy on encrypted-tbn0.gstatic.com), thumbnail_width, thumbnail_height.

Where it comes from: title (the caption Google shows, usually the page title), source_page_url, source_domain (without www), source_name (the site name Google shows, such as Smithsonian Magazine or Etsy).

Shop listings: is_product, and when it is true, product_price and product_currency.

The search: query, position (1 is the first image Google shows, after duplicates are removed), page, country, language, filters (only when you set any), search_url (the same search on Google Images, to open in a browser), scraped_at.

Stable fields for automations

These fields were present in all 200 rows of our test run and will keep these names:

FieldWhat it holds
queryThe search term the row belongs to
positionRank within that term, from 1
image_urlFull size image URL
image_widthWidth in pixels
image_heightHeight in pixels
thumbnail_urlGoogle's thumbnail URL
titleCaption under the image
source_page_urlPage the image appears on
source_domainDomain of that page, without www
source_nameSite name Google shows
file_sizeFile size as Google shows it
dominant_colorMain colour, hex
image_idGoogle's id for the image, the same in every run
is_productTrue when Google lists the image as a product
scraped_atCollection time, ISO 8601 UTC

We will not rename these fields. New fields may be added.

Output examples

Real rows from our runs on 5 October 2026: the first two in full, the other two trimmed for length.

A photo from a travel guide, rank 2 for "eiffel tower at night":

{
"query": "eiffel tower at night",
"position": 2,
"page": 1,
"image_id": "pLEP2j-Aa9_-NM",
"title": "Your Complete Guide to the Eiffel Tower Light Show",
"image_url": "https://www.tripsavvy.com/thmb/TzIG8GWE2VMPfGxPsSSmoyXfPYA=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/TAM_3402-08aeec8bf338425791ce0825cb205e9a.jpg",
"image_width": 1500,
"image_height": 2250,
"thumbnail_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT6YUoH_297eVerYrtZP16Xc9Se4rIlo12ZrMgxj8TRrQ&s=10",
"thumbnail_width": 452,
"thumbnail_height": 678,
"source_page_url": "https://www.tripsavvy.com/the-eiffel-tower-light-show-4139783",
"source_domain": "tripsavvy.com",
"source_name": "TripSavvy",
"file_size": "162KB",
"file_size_bytes": 165888,
"dominant_color": "#d09d30",
"is_product": false,
"country": "us",
"language": "en",
"search_url": "https://www.google.com/search?q=eiffel+tower+at+night&udm=2&hl=en&gl=us",
"scraped_at": "2026-10-05T17:38:16.557Z"
}

A magazine image, rank 4 for the same term:

{
"query": "eiffel tower at night",
"position": 4,
"page": 1,
"image_id": "uob3NQRk-7qzbM",
"title": "You Can Now Spend the Night in the Eiffel Tower",
"image_url": "https://th-thumbnailer.cdn-si-edu.com/pl7tMO37jADJMfZ8T1DuIRDaBbc=/fit-in/1600x0/https://tf-cmsv2-smithsonianmag-media.s3.amazonaws.com/filer/db/d6/dbd616d4-f52c-43cb-a9c2-4f77a5dcb2d3/eiffel-tower-night.jpg",
"image_width": 1600,
"image_height": 1066,
"thumbnail_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTOVt7yJVvgCJ8bUnWOz8tw7-HfMGSXV2MiV6wlDgFR-A&s=10",
"thumbnail_width": 678,
"thumbnail_height": 452,
"source_page_url": "https://www.smithsonianmag.com/travel/you-can-now-spend-night-eiffel-tower-180959213/",
"source_domain": "smithsonianmag.com",
"source_name": "Smithsonian Magazine",
"file_size": "338KB",
"file_size_bytes": 346112,
"dominant_color": "#d09d56",
"is_product": false,
"country": "us",
"language": "en",
"search_url": "https://www.google.com/search?q=eiffel+tower+at+night&udm=2&hl=en&gl=us",
"scraped_at": "2026-10-05T17:38:16.558Z"
}

A shop listing with a price, rank 55 for "vintage botanical illustration" (from an earlier run the same day):

{
"query": "vintage botanical illustration",
"position": 55,
"page": 1,
"image_id": "ctmNUI8EMttDVM",
"title": "Tulip: Vintage Botanical Flower/Floral Wall Art Prints",
"image_url": "http://www.chartingnature.com/cdn/shop/products/6829-tulip.jpg?v=1570401069",
"image_width": 351,
"image_height": 431,
"thumbnail_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSsKfbfv0R1188QK9bPtIcjpCEIVTw_T9goIT0vUbNA6Q&s=10",
"source_page_url": "https://www.chartingnature.com/products/flower-print-tulip-6829?srsltid=AU7gw4UCh-fT0As8pYtILmMXbmuDoTLxT5YsRWWjr3A8CnEWh1yO3R4D",
"source_domain": "chartingnature.com",
"source_name": "Charting Nature",
"file_size": "14KB",
"dominant_color": "#c06053",
"is_product": true,
"product_price": 14.95,
"product_currency": "USD"
}

A row from the second Google page, rank 51:

{
"query": "eiffel tower at night",
"position": 51,
"page": 2,
"image_id": "5sbfa1eiDRFiHM",
"title": "Did You Know: Publishing Nighttime Photos of the Eiffel Tower is Copyright Infringement | PetaPixel",
"image_url": "https://petapixel.com/assets/uploads/2014/11/3544624335_7d0afe3bdf_b.jpg",
"image_width": 640,
"image_height": 426,
"source_page_url": "https://petapixel.com/2014/11/12/did-you-know-publishing-nighttime-photos-of-the-eiffel-tower-is-copyright-infringement/",
"source_domain": "petapixel.com",
"source_name": "PetaPixel",
"file_size": "37KB",
"dominant_color": "#907a4a"
}

When a run delivers nothing, the dataset holds one row with _type: "info" and a message saying why (for example, Google had no images matching the search). That row is never charged.

Pricing

You pay per image delivered to your dataset (event image-scraped), plus a flat $0.005 per run, whatever memory you choose (event run-start).

Apify planPer 1,000 images
Free$2.49
Starter (Bronze)$2.09
Scale (Silver)$1.79
Business (Gold) and above$1.49

Never charged:

  • the same image twice for one search term;
  • pages Google refused, and search terms Google has no images for;
  • pages where not one image title holds a word of your search (the unrelated pictures Google shows when it cannot match a search);
  • the info row written when a run delivers nothing, and the OUTPUT run summary.

To cap what a run can cost, set a maximum total charge in the run options. The actor stops before an image the budget cannot pay for.

FAQ

What is Google Images?

Google's image search at images.google.com (the Images tab of a Google search). For any search it shows a grid of pictures from across the web, each linked to the page it appears on. This actor reads that grid and returns each picture as a row.

How many images can I get per search term?

Up to 1,000 per term, but Google itself stops earlier: in our test it served 355 images for "red sneakers" over four pages, then an empty page. Rare terms return fewer. The actor stops a term when it has your number, when Google answers an empty page, or when a page repeats images already delivered.

Do I get the full size image or a thumbnail?

Both. image_url is the original file on the publisher's site, with its real width and height. thumbnail_url is Google's small copy. Some publishers block downloads from other sites, so if you fetch image_url in bulk, some files may refuse; the thumbnail is served by Google.

How fresh is the data?

Every run reads Google live, so you get what Google shows at that moment for that country and language. Use the timeRange filter for images Google found in the past day, week, month or year.

Do I need a Google account, an API key or cookies?

No. The actor reads Google's public results page, signed out.

Do I need to set up a proxy?

No. The actor always uses Apify's Google search proxy, which is included in the price. You cannot point it at another proxy.

Why did a search term return no images?

Open the run's OUTPUT record in the key-value store: it lists every term with a status. no_match means Google showed only unrelated pictures (no title held a word of your search), so nothing was delivered or charged. no_results means Google had nothing. blocked means Google refused the page three times; nothing was charged for it, and a later run usually works.

Why are some titles in another language?

Titles come from the source pages. language sets Google's interface language and country the market Google ranks for, but a German page keeps its German title.

Can I reuse the images I find?

The actor gives you links, not rights. Images belong to their owners. The usageRights filter narrows results to images Google believes carry a Creative Commons or commercial licence, but you must check the licence on source_page_url before reusing anything.

Which formats can I export?

JSON, CSV, Excel, XML, HTML table and RSS from the dataset page in Apify Console, or through the Apify API.

Can I run it on a schedule?

Yes. In Apify Console open the actor, then Schedules, Add schedule, and pick how often. Each run reads Google fresh with the same input, which suits weekly rank tracking by source_domain and position.

Can I use it from Claude, ChatGPT or another AI agent?

Yes, through Apify's MCP server. Connector URL: https://mcp.apify.com/?tools=themineworks/google-images-scraper

  • Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
  • ChatGPT: turn on developer mode, add an MCP connector with the URL, sign in with Apify.
  • Cursor or VS Code: add it as an HTTP MCP server with that URL.
  • Claude Code: claude mcp add -t http google-images-scraper "https://mcp.apify.com/?tools=themineworks/google-images-scraper"

The actor collects only what Google shows any signed out visitor: image links, sizes and the pages they come from. It does not download or store the images themselves. You are responsible for how you use the data and the images it points to, including copyright, Google's terms and data protection laws such as GDPR and CCPA.

Integrations

  • Google Sheets: send each run's dataset to a sheet with Apify's Google Sheets integration.
  • Make, Zapier and n8n: start runs and receive images in your workflows, for example to fill a moodboard or a product feed.
  • Webhooks: get a call when a run finishes and fetch the dataset.
  • API: start runs and read datasets from any language with the Apify API or the Python and JavaScript clients.
  • MCP clients: Claude, ChatGPT, Cursor and other agents through Apify's MCP server.

More from The Mine Works

Marketing, SEO and reviews

Social media and video

Leads and business directories

LinkedIn

Real estate

Science, health and government data

Jobs and hiring

Company and business data

E-commerce and marketplaces

Food and local services

Developer and AI tools

More tools

Support

Found a problem or need a field? Open an issue on the actor's Issues tab and we will answer there. For a new source or a custom build, email dmineworks@gmail.com.

Google Images Scraper turns any image search into rows of full size image links, sizes, thumbnails and source pages, with Google's own filters and no charge for filler.