Google Images Scraper – Image Search Results
Pricing
$0.50 / 1,000 image returneds
Google Images Scraper – Image Search Results
Scrape Google Images results as data: full-size image URL with width and height, thumbnail, source page, title, site and dominant colour for any search. Filter by size, colour, type, file type, time and usage rights. Uses Apify's Google SERP proxy. No API key, no browser. Unofficial.
Pricing
$0.50 / 1,000 image returneds
Rating
0.0
(0)
Developer
Simple Actor
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Share
Scrape Google Images results as structured data. Type what you would type into Google's Images tab and every image comes back as a row: the full-size image address on the site that hosts it, its width and height, Google's thumbnail, the page the image appears on with its title and site name, the file size and the image's dominant colour — in Google's own order.
Built for dataset building, visual research, image SEO, product and brand monitoring, and finding the original source of a picture. Every filter from the Images tab's Tools menu is here: size, colour, type, file type, time and usage rights.
No API key, no login, no browser, no account of yours involved. About a hundred images arrive in one request, so a typical search finishes in seconds.
$0.50 per 1,000 images — $0.05 for a typical 100-image search. Apify platform usage included, nothing else to pay. A search that cannot be read is never charged.
Unofficial. Not affiliated with, endorsed by, or sponsored by Google.
Features
- The original, not the thumbnail —
imageUrlis the full-size file on the site that hosts it, with its real pixel dimensions. Google's thumbnail is there too, in its own field. - The page behind every image —
pageUrl, itstitle, the site's name and domain, so you can check a licence or credit the source. - Every Tools-menu filter — size, colour (including one specific colour or transparent backgrounds), type (photo, clip art, line drawing, animated GIF, face), file type, time, usage rights, and SafeSearch.
- An exact size floor —
minWidthandminHeightkeep only images at least that big, measured on Google's stated dimensions. Google's own size filter is coarser. - Dominant colour and file size on every row — whatever filters you use.
- Many searches in one run — one per line, each with its own rows.
- Paste a Google Images link — a link copied from your browser is read with its own search terms and filters.
- Country and language — search as Google does from another country.
- Stable IDs —
imageIdis Google's own ID for the image, for deduplicating across searches and scheduled runs. - Runs stay green. A search that cannot be read becomes an error row, so one bad line never costs the rest of the job.
Input
{"queries": ["golden gate bridge"], // one search per line"maxItems": 100, // images per search (Google has ~300–400)"imageSize": "large", // any | large | medium | icon"imageColor": "any", // any | color | grayscale | transparent | red | blue | …"imageType": "photo", // any | photo | clipart | lineart | animated | face"fileType": "any", // any | jpg | png | gif | bmp | svg | webp | ico"timeRange": "any", // any | day | week | month | year"usageRights": "any", // any | creativeCommons | commercial"safeSearch": false,"minWidth": 1200, // optional: drop anything narrower"country": "US","language": "en"}
Google's operators work in the search terms:
{"queries": ["site:nasa.gov mars rover","\"red panda\" -cartoon","https://www.google.com/search?q=eiffel+tower&udm=2&tbs=itp:animated"]}
| Field | Type | Default | What it does |
|---|---|---|---|
queries | array | — | Search terms, one per line, or links copied from Google's Images tab. |
maxItems | integer | 100 | Images per search, up to 500. Google runs out at roughly 300–400 for most searches. |
imageSize | string | any | large, medium or icon. |
imageColor | string | any | color, grayscale, transparent, or one colour: red, orange, yellow, green, teal, blue, purple, pink, white, gray, black, brown. |
imageType | string | any | photo, clipart, lineart, animated (GIFs) or face. |
fileType | string | any | jpg, png, gif, bmp, svg, webp or ico. |
timeRange | string | any | day, week, month or year. |
usageRights | string | any | creativeCommons or commercial — Google's licence labels. |
safeSearch | boolean | false | Have Google filter explicit images out. |
minWidth, minHeight | integer | — | Drop images below this size in pixels. Exact, applied after the search. |
country | string | US | Two-letter code: US, GB, DE, IN… |
language | string | en | en, de, fr, es, pt-BR, ja… |
A pasted Google link keeps its own filters; the filter fields apply to links that carry none, and to every plain search.
How many images
Google sends up to about a hundred images per request, so the default of 100 is usually a single request. Ask for more and further requests are made until you have them or Google runs out — for most searches that is somewhere around 300 to 400 images, the same point where the Images tab stops scrolling in a browser. Reading stops there on its own.
Output
One item per image, in the run's dataset:
{"type": "image","position": 1,"title": "Red panda - Wikipedia","imageUrl": "https://thumb.wikimedia.org/wikipedia/commons/thumb/f/fd/Red_Panda%2C_Gentle_Tree-Dweller_of_the_Himalayas.jpg/1280px-Red_Panda%2C_Gentle_Tree-Dweller_of_the_Himalayas.jpg?utm_source=en.wikipedia.org&utm_campaign=index&utm_content=thumbnail","imageWidth": 1280,"imageHeight": 853,"thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR4uYYm5fvNPU0Tzqjy66KfWvYLqXLkgsykJ5BNbGCntQ&s=10","thumbnailWidth": 547,"thumbnailHeight": 365,"pageUrl": "https://en.wikipedia.org/wiki/Red_panda","sourceName": "Wikipedia","domain": "en.wikipedia.org","fileSize": "269KB","dominantColor": "#784e32","imageId": "OqyF9koU4LIU_M","query": "red panda","searchUrl": "https://www.google.com/search?q=red+panda&udm=2&hl=en&gl=US","page": 1,"retrievedAt": "2026-09-11T02:32:53.289Z"}
| Field | What it is |
|---|---|
imageUrl | The full-size image on the site that hosts it — not Google's copy. |
imageWidth, imageHeight | Full-size dimensions in pixels, as Google states them. |
thumbnailUrl, thumbnailWidth, thumbnailHeight | Google's thumbnail, which stays up even if the original moves. |
title | The title Google shows under the image — the title of the page it appears on. |
pageUrl | The page the image appears on: where to check its licence or credit it. |
sourceName, domain | The site's name as Google shows it, and its host. |
fileSize | The full-size file's size, as Google states it. |
dominantColor | The image's dominant colour, as a hex code. |
imageId | Google's ID for the image, stable across runs — for deduplicating. |
position, page | Google's rank, 1 first, and which request of the search it came from. |
query, searchUrl | The search, and the Google Images address it was read from. |
A search that could not be read is its own row with type: "error", an
error code and an errorDescription. The run itself stays green either way,
and its status message says how many searches could not be read — so if you
run on a schedule, check for type: "error" rows rather than trusting the run
status.
An empty dataset means the searches were read and Google showed no images for them. It never means a search could not be made; that arrives as an error row instead.
How to use
From Apify Console
- Open the Actor and click Try for free / Start.
- Put one search per line into Search terms — or paste a link from your browser's Google Images tab.
- Set Images per search. 100 is one request; Google has roughly 300–400 for most searches.
- Pick any Filters you want, exactly as in the Images tab's Tools menu. For images at least a certain size, set Minimum width or Minimum height.
- Click Start, then open the Dataset tab — the Images view shows a thumbnail of each — and export as JSON, CSV or Excel.
From the API
curl -s "https://api.apify.com/v2/acts/simple.actor~google-images/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"queries": ["golden gate bridge"], "imageSize": "large", "maxItems": 100}'
With the JavaScript client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('simple.actor/google-images').call({queries: ['red panda', 'snow leopard'],usageRights: 'creativeCommons',minWidth: 1600,});const { items } = await client.dataset(run.defaultDatasetId).listItems();// items[].imageUrl is the full-size file; items[].pageUrl is where to check its licence.
Use cases
- Training and evaluation datasets — collect hundreds of labelled images
per term, with dimensions to filter on and a stable
imageIdto deduplicate. - Image SEO — see which pages and sites rank in Google Images for your keywords, and where your own images sit.
- Brand and product monitoring — find where a logo or product photo appears, with the page that uses it.
- Source finding and licensing — go from a picture to the page that hosts it, and narrow to Creative Commons images before checking the licence.
- Content and design research — mood boards by colour, transparent PNGs, line drawings or GIFs for a topic.
- Local visual research — how a place or product looks in another
country's results, with
countryandlanguage.
Pricing
Simple pay-per-result pricing — no subscription and no start fee.
| Event | Price |
|---|---|
| Image returned | $0.0005 |
What that comes to:
- A search at the default depth, 100 images: $0.05.
- Everything Google has for a search, roughly 350 images: about $0.18.
- 1,000 images, however many searches they come from: $0.50.
Error rows are never charged, and a search Google has no images for costs nothing.
Limits worth knowing
- Google stops at roughly 300–400 images a search. That is where the Images tab stops scrolling in a browser too; asking for more returns what Google has.
- Filters are Google's. Size, type, colour and licence are how Google has
labelled the image. A licence label in particular is not a legal guarantee —
check the licence on
pageUrlbefore reusing an image. - No aspect-ratio filter. Google currently ignores it, so it is not
offered. Use
imageWidthandimageHeighton the rows instead. - A very specific or misspelled search is not flagged. Google loosens a search it has little for and shows related images without saying so.
FAQ
Is scraping Google Images legal? Results come from Google and are subject to Google's terms, and the images themselves belong to their owners. This Actor returns addresses and descriptions, not copies of the images; check the licence on each image's page before reusing it. Searches go through Apify's Google SERP proxy, which is the sanctioned route to Google's results pages.
Do I need a Google API key or a search API account? No. There is no key, no login, no browser and no quota of your own to manage.
Does it download the images?
No. Each row carries the full-size address and Google's thumbnail; fetch them
yourself, or feed imageUrl into a downloader.
How do I know a search failed if the run stays green?
Check for rows with type: "error" — that is the failure channel by design, so
one bad search never costs the rest of the job. The run's status message also
counts how many searches could not be read.
Results come from Google and are subject to Google's terms. Searches use Apify's Google SERP proxy. Unofficial, and not affiliated with Google.