Google Images Scraper With Keyword Search avatar

Google Images Scraper With Keyword Search

Pricing

$14.99/month + usage

Go to Apify Store
Google Images Scraper With Keyword Search

Google Images Scraper With Keyword Search

Scrapes Google Images for any keyword, collecting image URLs, thumbnails, titles, source pages, resolutions, and metadata. Ideal for research, dataset creation, competitor analysis, inspiration gathering, and automated large-scale image collection from Google Search.

Pricing

$14.99/month + usage

Rating

0.0

(0)

Developer

Scrapio

Scrapio

Maintained by Community

Actor stats

2

Bookmarked

17

Total users

1

Monthly active users

11 days ago

Last modified

Share

Google Images Scraper — Extract Images, Thumbnails and Source Pages

Google Images Scraper With Keyword Search turns a list of keywords into a structured dataset of Google Images results — direct image URLs, thumbnails, dimensions, source pages, and site origins — one JSON row per image. Built-in search operators cover exact-phrase matching, excluded terms, OR keyword sets, and automatic related-keyword expansion through Google Autocomplete. Unlike a scraping framework that hands back raw HTML, it returns typed JSON streamed to your dataset in real time — ready for a spreadsheet, database, or LLM pipeline without any parsing. This guide covers every input and output field, and the workflows teams run it in: real-time enrichment, scheduled monitoring, and bulk dataset builds.

🧭 What Does Google Images Scraper With Keyword Search Do?

Google Images Scraper With Keyword Search runs a Google Images search for each keyword you provide and returns every matching image as a structured row. It talks to Google's public image search page directly — no browser automation, no Google account, and no API key required — so it behaves the same for one test keyword or a list of hundreds.

Each run can return:

  • 🖼️ Full-size image links, with width and height in pixels
  • 🌠 Thumbnail links, with their own separate width and height
  • 🔗 The source page hosting the image (contentUrl) and its domain (origin)
  • 📝 The title of the source page
  • 🧾 The exact query string sent to Google for that row (searchQuery)
  • 🌱 The specific term actually searched — your seed keyword or a related-keyword expansion (searchKeyword, sourceKeyword)
  • ❝❞ Exact-phrase, exclude-term, and OR-keyword operators, applied before the request is sent

⚡ Features & Capabilities

The feature set splits into three groups: how you shape a search, how deep it digs per keyword, and what you get back on every row.

Core features

  • Multi-keyword runskeywords accepts a list; each seed keyword is searched in turn, and the log prints progress as each one finishes.
  • Query operatorsexactPhrase wraps the term in quotes, excludeTerms appends -term for each excluded word, and anyOfKeywords adds an OR group to the query. All three combine into a single query string that is saved verbatim on every row as searchQuery.
  • Related-keyword expansionexpandRelatedKeywords fetches Google Autocomplete suggestions for each seed and searches those too, capped per seed by maxRelatedPerKeyword.
  • Facet cycling for depth — internally rotates through a pool of Google's own image-search filters (photo/clipart type, color, size, aspect ratio, recency, and more) so a single keyword can keep surfacing new unique images instead of stopping at Google's first results page.
  • Per-keyword de-duplication — the same image is never pushed twice within one keyword's search, including any related terms it expanded into.
  • Real-time streaming — every row (imageUrl, imageWidth, imageHeight, thumbnailUrl, thumbnailWidth, thumbnailHeight, title, contentUrl, origin, query, searchQuery, searchKeyword, sourceKeyword) is pushed to the dataset as soon as it is parsed, not batched at the end of the run.
  • Automatic retries — blocked or challenge pages are detected and retried against a new proxy session before a request is given up on.

Google Images Scraper With Keyword Search within the Scrapio data stack

Google Images Scraper With Keyword Search covers Google Images search results specifically — it does not download image files, and it does not scrape Google Shopping or Google web-search results. No other Scrapio Actor currently covers Google Images. For adjacent visual-data needs in the Scrapio suite: Airbnb Images Scraper With Captions & Room Tags pulls captioned photo galleries per listing, and Ebay Search Scraper & Seller Store Details and Shein Search Products Scraper — Full Product Details return keyword-searched product listings that carry their own image fields alongside price, condition, and seller data.

Why do developers and data teams scrape Google Images?

🏢 Marketing, SEO, and creative teams

Feed a list of product names, campaign topics, or brand terms into keywords and pull back imageUrl, thumbnailUrl, title, contentUrl, and origin for every result. Use origin to see which domains currently rank visually for a topic, exactPhrase to check coverage of a specific campaign slogan, and excludeTerms to strip out irrelevant clipart or stock-photo noise. The result lands as a flat dataset you can drop straight into a mood board, a content-gap audit, or a competitive visual-asset review — no manual screenshotting of search results pages.

