Google Images Scraper — Image Search Results by Keyword
Pricing
from $0.10 / 1,000 images
Google Images Scraper — Image Search Results by Keyword
Google Images results by keyword, per image: one flat row per image with the image link, the page it sits on, its title, the site, its alt text and its rank — up to 200 per keyword, for any country and language. Only new images on a re-run. No login, no API key.
Pricing
from $0.10 / 1,000 images
Rating
0.0
(0)
Developer
Steadyfetch Team
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 hours ago
Last modified
Categories
Share
Type search terms and get Google Images' results for each one as flat rows: the image link, the page it sits on, its title, the site, its alt text, its rank and Google's thumbnail — up to 200 images per keyword, for any country and language. Priced per image, from $0.10 per 1,000 images. No login, no API key.
SEO teams use it to see which pages and sites own the image results for their keywords, e-commerce teams to see whose product photos show up for a product term, and AI and dataset builders to collect labelled image links (every image comes with its title and alt text) by topic. One run turns a list of keywords into one table you can filter, sort and export.
Using an AI agent? Pin this actor in Apify's MCP server with one link: https://mcp.apify.com?tools=steadyfetch/google-images-search
- Actor id:
steadyfetch/google-images-search - Input:
{ "keywords": ["sourdough bread"], "maxImages": 100, "country": "US", "language": "en" } - Cap the bill: set
maxTotalChargeUsdon the run (a run option, not Actor input), e.g.0.50— the run searches only the keywords that can pay. - Price: $0.0001 per image at Gold ($0.0004 on the Apify free plan), or one $0.005 keyword check for a keyword with few new images. No start fee. Full table below.
- How often it changes: Google Images results shift as pages are published and re-ranked. A weekly run of the same keywords delivers only the images you have not received yet.
Unofficial. Not affiliated with, endorsed by, or sponsored by Google.
What you get
One flat row per image (rowType: "image"), in Google Images' order:
| Column | What it holds |
|---|---|
keyword · keywordIndex | the search term you gave, and its place in your list |
rank | the image's position in Google Images for that keyword (1 = first) |
imageUrl | the image's own address |
pageUrl | the page the image sits on |
title · altText | the image's title and its alt text |
siteName · site | the site's name as Google shows it, and its domain |
thumbnailUrl | Google's small preview of the image |
country · language | where and in which language the keyword was searched |
seenBefore | true when this actor already delivered this image to your account for the same keyword (only when Only images I have not received is off) |
Then one keyword row per searched keyword (rowType: "keyword") with its counts — images Google showed, image rows delivered, images you already had, pages read — its related searches and Google's refinement chips (relatedSearches, refinements), and how it billed (billedAs).
Google Images does not give an image's width or height on the results page, so there are no size columns.
Every row also carries charged, chargedEvents, status and statusReason, so you can reconcile your bill from the dataset itself.
How to use it
- Put your search terms in Keywords — one per line, typed the way you would type them into Google Images. Up to 100 per run.
- Set Max images per keyword (default 100, up to 200), and the Country and Language if not the United States in English.
- Press Start — or schedule it weekly.
Refused before any search, and never charged: an empty entry, a keyword over 200 characters, a keyword using search operators such as site:, intitle: or filetype:, and a country or language that names nothing. Each gets its own row saying why.
Only the new images
This actor keeps a small record per keyword, country and language in a store named google-images-account in your Apify account: the ids of the images it delivered to you, nothing else. With Only images I have not received on (the default), images you already received are left out and never charged again, so a scheduled run delivers what is new. Turn it off to get every image again, marked seenBefore: true and charged as images.
Pricing
Pay per image, all-inclusive (no platform usage on top), no start fee:
| Event | Apify Free plan | Bronze | Silver | Gold and up |
|---|---|---|---|---|
| Image (one image row) | $0.0004 | $0.0003 | $0.0002 | $0.0001 |
| Keyword check (per 100 images read, for a keyword with few new images) | $0.005 | $0.005 | $0.005 | $0.005 |
A keyword bills its images, or its keyword check — whichever is more, never both. Every keyword is read in pages of up to 100 images. When a keyword's new images are worth less than one keyword check per page read — a keyword with few images, one Google Images shows no images for, or one whose images you already had — it is charged the check instead, and its images are delivered without the per-image fee. A keyword Google Images shows no images for is still charged one keyword check, because it was searched. Never charged: a keyword refused before the search, one that got no answer in time, and the bare-Start sample.
Examples at Gold: 1 keyword with 100 images = $0.01. 10 keywords with 100 images each = $0.10. 1 keyword with 200 images = $0.02. A keyword with 20 images = one $0.005 check. A weekly re-run that finds nothing new = one $0.005 check per keyword.
Good to know
- Up to 200 images per keyword — Google Images' first two pages, in its own order.
- A time limit ends the searching, never the delivering: keywords already searched are delivered, and the receipt says which limit stopped the run.
- Free plan: on the Apify free plan a run reads five pages per 24 hours (five keywords at 100 images); the row says when it resets. Paid plans have no daily allowance.
- Standby endpoint: one keyword per HTTP request (
GET /?keyword=sourdough%20bread), up to 200 images, at the same prices. It keeps no account memory: every request is a fresh search of every image. - Bare Start: with no keyword set, the run searches "sourdough bread" as a sample and charges nothing.
- Honest rows:
input_error(the row names the field),try_again(no answer in time — a re-run fixes it),skipped_budget/skipped_deadline. None is charged. - The receipt is the last row (
run_summary) and the run'sOUTPUTrecord.
Support
Questions, a keyword that returns something odd, or a column you need: open an issue on the Issues tab and it will be looked at.
If it earned its keep, a rating helps other buyers find it, and saving the actor keeps it one click away.