Google Images Scraper: Image URLs, Sizes, Sources
Pricing
$0.30 / 1,000 images
Google Images Scraper: Image URLs, Sizes, Sources
Scrape Google Images results for any search in 43 countries: original image URL, width and height, title, source page and domain, thumbnail, file size and dominant color. Up to ~300 images per query, Google's size, type, color, time and license filters, no browser. $0.30 per 1,000 images.
Pricing
$0.30 / 1,000 images
Rating
0.0
(0)
Developer
Data Gleaner
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Share
Google Images Scraper turns any Google Images search into a clean table of images. Type a query, such as golden retriever puppy, modern kitchen design or 桜 写真. For each image you get the direct URL of the full-size original, its width and height in pixels, the title, the page it appears on and that site's domain and name, Google's thumbnail, the file size and the image's dominant color. It covers 43 countries, returns up to about 300 images per query and supports Google's own size, type, color, time and usage-rights filters. There is no browser and no login to set up. It costs $0.30 per 1,000 images, with no start fee.
What you can do with it
- Build image datasets. Collect hundreds of labelled images per query for computer vision, AI training or evaluation sets. Each row has the original URL, exact pixel size and file size, so you can filter before you download.
- Bulk image search. Run a list of queries (products, places, species, landmarks) and get every result in one dataset, instead of clicking through Google Images by hand.
- Find large or licensed images. Combine
imageSize: large,imageType: photoorusageRights: creativeCommonsto shortlist images worth checking for reuse. - SEO and brand monitoring. See which sites rank in Google Images for your keywords, where your product photos appear, and which domains outrank you (
sourceDomain,position). - Visual market research. Pull what Google shows for a style, product or trend in different countries, and use
dominantColorto compare palettes. - Feeds for AI agents and apps. Plain JSON with the same field names for every query and country, ready for a spreadsheet, a database or an LLM.
Input
| Field | Type | What it does |
|---|---|---|
queries | list of text | Searches as you would type them into Google Images, in any language. Operators such as site:unsplash.com work too. Each query returns its own rows. |
maxImagesPerQuery | number | Default 100, max 300. The run pages through Google Images until it has this many. |
country | code | Where the search runs: us (default), uk, de, fr, jp, in, br and 36 more. It shifts which local sites rank. |
language | code | Google's interface language, default en. Use the language of your query (ja, de, es...) for the most local results. |
safeSearch | true/false | Google's SafeSearch filter for explicit images. On by default. |
imageSize | choice | large, medium or icon. |
imageType | choice | photo, clipart, lineart, animated (GIFs) or face. |
imageColor | choice | color, grayscale, transparent, or a dominant color: red, orange, yellow, green, teal, blue, purple, pink, white, gray, black, brown. |
timePeriod | choice | day, week, month or year: only images Google found in that period. |
usageRights | choice | creativeCommons or commercial (commercial and other licenses). |
maxConcurrency | number | How many queries run in parallel. Default 5. |
Example:
{"queries": ["golden retriever puppy", "modern kitchen design"],"maxImagesPerQuery": 200,"country": "us","imageSize": "large","imageType": "photo"}
An empty input {} runs a small example (5 images for "golden retriever puppy"), and the status message says so.
Output
One row per image, in Google's order (position). Example:
{"position": 1,"imageUrl": "https://www.muenchen.travel/var/ger_muc/storage/images/8/9/4/7/2427498-988-ger-DE/c4cb10e4e277-weihnachtsmarkt-8973-foto-lukas-barth-3000.jpg","width": 3000,"height": 2000,"title": "Weihnachtsmärkte und Christkindlmärkte München 2026","sourcePageUrl": "https://www.muenchen.travel/artikel/maerkte-feste/weihnachtsmaerkte-in-muenchen","sourceDomain": "www.muenchen.travel","sourceName": "Einfach München","thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSsMIzELynRlsQq7uYh1SksUYRMgxliE40miitVrUTkqg&s=10","thumbnailWidth": 547,"thumbnailHeight": 365,"fileSize": "584KB","fileSizeBytes": 598016,"dominantColor": "#804a2d","publishedAgo": null,"imageId": "Zc9NVZhJgfowKM","query": "weihnachtsmarkt münchen","country": "de","language": "de","filters": "isz:l,itp:photo","page": 1,"scrapedAt": "2026-10-21T19:07:05+00:00"}
| Field | What it holds |
|---|---|
imageUrl, width, height | Direct link to the full-size original on its host site, and its size in pixels. |
title | The title Google shows for the image, usually the source page's title. |
sourcePageUrl, sourceDomain, sourceName | The page the image appears on, its domain, and the site name Google shows. |
thumbnailUrl, thumbnailWidth, thumbnailHeight | Google's hosted thumbnail and its size. Always loads, even when the original's host blocks hotlinking. |
fileSize, fileSizeBytes | File size as Google shows it ("378KB") and the same in bytes (approximate, as Google rounds it). |
dominantColor | The image's main color as a hex code. |
publishedAgo | How long ago Google found the image ("2 days ago"). Mostly filled when you use timePeriod. |
imageId | Google's id for the image, unique within a query. |
query, country, language, filters, page, scrapedAt | Where the row came from and when. filters is Google's filter string, e.g. isz:l,itp:photo. |
Fill rates measured on Apify over 2,480 images in 5 countries (2026-10-22): imageUrl, width, height, title, sourcePageUrl, sourceDomain, sourceName, thumbnailUrl, fileSize and dominantColor 100%. publishedAgo 1-5% without a time filter, about 20% with one.
How much does it cost to scrape Google Images?
You pay per image saved to the dataset. This price is final:
| Event | Price | Per 1,000 |
|---|---|---|
image: one image row | $0.0003 | $0.30 |
There is no start fee. Nothing is charged for failed pages, retries or repeated images. Platform usage is included in the price. The run stops by itself when it reaches your maximum total charge.
Examples:
- One query, first 100 images: $0.03.
- An image dataset: 50 queries × 300 images = 15,000 images = $4.50.
- Weekly brand check of 20 keywords × 100 images for a month: 8,000 images = $2.40.
Limits
- About 300 images per query. Google Images stops paging after about 300 to 370 unique images for a busy query. For more, add related queries (synonyms, other languages,
site:searches) or other countries. - Original URLs live on other sites.
imageUrlpoints to the host site, which may later move the file or refuse hotlinking.thumbnailUrlis served by Google and always loads. This Actor does not download the image files. - Speed. Each Google page holds 50 to 100 images and takes 5 to 70 seconds. On Apify, 4 UK queries of 300 images (1,155 images) took under 2 minutes. Queries run in parallel (
maxConcurrency). - Order. Rows come in Google's order. Paging comes from Google's own pages, so a deep query can end a little under 300 when Google has no more.
- Licenses.
usageRightsis Google's own license filter. Always check the license on the source page before you reuse an image. - Google can change its pages at any time. The Actor retries failed pages on a fresh connection and says in the status message when a query got no answer.
Use with Python
# pip install apify-clientfrom apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("datagleaner/google-images-scraper").call(run_input={"queries": ["golden retriever puppy"], "maxImagesPerQuery": 100, "imageSize": "large"})for item in client.dataset(run.default_dataset_id).iterate_items():print(item["position"], item["width"], item["height"], item["imageUrl"])
That run returns 100 images for $0.03.
Use with JavaScript / Node.js
// npm install apify-clientimport { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('datagleaner/google-images-scraper').call({queries: ['modern kitchen design'],country: 'uk',maxImagesPerQuery: 300,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const img of items) console.log(img.position, img.sourceDomain, img.imageUrl);
Use it from n8n, Make, Zapier or an AI agent
Actor ID: datagleaner/google-images-scraper
Minimal input:
{"queries": ["golden retriever puppy"], "maxImagesPerQuery": 20}
Each tool below runs this Actor with your own Apify API token.
-
n8n: add the Apify node (
@apify/n8n-nodes-apify) and choose Run an Actor and get dataset. Set the Actor todatagleaner/google-images-scraperand paste the input above. -
Make: use the Apify app's Run an Actor module, then Get Dataset Items.
-
Zapier: use the Apify action Run Actor, then the search Fetch dataset items.
-
AI agents (MCP): connect to
https://mcp.apify.com?tools=datagleaner/google-images-scraper. In Claude Code:claude mcp add --transport http apify "https://mcp.apify.com?tools=datagleaner/google-images-scraper"Then run
/mcpto sign in to Apify, and ask in plain language. For example: "Use the Google Images scraper to find 50 large Creative Commons photos of the Eiffel Tower and list their sizes and source sites."
FAQ
Is there a Google Images API? Google offers no official API for Google Images results. This Actor works like one: send queries, get JSON back, through the Apify API, its clients, or the integrations above.
How do I get the full-size image and not the thumbnail? Use imageUrl. It is the original file on the host site, with its real width and height. thumbnailUrl is Google's small preview.
Can I search Google Images in other countries and languages? Yes. Set country (43 of them) and language, and write the query in that language, for example 桜 写真 with country: jp and language: ja.
Can I filter by size, type, color, date or license? Yes, with imageSize, imageType, imageColor, timePeriod and usageRights. They are Google's own filters and can be combined.
How many images can I get per search? Up to about 300, which is as far as Google Images pages. Split a broad subject into narrower queries for more.
Does it download the images? No. It returns the URLs, sizes and metadata. Download the files yourself from imageUrl (or thumbnailUrl) if you need them, and respect each image's license.
Do I need a Google account, API key or proxy? No. Everything runs on Apify. You only need an Apify account.
Responsible use
This Actor collects only what Google Images shows publicly: image links, sizes, titles and the pages they come from. Images are usually protected by copyright, and some show people. You are responsible for how you use the results, including copyright and licensing, and any data protection rules that apply to images of people where you work. Check each image's license on its source page before you reuse it. This is not legal advice.
Feedback
If this Actor saved you time, a rating on its Store page helps others find it. Problems or requests: open an issue on the Issues tab.