---
title: "How to Scrape Google Images Results | Scrape.ly"
description: "Scrape Google Images results: full-size image URLs, sizes, source pages and rank, with license and size filters. A real run, its cost, API and MCP code."
url: https://scrape.ly/blog/scrape-google-images
markdown: https://scrape.ly/blog/scrape-google-images.md
---

[Tutorials](https://scrape.ly/blog/category/tutorials.md)

# How to Scrape Google Images Results: Image URLs, Sizes, Sources and Rank

Scrape Google Images results for any query: full-size image URL and size, thumbnail, source page and rank, with country, size, color, time and usage-rights filters. No-code steps, curl, Python, Node.js and MCP, plus a real run from 27 October 2026 and its exact cost.

[Querystone Actor publisher on the Scrape.ly Store](https://scrape.ly/blog/author/querystone.md)

- Published

  Oct 27, 2026

- Reading time

  7 min read

![Pixel-art robot with an orange >\_ on its terminal head pulls a photo card of green hills under a blue sky off an image search page headed by the Google G logo and a grid of photo tiles, and drops it into a crate](https://scrape.ly/media/scrape-google-images.png?w=1080)

To scrape Google Images, give a ready-made Actor one or more search queries, and it returns one row per image: the full-size image URL with its width and height, Google's thumbnail, the page that published the image, the site name, the page title and the image's rank. Filters for country, language, size, color, type, time and usage rights work like the ones in Google's own toolbar. On Scrape.ly that's a preset and one click, or one API call, with no Google account and no proxy setup.

This guide covers the fields you get, the no-code steps, the same job in curl, Python, Node.js and through an AI agent, a real run from 27 October 2026 (Creative Commons images of mountain lakes from the past year), its log and exact cost, and what Google's own image API offers today.

## What data you can get from Google Images

The [Google Images Scraper](https://scrape.ly/store/querystone/google-images-scraper.md) returns one row per image:

| Field                                               | What it holds                                               |
| --------------------------------------------------- | ----------------------------------------------------------- |
| `query`, `position`                                 | The search query and the image's rank for it, starting at 1 |
| `imageUrl`, `imageWidth`, `imageHeight`             | The full-size image and its size in pixels                  |
| `thumbnailUrl`, `thumbnailWidth`, `thumbnailHeight` | Google's thumbnail of the image                             |
| `contentUrl`, `title`                               | The page that published the image and its title             |
| `origin`, `source`                                  | The host name and the site name as Google shows it          |
| `googleUrl`                                         | Google Images' preview link for the image                   |

The Actor returns URLs, not files. Download the images you're allowed to use yourself.

## How to scrape Google Images without code

1. Open the Google Images Scraper in the Scrape.ly Store.
2. Pick the [Creative Commons mountain lake images, 10 images](https://scrape.ly/store/querystone/google-images-scraper/presets/search-usage-rights-time.md) preset. It fills in this input:

```json
{
  "queries": ["mountain lake"],
  "maxResultsPerQuery": 10,
  "usageRights": "creativecommons",
  "timeRange": "year"
}
```

3. Change the query, add more on new lines, and click **Start**. Our run took 8 seconds.
4. Open the dataset and export it as JSON, CSV, Excel or HTML.

The input fields that matter most:

- `queries`: search queries, one per line; duplicates and extra spaces are removed.
- `maxResultsPerQuery`: images per query. Google usually has a few hundred per query, and the run stops when it runs out.
- `countryCode`, `languageCode`: search from a country (`us`, `de`, `fr`) in a language.
- `imageSize`, `imageColor`, `imageType`: `large`, `medium` or `icon`; color, grayscale or transparent; photo, clip art, line art, animated or face.
- `timeRange`: images from the past day, week, month or year.
- `usageRights`: `creativecommons` or `commercial`, as Google labels them.

The [large Berlin skyline photos](https://scrape.ly/store/querystone/google-images-scraper/presets/search-de-filters.md) preset searches from Germany with size filters, and [golden retriever images, 60](https://scrape.ly/store/querystone/google-images-scraper/presets/search-deep-scroll.md) goes past the first page.

Scrape.ly Store Google Images Scraper Google Images results for any query: full-size image URL and size, thumbnail, source page and site, and rank, with country, size, color, type, time and license filters.

[Try it free](https://scrape.ly/store/querystone/google-images-scraper.md) [Browse the Store](https://scrape.ly/store.md)

## How to scrape Google Images with the API

Create a token under **Settings → API & Integrations** in the dashboard and store it as `SCRAPELY_TOKEN`. 250 images take about three seconds of scraping, so the synchronous endpoint fits:

```shell
curl -X POST "https://api.scrape.ly/v2/actors/querystone~google-images-scraper/run-sync-get-dataset-items"
  -H "Authorization: Bearer $SCRAPELY_TOKEN"
  -H "Content-Type: application/json"
  -d '{"queries": ["red bicycle", "vintage road bike"], "maxResultsPerQuery": 100, "countryCode": "us", "imageSize": "large"}'
```

Add `?format=csv` for a CSV. The [API docs](https://scrape.ly/docs/api-actors.md) cover asynchronous runs for big query lists.

In Python (`pip install scrapely-client-python`), this image-SEO check searches your product keywords and reports where your own site ranks in Google Images, and which sites take the top spots:

```python
import os
from collections import Counter

from scrapely_client import ScrapelyClient

client = ScrapelyClient(os.environ["SCRAPELY_TOKEN"], api_url="https://api.scrape.ly")

MY_SITE = "example-shop.com"
run = client.actor("querystone/google-images-scraper").call(
    run_input={"queries": ["linen duvet cover", "washed linen sheets"], "maxResultsPerQuery": 100}
)
top_sites = Counter()
for img in client.dataset(run.default_dataset_id).iterate_items():
    if img["position"] <= 20:
        top_sites[img["origin"]] += 1
    if MY_SITE in (img.get("origin") or ""):
        print(f'{img["query"]}: position {img["position"]}, {img["imageWidth"]}x{img["imageHeight"]}')
print(top_sites.most_common(10))
```

In JavaScript or Node.js (`npm install scrapely-client`), collect Creative Commons candidates for a moodboard, large and recent only:

```javascript
import { ScrapelyClient } from 'scrapely-client';

const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN, baseUrl: 'https://api.scrape.ly' });

const run = await client.actor('querystone/google-images-scraper').call({
  queries: ['alpine hut interior', 'scandinavian cabin'],
  maxResultsPerQuery: 50,
  imageSize: 'large',
  usageRights: 'creativecommons',
  timeRange: 'year',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const img of items) console.log(img.imageWidth, img.imageHeight, img.contentUrl);
```

The [Google Images API](https://scrape.ly/api/google-images-api.md) page shows the same Actor as a ready-made API, and the [Python client](https://scrape.ly/docs/client-python.md) docs cover paging through large datasets.

### With an AI agent (MCP)

Scrape.ly runs a hosted MCP server at `https://mcp.scrape.ly`. In Cursor, add it to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "scrapely": {
      "url": "https://mcp.scrape.ly",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}
```

In Claude Code, run `claude mcp add --transport http scrapely https://mcp.scrape.ly`, then `/mcp` to sign in with OAuth. Then ask: "Use scrapely to get the top 50 Google Images results for 'standing desk' in the US and tell me which sites rank most often and what image sizes they use." The [MCP docs](https://scrape.ly/docs/mcp.md) list ChatGPT, VS Code, Windsurf and the other clients.

## A real run: Creative Commons mountain lakes

We ran the preset as-is on 27 October 2026. It saved 10 images in 8 seconds. Six of them:

| Position | Site                                   | Size (px)   | Page title                                            |
| -------- | -------------------------------------- | ----------- | ----------------------------------------------------- |
| 1        | Wikimedia Commons                      | 4032 × 2688 | File:Chola Mountain Lake, Nepal.jpg                   |
| 2        | Public Domain Pictures                 | 1280 × 1920 | Mountain Lake at Sunrise – Free Public Domain Image   |
| 3        | Discover Colorado's Lakes & Reservoirs | 1024 × 683  | Lake Como — Alamosa County, Colorado                  |
| 4        | StockSnap.io                           | 960 × 640   | Mountain Lake Free Stock Photo                        |
| 5        | Public Domain Pictures                 | 1920 × 1280 | Sunrise over Mountain Lake – Free Public Domain Image |
| 9        | StockSnap.io                           | 960 × 719   | Mountain Lake Free Stock Photo                        |

```plaintext
20261027T17:17:46.409Z [scrapely.actor] INFO  Saved 10 images for 1 queries. Search API calls: 1.
20261027T17:17:46.409Z [scrapely.actor] INFO  [Status message]: Saved 10 images for 1 queries.
```

What the ten rows show:

- **The license filter favors free-image sites.** Wikimedia Commons, Public Domain Pictures and StockSnap held five of the ten spots; the rest came from Flickr, DeviantArt, a regional lakes site and a personal travel blog.
- **Google's license label is a starting point.** `usageRights` filters on how Google classifies an image, and two of the ten came from sites where each image has its own license terms. Open `contentUrl` and check the license on the page before you reuse anything.
- **Sizes vary 4×.** From 960 × 640 to 4032 × 2688, and one portrait image (1280 × 1920) among landscapes. Filter on `imageWidth` and `imageHeight` for the format you need, or set `imageSize: "large"`.
- **Sites repeat.** Three sites appeared twice in the top ten. For a varied set, keep the best image per `origin`.
- **One request.** The log counts a single search API call for ten results, which is why a run takes seconds and costs fractions of a cent.

## What it costs

The Actor charges one event per image saved, platform usage (compute, proxy and browser) included. Price checked on the Store page on 27 October 2026: **$0.00201 per image**, which is $2.01 per 1,000 images.

**Our run:** 10 × $0.00201 = $0.0201 at list price ($0.01608 charged, because our plan has a Store discount).

**At scale:** tracking the top 50 images for 100 keywords every week is 5,000 images, $10.05 a week. A one-off dataset of 300 images for each of 20 queries costs about $12. The Free plan's $5 of monthly usage covers about 2,500 images.

## What to watch out for

- **A few hundred images per query.** Google stops there; very large limits end at that ceiling, and the run says when Google ran out.
- **Results depend on country and language.** They can differ slightly from what you see in your own browser; set `countryCode` and `languageCode` explicitly for repeatable tracking.
- **No reverse image search.** For search by image, use the [Google Lens Scraper](https://scrape.ly/store/querystone/google-lens-scraper.md).
- **URLs, not files.** Download only what you have the right to use, and expect some image URLs to stop working as sites change.
- **Copyright stays with the owner.** Every image belongs to whoever made it, whatever Google's filter says.

## Is it legal to scrape Google Images?

The Actor collects publicly visible search results without logging in. Google's [Terms of Service](https://policies.google.com/terms) (effective July 30, 2026, read on 27 October 2026) prohibit "using automated means to access content from any of our services in violation of the machine-readable instructions on our web pages (for example, robots.txt files that disallow crawling, training, or other activities)". Our [robots.txt and web scraping](https://scrape.ly/blog/robots-txt-web-scraping.md) guide explains how to read those instructions.

The bigger question is usually the images themselves. Search results are links; the photos behind them are copyrighted works, and photos of people are personal data under the GDPR. Use the license filter, check the source page, and keep image datasets for analysis unless you have the right to republish. This is not legal advice; for a commercial project, ask a lawyer about your case.

## Why Scrape.ly for Google Images

- **Google's own route is closing.** Its [Custom Search JSON API overview](https://developers.google.com/custom-search/v1/overview) says: "The Custom Search JSON API is closed to new customers", and "Existing Custom Search JSON API customers have until January 1, 2027 to transition to an alternative solution." The Actor works today, with one Scrape.ly token.
- **Every row is complete.** Full-size URL, pixel size, thumbnail, source page, site and rank together, with Google's real filters.
- **Seconds per query.** Pages are fetched in parallel; 250 images in about three seconds.
- **Search, images and more on one platform.** The same token runs [Google search results](https://scrape.ly/blog/scrape-google-search-results.md), [Google Shopping](https://scrape.ly/blog/scrape-google-shopping.md) and [Pinterest](https://scrape.ly/blog/scrape-pinterest.md), plus an MCP server for AI agents.

## FAQ

### Can you scrape Google Images for free?

Yes. The Free plan includes $5 of usage credit every month with no credit card, which covers about 2,500 images at list price.

### Is there an official Google Images API?

Google's Custom Search JSON API, which could return image results, is closed to new customers, and existing customers have until January 1, 2027 to move to an alternative. The Actor returns Google Images results as JSON through the Scrape.ly API.

### How many images can I get per query?

As many as Google has, usually a few hundred. Set `maxResultsPerQuery` high and the run saves everything, then says if Google ran out.

### Can I filter Google Images by license?

Yes. Set `usageRights` to `creativecommons` or `commercial`. It filters on Google's label, so check the license on the source page before reuse.

### Does the scraper download the image files?

No. It returns the full-size URL, the thumbnail URL and the source page. Download the files you need yourself.

### Can I scrape Google Images with Python?

Yes. Install `scrapely-client-python` and call `querystone/google-images-scraper`, as in the image-SEO script above. The scraping runs in the cloud, so you don't manage proxies or Google's internal endpoints.

Scrape.ly Store Start with the mountain lake preset Run the preset as-is or enter your own queries. Full-size image URLs, sizes, sources and rank at $2.01 per 1,000 images, platform usage included.

[Try it free](https://scrape.ly/store/querystone/google-images-scraper.md) [Browse the Store](https://scrape.ly/store.md)

About the author

[Querystone](https://scrape.ly/blog/author/querystone.md) Actor publisher on the Scrape.ly Store

Search results, AI answers, web pages and market feeds as structured data. For SEO teams, developers and AI builders, plus finance, crypto and sports data for analysts. A Scrapely studio.

- [Website](https://scrape.ly/users/querystone.md)

Keep reading

## More in Tutorials

- [![Pixel-art robot with an orange >\_ on its terminal head takes a yellow price tag out of a store front whose sign shows the red Target bullseye above a red-and-white awning and a lit window of goods, and drops it into a crate of price tags](https://scrape.ly/media/scrape-target.png?w=750)](https://scrape.ly/blog/scrape-target.md)
  ### [How to Scrape Target Products and Prices: Sales, Ratings, UPCs and Store Stock](https://scrape.ly/blog/scrape-target.md)
  [Scrape Target.com products by keyword, category, brand, URL or TCIN: price, sale flag, rating, availability, seller, UPC, reviews and store stock for any ZIP code. No-code steps, curl, Python, Node.js and MCP, plus a real run from 27 October 2026 and its exact cost.](https://scrape.ly/blog/scrape-target.md)
- [![Pixel-art robot with an orange >\_ on its terminal head pulls a stay card with a navy house icon and a gold star out of a hotel tower whose sign shows the navy Booking.com B. logo, and drops it into a crate](https://scrape.ly/media/scrape-booking-com.png?w=750)](https://scrape.ly/blog/scrape-booking-com.md)
  ### [How to Scrape Booking.com: Hotel Prices, Ratings, Rooms and Reviews](https://scrape.ly/blog/scrape-booking-com.md)
  [Scrape Booking.com stays for any city and dates: live stay price, rating, review count, category scores, rooms and facilities, plus guest reviews. No-code steps, curl, Python, Node.js and MCP, with two real runs from 27 October 2026 and their exact cost.](https://scrape.ly/blog/scrape-booking-com.md)
- [![Pixel-art robot with an orange >\_ on its terminal head pulls a listing card with a house icon out of an apartment block with balconies whose sign shows the lime idealista logo, and drops it into a crate](https://scrape.ly/media/scrape-idealista.png?w=750)](https://scrape.ly/blog/scrape-idealista.md)
  ### [How to Scrape Idealista Listings: Prices, Size, Rooms and Coordinates](https://scrape.ly/blog/scrape-idealista.md)
  [Scrape Idealista listings in Spain, Italy and Portugal by city, postal code, results URL or property code: price, size, rooms, floor, coordinates, photos and advertiser. No-code steps, curl, Python, Node.js and MCP, plus a real run from 27 October 2026 and its exact cost.](https://scrape.ly/blog/scrape-idealista.md)

## The internet is full of data. Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

[Get Started Free](https://my.scrape.ly/register) [Chat with Support](mailto:hello@scrape.ly?subject=Question%20about%20Scrape.ly\&body=Hi%2C%20I%20have%20a%20question%20about%20Scrape.ly.)

No credit card. No setup calls.
