# Google Images Scraper (`scrapelabsapi/google-images-scraper`) Actor

🔎 Google Images Scraper by google-images-scraper extracts high-quality image results fast with advanced query options. Perfect for SEO research, content discovery, and media sourcing. 🚀 Save time, streamline workflows, and boost productivity.

- **URL**: https://apify.com/scrapelabsapi/google-images-scraper.md
- **Developed by:** [ScrapeLabs](https://apify.com/scrapelabsapi) (community)
- **Categories:** Automation, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

Mark Down
### 🌌 What is Google Images Scraper?

A Google Images Scraper is a powerful tool that lets you extract image data directly from Google Image Search 🔍. Whether you’re a developer, researcher, marketer, or AI enthusiast, this scraper helps you collect thousands of images (URLs, thumbnails, metadata, dimensions, source websites) in seconds.

Unlike a basic Google image scraper extension or unreliable scripts found on Reddit or GitHub, this solution provides scalable, API-powered scraping with support for Python, Node.js, and NPM packages.

✅ SEO Benefits: By analyzing scraped images, you can track visual trends, monitor brand usage, or optimize your Google Image Search SEO strategy.

### 🌄 What image data can Google Images Scraper extract?

Here’s a breakdown of the data types you can collect with our Apify Google Images Scraper:

| 📌 Field | 🔍 Description |
| --- | --- |
| Query | The search keyword you entered |
| Image URL | Direct link to the high-resolution image |
| Thumbnail URL | Smaller preview image |
| Image Width & Height | Dimensions of the image |
| File Size | Image size in KB/MB |
| Page URL | The webpage where the image is hosted |
| Title | Title of the source page |
| Origin Website | Domain name of the source |
| Metadata | Additional info like format, color filters, or usage rights |

With this scraper, you can scrape Google Images for datasets, build AI training image sets, or even create custom stock libraries.

#### ✨ Key Features of Google Images Scraper

Our Google Images Web Scraper comes with advanced features that make it stand out:

*   🎨 Flexible Search Queries – Extract results for any keyword, including niche or multilingual queries.  
      
    
*   🌍 Global Support – Localize searches with country codes (us, gb, fr, etc.) and interface languages.  
      
    
*   🔢 Scalability – Scrape up to 5,000+ Google images per run without limits.  
      
    
*   🎛️ Advanced Filtering – Sort by color, size, type (clipart, GIFs, drawings), usage rights, or upload date.  
      
    
*   ⚡ Fast & Reliable – Get structured datasets instantly in JSON, CSV, Excel, or HTML.  
      
    
*   🔗 API & SDKs – Integrate with Python, Node.js (NPM), or Apify API for automation.  
      
    
*   💾 Export Ready – Download results in bulk with one click.  
      
    
*   🛡️ Safe & Compliant – Built with respect for legal and ethical scraping practices.  
      
    

This makes it more robust than typical Google image scraper Python scripts you’ll find on GitHub or extensions.

### 🛠️ How to Use Google Images Scraper

Here’s a step-by-step guide to extract data using the Apify Google Images Scraper app:

1.  Sign Up – Create a free Apify account or log in.  
      
    
2.  Find the Actor – Search for “Google Images Scraper” in the Apify Store.  
      
    
3.  Set Input Parameters – Enter your queries, max results, filters (size, color, type, etc.).  
      
    
4.  Choose Options – Decide if you want only URLs, metadata, or full datasets.  
      
    
5.  Run the Scraper – Hit Start, and let the scraper collect data automatically.  
      
    
6.  Download Results – Export to Excel, JSON, CSV, or HTML for further analysis.  
      
    

💡 You can also connect via Google Images Scraper API for automation in Python, Node.js, or Zapier workflows.

### 🎯 Use Cases for Google Images Scraper

The scraper has real-world applications across industries:

*   🔎 AI/ML Model Training – Build large, real-world image datasets for training.  
      
    
*   📊 SEO & Marketing Research – Analyze visual trends and competitors’ image strategies.  
      
    
*   📰 Journalism & Media – Quickly find images for news stories and editorial work.  
      
    
*   🎨 Creative Inspiration – Designers & artists can discover style references or unique visuals.  
      
    
*   👁️ Brand Monitoring – Track unauthorized logo or image usage across the web.  
      
    
*   📈 E-commerce & Product Research – Collect product images for price comparison & catalogs.  
      
    

### 💎 Why Choose Our Google Images Scraper?

Here’s why users prefer our solution over free Google Images scraper downloads or random GitHub scripts:

*   ✅ All-in-One – Works as a web app, API, and automation tool.  
      
    
*   ✅ High Scalability – Extracts thousands of results with speed & accuracy.  
      
    
*   ✅ API-Friendly – Seamlessly integrates with Python, Node.js (NPM), and Apify SDKs.  
      
    
*   ✅ No Maintenance Hassle – Unlike open-source scripts, no need to update when Google changes.  
      
    
*   ✅ Cost-Effective – Free monthly credits + affordable pricing.  
      
    
*   ✅ Trusted Platform – Runs on Apify Cloud, used by 100,000+ developers & businesses.
    

### 📊 How Many Results Can You Scrape with Google Images Scraper?

Our Google Images Scraper API is designed for scalability 🚀.

*   🔢 Basic Runs – Extract hundreds of images per query in seconds.  
      
    
*   📈 Advanced Runs – Scrape 5,000+ results per run, across multiple queries.  
      
    
*   🌍 Bulk Operations – Automate queries for different countries, languages, or time periods.  
      
    
*   🖼️ Filters – Apply size, color, type, or rights-based restrictions for clean datasets.  
      
    
*   🔄 Continuous Runs – Schedule automated scraping jobs for trend monitoring.  
      
    

⚡ This makes it more powerful than most Google images scraper free tools or manual scraping methods.

### ⚖️ Is it Legal to Scrape Google Images?

Scraping Google Image Search falls under the category of web scraping. While scraping publicly available data is usually legal, here are key points:

*   ✅ Allowed – Collecting public metadata (URLs, titles, dimensions, etc.).  
      
    
*   ❌ Not Allowed – Downloading copyrighted images for commercial use without permission.  
      
    
*   📜 Best Practice – Always check Google’s Terms of Service and apply fair-use rules.  
      
    
*   🔗 Compliance – Our scraper is built to handle data responsibly and for legitimate use cases.  
      
    

If you need royalty-free images, you can filter results by usage rights.

### 📝 Input Parameters

Here’s an example input JSON:
```json
{
    "headless": true,
    "proxyConfiguration": {
        "useApifyProxy": false
    },
    "queries": [
        "nature",
        "technology",
        "animals"
    ]
}
````

### 📤 Output Format

Example JSON output:

```json
[
  {
    "query": "technology",
    "imageUrl": "https://miro.medium.com/v2/resize:fit:1400/1*6-dNFz13P5prRz_kYaInXg.jpeg",
    "title": "Is Technology Ruining Your Experience ...",
    "imageWidth": 1400,
    "imageHeight": 1025,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:7XZB0ElBde-RCM",
    "thumbnailWidth": 1400,
    "thumbnailHeight": 1025,
    "contentUrl": "https://medium.com/jacob-morgan/is-technology-ruining-your-experience-at-work-58eaf3ec40a7",
    "origin": "medium.com"
  },
  {
    "query": "technology",
    "imageUrl": "https://globalfocusmagazine.com/wp-content/uploads/2020/02/Engaging_with_technology-scaled.jpg",
    "title": "Engaging with technology",
    "imageWidth": 2048,
    "imageHeight": 1366,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:EZcByeA3Rde0vM",
    "thumbnailWidth": 2048,
    "thumbnailHeight": 1366,
    "contentUrl": "https://globalfocusmagazine.com/engaging-with-technology/",
    "origin": "globalfocusmagazine.com"
  },
  {
    "query": "technology",
    "imageUrl": "https://cdn.britannica.com/84/203584-050-57D326E5/speed-internet-technology-background.jpg",
    "title": "History of Technology Timeline ...",
    "imageWidth": 1600,
    "imageHeight": 1131,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:I9RUPVPHjvqr1M",
    "thumbnailWidth": 1600,
    "thumbnailHeight": 1131,
    "contentUrl": "https://www.britannica.com/story/history-of-technology-timeline",
    "origin": "www.britannica.com"
  },
  {
    "query": "technology",
    "imageUrl": "https://dashboard.thefinanser.com/wp-content/uploads/2024/02/Technology.jpg",
    "title": "Is technology making our lives better ...",
    "imageWidth": 1568,
    "imageHeight": 882,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:x5pPo8tarvTslM",
    "thumbnailWidth": 1568,
    "thumbnailHeight": 882,
    "contentUrl": "https://thefinanser.com/2024/02/is-technology-making-our-lives-better-or-worse",
    "origin": "thefinanser.com"
  },
  {
    "query": "technology",
    "imageUrl": "https://s44783.pcdn.co/wp-content/uploads/2023/11/tech.png.webp",
    "title": "What is Technology Management? Why is ...",
    "imageWidth": 512,
    "imageHeight": 358,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:Qyh_PSRzrfC0lM",
    "thumbnailWidth": 512,
    "thumbnailHeight": 358,
    "contentUrl": "https://emeritus.org/blog/benefits-of-technology-management/",
    "origin": "emeritus.org"
  },
  {
    "query": "technology",
    "imageUrl": "https://thrivabilitymatters.org/2024/wp-content/uploads/2023/10/view-bioengineering-advance-with-robotic-hands-1024x768.jpg",
    "title": "Why Technology Is A Necessity | THRIVE ...",
    "imageWidth": 1024,
    "imageHeight": 768,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:Hkz2_lTJyjp3QM",
    "thumbnailWidth": 1024,
    "thumbnailHeight": 768,
    "contentUrl": "https://thrivabilitymatters.org/why-technology-is-a-necessity/",
    "origin": "thrivabilitymatters.org"
  },
  {
    "query": "technology",
    "imageUrl": "https://www.coderus.com/wp-content/uploads/fly-images/997224/coderus-media-and-entertainment-technology-trends-2021-576x9999.jpg",
    "title": "Media and Entertainment Industry 2023 ...",
    "imageWidth": 576,
    "imageHeight": 384,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:t04WLUOq1C435M",
    "thumbnailWidth": 576,
    "thumbnailHeight": 384,
    "contentUrl": "https://www.coderus.com/technology-trends-in-media-and-entertainment-industry-2021/",
    "origin": "www.coderus.com"
  },
  {
    "query": "technology",
    "imageUrl": "https://www.training.com.au/wp-content/uploads/career-in-technology-feature.png",
    "title": "Technology",
    "imageWidth": 750,
    "imageHeight": 500,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:2BxSPG9sskBWDM",
    "thumbnailWidth": 750,
    "thumbnailHeight": 500,
    "contentUrl": "https://salarather.github.io/stat289/",
    "origin": "salarather.github.io"
  },
  {
    "query": "technology",
    "imageUrl": "https://res.cloudinary.com/engineering-com/image/upload/w_640,h_640,c_limit,q_auto,f_auto/bigstock-Technology-And-Biometric-Conce-213062104_kygpiv.jpg",
    "title": "Where Will Our Tech Take Us This ...",
    "imageWidth": 640,
    "imageHeight": 427,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:uylHGwXIkg1q9M",
    "thumbnailWidth": 640,
    "thumbnailHeight": 427,
    "contentUrl": "https://www.engineering.com/where-will-our-tech-take-us-this-century/",
    "origin": "www.engineering.com"
  },
  {
    "query": "technology",
    "imageUrl": "https://www.gep.com/prod/s3fs-public/styles/blog_hero_banner/public/blog-images/vision-or-delusion-how-future-technology-varies-from-present-day-expectations.jpg.webp?itok=VUPRdiXW",
    "title": "technology",
    "imageWidth": 772,
    "imageHeight": 512,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:WvYmK8XZtToNPM",
    "thumbnailWidth": 772,
    "thumbnailHeight": 512,
    "contentUrl": "https://www.gep.com/blog/technology/vision-or-delusion-how-future-technology-varies-present-day-expectations",
    "origin": "www.gep.com"
  },
  {
    "query": "nature",
    "imageUrl": "https://miro.medium.com/v2/resize:fit:1400/1*6-dNFz13P5prRz_kYaInXg.jpeg",
    "title": "Is Technology Ruining Your Experience ...",
    "imageWidth": 1400,
    "imageHeight": 1025,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:7XZB0ElBde-RCM",
    "thumbnailWidth": 1400,
    "thumbnailHeight": 1025,
    "contentUrl": "https://medium.com/jacob-morgan/is-technology-ruining-your-experience-at-work-58eaf3ec40a7",
    "origin": "medium.com"
  },
  {
    "query": "nature",
    "imageUrl": "https://globalfocusmagazine.com/wp-content/uploads/2020/02/Engaging_with_technology-scaled.jpg",
    "title": "Engaging with technology",
    "imageWidth": 2048,
    "imageHeight": 1366,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:EZcByeA3Rde0vM",
    "thumbnailWidth": 2048,
    "thumbnailHeight": 1366,
    "contentUrl": "https://globalfocusmagazine.com/engaging-with-technology/",
    "origin": "globalfocusmagazine.com"
  },
  {
    "query": "nature",
    "imageUrl": "https://cdn.britannica.com/84/203584-050-57D326E5/speed-internet-technology-background.jpg",
    "title": "History of Technology Timeline ...",
    "imageWidth": 1600,
    "imageHeight": 1131,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:I9RUPVPHjvqr1M",
    "thumbnailWidth": 1600,
    "thumbnailHeight": 1131,
    "contentUrl": "https://www.britannica.com/story/history-of-technology-timeline",
    "origin": "www.britannica.com"
  },
  {
    "query": "nature",
    "imageUrl": "https://dashboard.thefinanser.com/wp-content/uploads/2024/02/Technology.jpg",
    "title": "Is technology making our lives better ...",
    "imageWidth": 1568,
    "imageHeight": 882,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:x5pPo8tarvTslM",
    "thumbnailWidth": 1568,
    "thumbnailHeight": 882,
    "contentUrl": "https://thefinanser.com/2024/02/is-technology-making-our-lives-better-or-worse",
    "origin": "thefinanser.com"
  },
  {
    "query": "nature",
    "imageUrl": "https://s44783.pcdn.co/wp-content/uploads/2023/11/tech.png.webp",
    "title": "What is Technology Management? Why is ...",
    "imageWidth": 512,
    "imageHeight": 358,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:Qyh_PSRzrfC0lM",
    "thumbnailWidth": 512,
    "thumbnailHeight": 358,
    "contentUrl": "https://emeritus.org/blog/benefits-of-technology-management/",
    "origin": "emeritus.org"
  },
  {
    "query": "nature",
    "imageUrl": "https://thrivabilitymatters.org/2024/wp-content/uploads/2023/10/view-bioengineering-advance-with-robotic-hands-1024x768.jpg",
    "title": "Why Technology Is A Necessity | THRIVE ...",
    "imageWidth": 1024,
    "imageHeight": 768,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:Hkz2_lTJyjp3QM",
    "thumbnailWidth": 1024,
    "thumbnailHeight": 768,
    "contentUrl": "https://thrivabilitymatters.org/why-technology-is-a-necessity/",
    "origin": "thrivabilitymatters.org"
  },
  {
    "query": "nature",
    "imageUrl": "https://www.coderus.com/wp-content/uploads/fly-images/997224/coderus-media-and-entertainment-technology-trends-2021-576x9999.jpg",
    "title": "Media and Entertainment Industry 2023 ...",
    "imageWidth": 576,
    "imageHeight": 384,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:t04WLUOq1C435M",
    "thumbnailWidth": 576,
    "thumbnailHeight": 384,
    "contentUrl": "https://www.coderus.com/technology-trends-in-media-and-entertainment-industry-2021/",
    "origin": "www.coderus.com"
  },
  {
    "query": "nature",
    "imageUrl": "https://www.training.com.au/wp-content/uploads/career-in-technology-feature.png",
    "title": "Technology",
    "imageWidth": 750,
    "imageHeight": 500,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:2BxSPG9sskBWDM",
    "thumbnailWidth": 750,
    "thumbnailHeight": 500,
    "contentUrl": "https://salarather.github.io/stat289/",
    "origin": "salarather.github.io"
  },
  {
    "query": "nature",
    "imageUrl": "https://res.cloudinary.com/engineering-com/image/upload/w_640,h_640,c_limit,q_auto,f_auto/bigstock-Technology-And-Biometric-Conce-213062104_kygpiv.jpg",
    "title": "Where Will Our Tech Take Us This ...",
    "imageWidth": 640,
    "imageHeight": 427,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:uylHGwXIkg1q9M",
    "thumbnailWidth": 640,
    "thumbnailHeight": 427,
    "contentUrl": "https://www.engineering.com/where-will-our-tech-take-us-this-century/",
    "origin": "www.engineering.com"
  },
  {
    "query": "nature",
    "imageUrl": "https://www.gep.com/prod/s3fs-public/styles/blog_hero_banner/public/blog-images/vision-or-delusion-how-future-technology-varies-from-present-day-expectations.jpg.webp?itok=VUPRdiXW",
    "title": "Vision or Delusion: How Future ...",
    "imageWidth": 772,
    "imageHeight": 512,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:WvYmK8XZtToNPM",
    "thumbnailWidth": 772,
    "thumbnailHeight": 512,
    "contentUrl": "https://www.gep.com/blog/technology/vision-or-delusion-how-future-technology-varies-present-day-expectations",
    "origin": "www.gep.com"
  },
  {
    "query": "animals",
    "imageUrl": "https://m.media-amazon.com/images/I/61+09Qy5ncL._UF1000,1000_QL80_.jpg",
    "title": "animals",
    "imageWidth": 655,
    "imageHeight": 1000,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:YPbAo9EFk0_jHM",
    "thumbnailWidth": 655,
    "thumbnailHeight": 1000,
    "contentUrl": "https://www.amazon.com/Wild-Animals-Preschool-Kindergarten-Homeschooling/dp/9390391180",
    "origin": "www.amazon.com"
  },
  {
    "query": "animals",
    "imageUrl": "https://motherspet.com/blogs/wp-content/uploads/2024/07/100-wild-animals.jpg",
    "title": "animals",
    "imageWidth": 875,
    "imageHeight": 612,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:FazgP6AFIt52SM",
    "thumbnailWidth": 875,
    "thumbnailHeight": 612,
    "contentUrl": "https://motherspet.com/blogs/explore-the-list-of-100-wild-animals-in-english.html",
    "origin": "motherspet.com"
  },
  {
    "query": "animals",
    "imageUrl": "https://hips.hearstapps.com/hmg-prod/images/headshot-of-giraffe-sabi-sands-game-reserve-royalty-free-image-1573571198.jpg?crop=1.00xw:0.667xh;0,0.0760xh",
    "title": "animals",
    "imageWidth": 1414,
    "imageHeight": 1415,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:7DzIqev1FVLbMM",
    "thumbnailWidth": 1414,
    "thumbnailHeight": 1415,
    "contentUrl": "https://www.goodhousekeeping.com/life/g4973/endangered-animals/",
    "origin": "www.goodhousekeeping.com"
  },
  {
    "query": "animals",
    "imageUrl": "https://www.science.org/do/10.1126/science.zjv23mz/abs/_20214_on_adolesence_animals_virginia.jpg",
    "title": "animals",
    "imageWidth": 1216,
    "imageHeight": 804,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:30kWrFXFSc_U7M",
    "thumbnailWidth": 1216,
    "thumbnailHeight": 804,
    "contentUrl": "https://www.science.org/content/article/what-animals-can-teach-us-about-challenges-being-teen",
    "origin": "www.science.org"
  },
  {
    "query": "animals",
    "imageUrl": "https://i.pinimg.com/736x/b8/50/7c/b8507cc0faba0d6f927aeef957d49eb5.jpg",
    "title": "animals",
    "imageWidth": 730,
    "imageHeight": 1000,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:2bzk8nU4WigTXM",
    "thumbnailWidth": 730,
    "thumbnailHeight": 1000,
    "contentUrl": "https://www.pinterest.com/pin/100-common-zoo-animals-list-with-pictures-onlymyenglishcom--629096641724254120/",
    "origin": "www.pinterest.com"
  },
  {
    "query": "animals",
    "imageUrl": "https://s7ap1.scene7.com/is/image/destqueensland/teq/consumer/global/images/destinations/sunshine-coast/blog-images/editorial-hero-banner/2018_SC_Koala_Wildlife_Australiazoo.jpg?bfc=on",
    "title": "animals",
    "imageWidth": 1050,
    "imageHeight": 700,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:7NjiwTGuiBm2rM",
    "thumbnailWidth": 1050,
    "thumbnailHeight": 700,
    "contentUrl": "https://www.queensland.com/au/en/places-to-see/experiences/nature-and-wildlife/cute-baby-animals-at-australia-zoo",
    "origin": "www.queensland.com"
  },
  {
    "query": "animals",
    "imageUrl": "https://i.natgeofe.com/n/694f21e5-759e-4386-83dd-ed4c97597295/01WAQanimalteachers.jpg",
    "title": "animals",
    "imageWidth": 3072,
    "imageHeight": 2060,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:idlVkZBChGTJbM",
    "thumbnailWidth": 3072,
    "thumbnailHeight": 2060,
    "contentUrl": "https://www.nationalgeographic.com/adventure/article/160507-animals-teaching-parents-science-meerkats",
    "origin": "www.nationalgeographic.com"
  },
  {
    "query": "animals",
    "imageUrl": "https://media.newyorker.com/photos/674789b485ed867580684308/master/w_2560,c_limit/VIRAL%20ANIMALS_Brendan_wenzel_Nov27.jpg",
    "title": "animals",
    "imageWidth": 2560,
    "imageHeight": 1462,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ouWObQuzaSNPGM",
    "thumbnailWidth": 2560,
    "thumbnailHeight": 1462,
    "contentUrl": "https://www.newyorker.com/culture/2024-in-review/the-animals-that-made-it-all-worth-it",
    "origin": "www.newyorker.com"
  },
  {
    "query": "animals",
    "imageUrl": "https://nationalzoo.si.edu/sites/default/files/styles/square_large/public/2025-01/20241030-817A8773-16RP.jpg?h=f6ccde7b",
    "title": "animals",
    "imageWidth": 1000,
    "imageHeight": 1000,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:U8UCojE8mHL5KM",
    "thumbnailWidth": 1000,
    "thumbnailHeight": 1000,
    "contentUrl": "https://nationalzoo.si.edu/animals/list",
    "origin": "nationalzoo.si.edu"
  },
  {
    "query": "animals",
    "imageUrl": "https://i.ytimg.com/vi/3Rf0dIk_Eec/hq720.jpg?sqp=-oaymwEhCK4FEIIDSFryq4qpAxMIARUAAAAAGAElAADIQj0AgKJD",
    "title": "animals",
    "imageWidth": 686,
    "imageHeight": 386,
    "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:4sErkrTxbocSJM",
    "thumbnailWidth": 686,
    "thumbnailHeight": 386,
    "contentUrl": "https://www.youtube.com/watch?v=3Rf0dIk_Eec",
    "origin": "www.youtube.com"
  }
]
```

### ❓ FAQ

#### 1. Is there an official Google Images API?

No. Google does not offer a public Google Image Search API. Tools like this Google Images Scraper API act as alternatives.

#### 2. Can I scrape Google Images with Python?

Yes ✅. Use the Google Images Scraper Python SDK or the apify-client PyPI package.

#### 3. Is there a Node.js/NPM version?

Yes. The Google Images Scraper NPM package lets you integrate with Node.js easily.

#### 4. Can I download actual images, not just URLs?

Yes. Export image URLs and use an image downloader Actor or a script to fetch bulk files.

#### 5. Is this free?

Yes 🎉. The Apify Free plan gives you $5 credits/month (~1,600 images free).

#### 6. Can I use it for AI/ML datasets?

Absolutely. Many use it for photo scraping to train models.

#### 7. Is this better than GitHub scripts?

Yes. Unlike Google-image-scraper GitHub projects, this tool is scalable, API-driven, and maintained.

# Actor input Schema

## `queries` (type: `array`):

✍️ List of search phrases (e.g. nature, product shots, logos). One query per line in the editor.

## `maxImages` (type: `integer`):

🎚️ Cap how many unique images to keep for each keyword (1–1000). The log shows progress toward this goal in real time.

## `proxyConfiguration` (type: `object`):

⚙️ Pick proxy groups/countries in the picker. When enabled, the actor uses your selection for the browsing session.

## `headless` (type: `boolean`):

✅ On (default): best for Apify cloud. 🔲 Off: useful for debugging on your machine.

## `pushToDatasetRealtime` (type: `boolean`):

💾 ON: each image is pushed to the dataset immediately — your Output tab updates during the run. 📦 OFF: everything uploads once at the end.

## Actor input object example

```json
{
  "queries": [
    "nature"
  ],
  "maxImages": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "headless": true,
  "pushToDatasetRealtime": true
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "nature"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapelabsapi/google-images-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": ["nature"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapelabsapi/google-images-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "nature"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapelabsapi/google-images-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapelabsapi/google-images-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Images Scraper",
        "description": "🔎 Google Images Scraper by google-images-scraper extracts high-quality image results fast with advanced query options. Perfect for SEO research, content discovery, and media sourcing. 🚀 Save time, streamline workflows, and boost productivity.",
        "version": "0.1",
        "x-build-id": "rY4BiKrkSWKGTwQMT"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapelabsapi~google-images-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapelabsapi-google-images-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapelabsapi~google-images-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapelabsapi-google-images-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapelabsapi~google-images-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapelabsapi-google-images-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "queries"
                ],
                "properties": {
                    "queries": {
                        "title": "🔤 Keywords / queries",
                        "type": "array",
                        "description": "✍️ List of search phrases (e.g. nature, product shots, logos). One query per line in the editor.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxImages": {
                        "title": "🔢 Max images per query",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "🎚️ Cap how many unique images to keep for each keyword (1–1000). The log shows progress toward this goal in real time.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "🌍 Apify Proxy",
                        "type": "object",
                        "description": "⚙️ Pick proxy groups/countries in the picker. When enabled, the actor uses your selection for the browsing session."
                    },
                    "headless": {
                        "title": "👻 Headless browser",
                        "type": "boolean",
                        "description": "✅ On (default): best for Apify cloud. 🔲 Off: useful for debugging on your machine.",
                        "default": true
                    },
                    "pushToDatasetRealtime": {
                        "title": "⚡ Live save to Output table",
                        "type": "boolean",
                        "description": "💾 ON: each image is pushed to the dataset immediately — your Output tab updates during the run. 📦 OFF: everything uploads once at the end.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