📊 AI training data and RAG indexing

title, contentUrl, and origin give every image a citation-ready context — the source page's headline and domain — while imageUrl, thumbnailUrl, and their width/height fields are structured primitives an embedding pipeline can consume directly. For RAG enrichment, attach the title + contentUrl pair to a record as retrievable context, with origin as the source-attribution field a model can cite back to the user. For training data, searchKeyword and sourceKeyword let you build weak-supervision labels — every image is already tagged with the term that surfaced it, so a keyword-labelled image set requires no separate annotation pass.

📱 Competitive and market intelligence

Run the same keyword list on a schedule and compare origin and imageUrl between runs to see which domains are gaining or losing visual search visibility for a topic, brand, or product category. A new domain appearing in origin for a tracked keyword, or a previously ranking imageUrl disappearing, is a concrete, field-level signal rather than a manual spot-check.

🔬 Research and academic use

Google Images Scraper With Keyword Search is well suited to building image corpora for visual, social, or market research — keyword-driven, publicly accessible results only. It does not access private albums, logged-in content, or anything behind a paywall; scope any research dataset to public data and cite your collection method accordingly.

🎥 Product and SaaS development

The stable 13-field row shape makes this a workable backend for a lightweight image-search or reverse-lookup feature: keep imageUrl, thumbnailUrl, title, and origin for display, and use sourceKeyword/searchKeyword to route results back to the query a user typed.

🍚 Input Parameters

All parameters are optional — the schema defines no required fields; a run with no input at all falls back to the keyword nature.

ParameterRequiredTypeDescriptionExample Value
keywordsNoarrayList of seed keywords (e.g. nature, product shots, logos). One keyword per line. The base queries field is still accepted for backward compatibility.["electric car", "solar panel"]
queriesNoarrayAlternative to Keywords — accepted for backward compatibility with the base Google Images Scraper. Used only when Keywords is empty.["electric car"]
exactPhraseNobooleanWhen ON, each keyword is wrapped in quotes so Google matches the exact phrase (e.g. "red sports car"). Default false.true
excludeTermsNoarrayEach term here is appended as -term so results that mention it are filtered out (e.g. exclude "cartoon", "clipart").["toy", "clipart"]
anyOfKeywordsNoarrayBroaden the search: these terms are joined with OR and added to every query, so results matching any of them are returned.["tesla", "rivian"]
expandRelatedKeywordsNobooleanWhen ON, Google Autocomplete suggestions for each keyword are fetched and searched too. Every row records which term was actually searched (searchKeyword) and your original seed (sourceKeyword). Default false.true
maxRelatedPerKeywordNointegerCap how many Google Autocomplete suggestions to expand for each seed keyword (only used when expansion is ON). Minimum 1, maximum 20, default 5.5
maxImagesNointegerCap how many unique images to keep for each search term. Minimum 1, maximum 100000, default 10. The log shows progress toward this goal in real time.50
proxyConfigurationNoobjectKeep the default proxy selection for best results. Prefilled to {"useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"]}.{"useApifyProxy": true}

⚠️ The maxImages field's own description says "(1–1000)", but the schema's enforced range is minimum: 1, maximum: 100000 — values above 1000 are accepted and processed. In practice, very large values are rarely reached: collection for a keyword stops early once 14 consecutive search attempts (across related terms and internal search filters) return zero new unique images, so real yield for a narrow or exhausted keyword can land well under maxImages.

Example input

{
"keywords": ["electric car", "solar panel"],
"exactPhrase": true,
"excludeTerms": ["toy", "clipart"],
"anyOfKeywords": ["tesla", "rivian"],
"expandRelatedKeywords": true,
"maxRelatedPerKeyword": 5,
"maxImages": 50,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["GOOGLE_SERP"]
}
}

Supported keyword formats and search operators

This Actor searches by keyword, not by URL — there is no URL input field. Three real examples:

  • Plain multi-keyword search: "keywords": ["nature", "product shots", "logos"] — each keyword runs as its own search, in order.
  • Exact phrase, narrowed with exclusions: "keywords": ["red sports car"], "exactPhrase": true, "excludeTerms": ["toy", "clipart"] — sent to Google as "red sports car" -toy -clipart.
  • Broadened with an OR group and related-keyword expansion: "keywords": ["electric car"], "anyOfKeywords": ["tesla", "rivian"], "expandRelatedKeywords": true — sent as electric car (tesla OR rivian), plus a second round of searches for whatever Google Autocomplete suggests for "electric car".

📦 Output Format

Every result is a flat, typed JSON row — no nested objects to unpack. The dataset's default table view surfaces all 13 fields the Actor writes; there is no hidden or trimmed data behind it. Thumbnail and source-page details are fields on this same row, not separate output objects, so there is a single output shape to document.

