Google Image Search Scraper & API Alternative avatar

Google Image Search Scraper & API Alternative

Pricing

from $1.50 / 1,000 unique image scrapeds

Go to Apify Store
Google Image Search Scraper & API Alternative

Google Image Search Scraper & API Alternative

Scrape images from Google Images by keyword. Extract direct image URLs, alt text, and source links, up to 30k results per query. A fast Google image search API alternative for JSON, CSV, or Python.

Pricing

from $1.50 / 1,000 unique image scrapeds

Rating

0.0

(0)

Developer

Thodor

Thodor

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

2

Monthly active users

5 days ago

Last modified

Share

Google Image Scraper & Search API

Scrape images from Google Images by keyword. Extract up to 30,000 full-size image URLs per query with this Google image search scraper, including source pages, alt text, and dimensions. A Google image search API alternative, no API key required.

Why use this Google image scraper

Most Google image scrapers return only the first 100 results and give you thumbnail URLs from encrypted-tbn0.gstatic.com instead of the actual images. This actor solves both problems. It follows Google's "related images" graph for every result, expanding a single keyword into up to 30,000 unique full-size image URLs, and resolves every URL back to the source webpage so you get the real image file, the page it came from, and the alt text.

Common use cases:

  • Building image datasets for machine learning and computer vision training
  • E-commerce product image research and competitor monitoring
  • SEO and brand monitoring: tracking how your product images rank in Google Images across different countries
  • Stock photo and creative reference collection
  • Reverse image search source discovery

Google Image Search API alternative (no API key)

Google discontinued its official Image Search API in 2011. Since then, developers have relied on third-party APIs like SerpApi, Zenserp, and ScrapingBee, all of which require an API key, charge per request, and typically cap out around 100 results per query.

This actor is a Google Image Search API alternative that works differently:

  • No API key to manage: authenticate with your Apify token, same as any other actor
  • Pay per result, not per request: you only pay for unique results you actually receive
  • Up to 30,000 results per query: by following Google's related-images graph instead of stopping at the first results page
  • Full-size source URLs: resolved back to the origin webpage, not gstatic thumbnails

Features

  • Full-size image URLs, not encrypted-tbn0.gstatic.com thumbnails
  • Related images Automatically opens the related images page for every found image, massively expanding your results (up to 30,000 in my testing)
  • Structured output Clean JSON with image URL, source page, title, and relationships
  • Pay only for unique results: duplicates and nulls don't count, you only get charged for images with a resolved full-size URL

How to scrape Google Images by keyword

  1. Enter your search keyword in the search_query field
  2. Set max_results to how many images you need (up to 30,000)
  3. Enable get_related_images to follow the related-images graph for maximum volume
  4. Optionally set country and language for geo-targeted results
  5. Run the actor and export results from the dataset

Two modes: fast or deep

With get_related_images disabled, the actor returns the first page of Google Images results, the same ~450 images you would see if you typed the keyword into Google Images yourself. This is fast, around 30 seconds, and ideal when you just need a representative sample.

With get_related_images enabled, the actor clicks into each of those initial images to open Google's "related images" panel (the visually similar images you see when you click a result), and resolves every one of those back to its full-size source URL. This is how it expands a single keyword into up to 30,000 unique images, but resolving that many URLs takes time, expect 45-50 minutes for a full 30k run. Enable it when volume and dataset diversity matter more than turnaround.

Input

ParameterTypeRequiredDefaultDescription
search_querystringYesSearch term for Google Images
max_resultsintegerNo200Maximum total images to collect
get_related_imagesbooleanNofalseFollow visually similar image links to expand results (up to 30k)
countrystringNoUSCountry for search results and proxy geolocation (ISO 3166-1 alpha-2 code)
languagestringNoenLanguage for search results (ISO 639-1 code)

Example input

{
"search_query": "cat",
"max_results": 500,
"get_related_images": true,
"country": "US",
"language": "en"
}

Use with Python

Call the actor from Python using the Apify SDK:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("thodor/google-images-up-to-30k").call(run_input={
"search_query": "cat",
"max_results": 500,
"get_related_images": True,
"country": "US",
"language": "en",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["image_url"])

Run times

Actual run times using the keyword "cat". Your times may vary depending on the query and number of available results.

ModeImagesTime
Without related images4380m 32s
With related images29,87048m 33s

Without related images, expect ~450 results in about 30 seconds. With related images enabled, expect up to 30,000 results in roughly 45-50 minutes. It's a trade-off between depth and speed, enable related images when volume matters more than turnaround.

Output

Each result contains:

FieldDescription
image_urlFull-size image URL (the actual image, not thumbnail)
thumbnail_urlGoogle's thumbnail URL
widthImage width in pixels
heightImage height in pixels
page_urlURL of the webpage containing the image
titleImage title/alt text
related_linkGoogle link to visually similar images
search_queryThe search term used
depth_level0 = main results, 1 = from related images

Example output

[
{
"image_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/example.jpg",
"thumbnail_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:...",
"width": 1920,
"height": 1080,
"page_url": "https://en.wikipedia.org/wiki/Example",
"title": "Example cat photo",
"related_link": "https://www.google.com/search?tbs=rimg:...",
"search_query": "cat",
"depth_level": 0
},
{
"image_url": "https://example.com/similar-cat.jpg",
"thumbnail_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:...",
"width": 1600,
"height": 900,
"page_url": "https://example.com/gallery",
"title": "Similar cat photo",
"related_link": "https://www.google.com/search?tbs=rimg:...",
"search_query": "cat",
"depth_level": 1
}
]

FAQ

Is there an official Google Images API?

No. Google discontinued its official Image Search API in 2011. This actor works as a Google Image Search API alternative: you send a keyword, you get structured JSON back with full-size image URLs, source pages, and metadata.

How is this different from SerpApi or Zenserp?

SerpApi and Zenserp return the first ~100 results per query and charge per request. This actor follows the related-images graph to return up to 30,000 unique images from a single query, and charges per result so you only pay for what you get. No API key to manage either.

Can I scrape Google Images by country?

Yes. Set the country parameter (ISO 3166-1 alpha-2) and language parameter (ISO 639-1). The actor routes through a proxy in the target country so results match what a local user would see, which matters for branded queries, e-commerce, and SEO research.

Does it return full-size images or thumbnails?

Full-size original URLs from the source website. The thumbnail URL is included as a separate field if you need it, but the main image_url is always the actual image, not a gstatic.com thumbnail.

Can I export results to CSV or Excel?

Yes. All Apify datasets export to JSON, CSV, Excel, XML, RSS, and HTML from the console, or via the Dataset API.

Can I use this Google image scraper with Python?

Yes. Use the Apify Python SDK (apify-client) to call the actor, pass your input, and iterate the resulting dataset. See the Python example above.

What happens if Google rate-limits my run?

Google may rate-limit requests at very high volumes and abort the request early. The actor will save all results collected up to that point and restart. You only pay for unique results. For maximum reliability, run multiple smaller queries instead of one massive one.

Limitations

  • Google may rate-limit requests for very high volumes, aborting the request early
  • Platform migrations: If Apify migrates the run to a different server, the actor will stop and save all results collected so far. This actor cannot resume after migration because it relies on browser state that cannot be serialized. It will restart.

Support

Something not working as expected? Message me in the Issues tab and I'll look into it as quickly as possible. I'm a solo dev, so don't hesitate to reach out with any other questions.

  • Thodor

P.S. If everything works well, please leave a review! And if it doesn't, you don't know me!