Output for image results

{
"query": "electric car",
"imageUrl": "https://www.example-auto-blog.com/images/electric-car-2026.jpg",
"imageWidth": 1600,
"imageHeight": 1066,
"thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQabc123",
"thumbnailWidth": 300,
"thumbnailHeight": 200,
"origin": "example-auto-blog.com",
"contentUrl": "https://www.example-auto-blog.com/2026-electric-car-review",
"title": "2026 Electric Car Review — Range, Price and Specs",
"sourceKeyword": "electric car",
"searchKeyword": "electric car",
"searchQuery": "\"electric car\" -toy -clipart (tesla OR rivian)"
}
FieldDescription
queryThe query label for the row (the seed keyword)
imageUrlDirect link to the full-size image
imageWidthImage width in pixels
imageHeightImage height in pixels
thumbnailUrlPreview thumbnail link
thumbnailWidthThumbnail width in pixels
thumbnailHeightThumbnail height in pixels
originDomain of the source page
contentUrlWeb page hosting the image
titleTitle of the source page
sourceKeywordThe original seed keyword you typed
searchKeywordThe term actually searched — the seed, or a related-keyword expansion
searchQueryThe exact query string sent to Google for this row, including your operators

Schema stability and export options

These 13 field names are defined by the Actor, not copied verbatim from Google's internal page structure, so they stay stable even if Google changes its front end. Export the dataset in any of Apify's standard formats — JSON, CSV, or Excel — from the Apify Console or via the API/apify_client, or read it programmatically as Actor.push_data() writes it, in real time.

💡 Google Images Scraper With Keyword Search Strategy Guide

🎯 Strategy 1: Real-time enrichment pipeline

Trigger a run whenever a new record needs a visual reference — a new product SKU, a new brand mention, a new content topic. Run the Actor with keywords set to the record's name and a modest maxImages (5–10), then append the returned imageUrl, thumbnailUrl, and title fields back onto that record in your CRM, CMS, or database. Because rows stream in real time, a downstream process can start consuming results before the run finishes.

🎯 Strategy 2: Scheduled monitoring and alerting

Use an Apify Schedule to re-run the same keyword list on a cadence you choose. Diff the new run's origin and imageUrl values against the previous run for the same sourceKeyword, and alert on the delta that matters to you — a new domain appearing in origin for a tracked keyword, or a previously surfaced image dropping out entirely.

🎯 Strategy 3: Bulk dataset build

Feed a long list of keywords into keywords in a single run, or split a very long list across several concurrent runs. The Actor itself processes keywords sequentially within one run — there is no documented parallel-fetch setting — so splitting a large keyword list across multiple runs is the practical way to add concurrency. Aggregate the resulting datasets to CSV or a database for a research or training corpus.

Strategy comparison at a glance

StrategyBest forRun patternOutput format
Real-time enrichmentAttaching images to individual new recordsTriggered, single keyword, small maxImagesStreamed JSON rows appended to a record
Scheduled monitoringTracking visual search-result changes over timeApify Schedule, same keyword list, recurringDataset diffed run-over-run on origin/imageUrl
Bulk dataset buildResearch or training corporaOne large keyword list, or split across runsDataset export to CSV/JSON
Scraper NameWhat it extracts
Airbnb Images Scraper With Captions & Room TagsCaptioned, room-tagged photo galleries per Airbnb listing — the closest cross-platform match for pure image extraction
Ebay Search Scraper & Seller Store DetailsKeyword-searched eBay listings with price, condition, images, and seller trust data
Shein Search Products Scraper — Full Product DetailsKeyword-searched Shein products with a color-variant image gallery, pricing, and fit feedback

How to integrate Google Images Scraper With Keyword Search with your stack

Google Images Scraper With Keyword Search works with any language or tool that can make an HTTP request through the Apify API.

Python

from apify_client import ApifyClient
import csv
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run_input = {
"keywords": ["electric car", "solar panel"],
"exactPhrase": False,
"maxImages": 30,
"expandRelatedKeywords": True,
}
# Replace with your Actor's full name as shown in the Apify Console
run = client.actor("YOUR_USERNAME/google-images-scraper-with-keyword-search").call(
run_input=run_input
)
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
with open("google_images.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=list(rows[0].keys()))
writer.writeheader()
writer.writerows(rows)
print(f"Saved {len(rows)} image rows to google_images.csv")

Node.js

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_API_TOKEN>" });
const run = await client
.actor("YOUR_USERNAME/google-images-scraper-with-keyword-search")
.call({
keywords: ["electric car", "solar panel"],
maxImages: 30,
expandRelatedKeywords: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} image rows`);
console.log(items[0]);

Async and scheduled pipelines

For large or recurring jobs, use an Apify Schedule to run the Actor on a cron-style cadence instead of calling it synchronously, and poll the run status or dataset item count via apify_client until the run finishes. Apify can also fire a webhook on run completion so a downstream service is notified without polling.

🎯 Who Needs Google Images Scraper With Keyword Search? (Use Cases & Industries)

🏢 Marketing and SEO teams

Search a product or campaign name, export imageUrl, title, and origin, and see which sites already rank visually for that term before launching a content or ad campaign.

📊 AI and data teams

Use title and contentUrl as source-attributed context fields when enriching a RAG index, and searchKeyword/sourceKeyword as ready-made labels for a keyword-tagged image dataset.

📱 Brand and competitive intelligence teams

Track origin for a brand or category keyword across scheduled runs to catch new competitors or content sites gaining visual search presence.

🔬 Researchers

Build keyword-scoped image corpora for social, media, or market research from publicly accessible Google Images results only.

🎥 Product and SaaS builders

Use the stable output schema as the data backend for an internal image-search, reverse-lookup, or visual-reference tool.

Scraping publicly accessible web data, including public search-engine results, is generally lawful in the United States. In hiQ Labs, LLC v. LinkedIn Corp., 9th Cir., 2019 (reaffirmed on remand in 2022), the court held that accessing publicly available website data does not violate the Computer Fraud and Abuse Act. That precedent addresses access to public data broadly, not Google specifically, and does not resolve every jurisdiction or every claim.

Three separate questions apply here. Scraping public data has the legal footing described above. Violating a platform's Terms of Service is a separate matter — a civil contract risk between the user and the platform, not a criminal one. Data protection law is the third question: Google Images Scraper With Keyword Search returns image and web-page metadata (URLs, dimensions, titles, domains) rather than personal profile data, so GDPR's data-subject framing generally does not attach to the rows themselves — though the underlying images, being drawn from the open web, may incidentally depict identifiable people, and any downstream use of that content remains the user's responsibility.

Google Images Scraper With Keyword Search returns only publicly accessible data. What you do with that data is your responsibility — consult legal counsel for commercial applications involving personal data.

❓ Frequently asked questions

Does Google Images Scraper With Keyword Search work without a Google account?

Yes. It fetches Google's public image search page directly and needs no Google account, login, or API key.

How does Google Images Scraper With Keyword Search handle Google's anti-scraping measures?

It fetches pages with a browser-impersonating HTTP client (Chrome TLS fingerprint via curl_cffi), routes requests through Apify Proxy (the GOOGLE_SERP proxy group by default), and detects blocked or "unusual traffic" challenge pages automatically. A blocked request is retried up to 3 times, each attempt through a new proxy session, with a short backoff between attempts.

Can I run Google Images Scraper With Keyword Search at scale without getting blocked?

There is no published uptime or block-rate figure. The Actor rotates proxy sessions on every retry and processes keywords sequentially within a run; for very large keyword lists, splitting the list across multiple concurrent runs is the documented way to add throughput, since the code itself has no parallel-fetch setting.

How fresh is the data Google Images Scraper With Keyword Search returns?

Every run performs a live fetch against Google Images at run time — nothing is cached or replayed from a previous run.

Will maxImages always return that many results?

Not necessarily. Collection for a keyword stops early if 14 consecutive search attempts — across related-keyword expansions and internal search filters — add zero new unique images, so a narrow or already-exhausted keyword can return fewer rows than maxImages asks for.

Which fields work best for AI training and RAG indexing?

title and contentUrl/origin give citation-ready context for RAG. searchKeyword and sourceKeyword give every image a ready-made topic label for training data. All fields return as typed strings, integers, or booleans — no HTML or nested structures to normalize before use.

Is the same image deduplicated across a whole run?

Within one keyword's search — including any related terms it expands into — yes, the same imageUrl is never pushed twice. Across two different keywords in the same run, the same image can appear once per keyword, since de-duplication is tracked per keyword, not across the whole run.

Can I still use the legacy queries input?

Yes. keywords is read first; queries is used only when keywords is empty, so input built for the original Google Images Scraper keeps working unmodified.

Does Google Images Scraper With Keyword Search work with Claude, ChatGPT, and other AI agent tools?

It is callable as an HTTP endpoint through the Apify API by any agent framework that can make a request — there is no dedicated MCP server for this Actor. Every response is typed JSON, ready to drop into an LLM context window without parsing.

ℹ️ Disclaimer

Google Images Scraper With Keyword Search extracts only publicly available data from Google Images. This tool is intended for lawful use cases only. Users are responsible for complying with Google's terms of service and applicable data protection laws in their jurisdiction.