Webpage Image Extractor avatar

Webpage Image Extractor

Pricing

from $0.02 / 1,000 image records

Go to Apify Store
Webpage Image Extractor

Webpage Image Extractor

Extract image URLs and metadata from public pages for SEO audits, ecommerce checks, asset migration, and AI image dataset workflows.

Pricing

from $0.02 / 1,000 image records

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Extract image URLs and metadata from public web pages. Add one page, a list of pages, or a small same-domain crawl and get a clean dataset of image assets with source page, absolute URL, source type, alt text, dimensions, file type, status code, and byte size when available.

Use it for SEO image audits, ecommerce catalog checks, AI dataset collection, visual-asset migration, and brand monitoring workflows where you need normalized image records rather than screenshots.

Who is it for?

  • SEO teams auditing missing alt text, broken image URLs, large image files, and image coverage across public pages.
  • Ecommerce and marketplace operators checking product/category page image assets.
  • Content and migration teams inventorying images before CMS, domain, or design changes.
  • AI dataset builders collecting public image URL lists with page context.
  • Brand and compliance teams monitoring where public sites expose visual assets.

Example input

{
"startUrls": [
{ "url": "https://www.wikipedia.org/" }
],
"maxPages": 3,
"maxImages": 50,
"crawlSameDomain": false,
"includeSrcset": true,
"includeCssBackgrounds": false,
"checkImageStatus": true,
"downloadImages": false,
"proxyConfiguration": { "useApifyProxy": false }
}

Example output

{
"pageUrl": "https://www.wikipedia.org/",
"imageUrl": "portal/wikipedia.org/assets/img/Wikipedia-logo-v2.png",
"absoluteImageUrl": "https://www.wikipedia.org/portal/wikipedia.org/assets/img/Wikipedia-logo-v2.png",
"sourceType": "img",
"alt": "Wikipedia",
"title": null,
"width": 200,
"height": 183,
"mimeType": "image/png",
"fileExtension": "png",
"bytes": 16384,
"statusCode": 200,
"discoveredAt": "2026-07-08T09:30:00.000Z"
}

What data it exports

The actor saves one dataset row per discovered image URL.

FieldDescription
pageUrlPublic page where the image URL was discovered.
imageUrlRaw image URL as it appeared in the page.
absoluteImageUrlNormalized absolute image URL.
sourceTypeDiscovery source: img, srcset, meta, or css.
altImage alt text when present.
titleImage title attribute when present.
width / heightHTML-declared image dimensions when present.
mimeTypeMIME type from the image response when checked.
fileExtensionFile extension parsed from the image URL.
bytesFile size in bytes when the server provides it or downloads are enabled.
statusCodeImage URL HTTP status code when checked.
downloadedKeyKey-value-store key when downloadImages saves the file.
discoveredAtTimestamp when the image record was produced.

Input settings

SettingTypeDefaultDescription
startUrlsarrayrequiredPublic webpage URLs or direct image URLs to inspect.
maxPagesinteger3Maximum pages to fetch across all start URLs.
maxImagesinteger200Maximum image records to save.
crawlSameDomainbooleanfalseFollow same-domain links until maxPages is reached.
includeSrcsetbooleantrueInclude responsive image candidates from srcset.
includeCssBackgroundsbooleanfalseInclude URLs from inline CSS and page style blocks.
checkImageStatusbooleantrueCollect image status code, MIME type, and size when available.
downloadImagesbooleanfalseSave image files under 15 MB to the run key-value store.
proxyConfigurationobjectdisabledOptional proxy settings for sites that rate-limit direct traffic.

Input recipes

Quick image inventory

Use one URL, keep crawlSameDomain off, and leave downloadImages off. This is best for a fast list of image URLs and metadata.

Small website audit

Set crawlSameDomain to true, maxPages to 10-25, and maxImages to a reasonable cap. This checks several pages on the same domain without crawling the entire site.

Build a downloadable image set

Enable downloadImages only when you really need the files. Downloaded files are stored in the run key-value store and referenced by downloadedKey in the dataset.

Pricing

This actor uses pay-per-event pricing:

  • Start fee: $0.005 per run.
  • Image record: tiered pay-per-result pricing. BRONZE users pay $0.00004 per image record, with lower per-record prices on higher Apify plans.

Keep maxPages and maxImages low for your first run, then scale after reviewing the output.

API usage

Run the actor with cURL:

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~webpage-image-extractor/runs?token=APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"startUrls": [{ "url": "https://www.wikipedia.org/" }],
"maxPages": 3,
"maxImages": 50
}'

Run it with Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/webpage-image-extractor').call({
startUrls: [{ url: 'https://www.wikipedia.org/' }],
maxPages: 3,
maxImages: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Run it with Python:

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/webpage-image-extractor').call(run_input={
'startUrls': [{ 'url': 'https://www.wikipedia.org/' }],
'maxPages': 3,
'maxImages': 50,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

After the run finishes, export the default dataset as JSON, CSV, Excel, XML, RSS, or HTML table from Apify Storage.

MCP and agents

Use this actor from MCP-compatible tools with:

https://mcp.apify.com/?tools=fetch_cat/webpage-image-extractor

Add it to Claude Desktop or Claude Code with:

$claude mcp add apify-webpage-images "https://mcp.apify.com/?tools=fetch_cat/webpage-image-extractor"

Example MCP server config:

{
"mcpServers": {
"apify-webpage-images": {
"url": "https://mcp.apify.com/?tools=fetch_cat/webpage-image-extractor"
}
}
}

Example prompts:

  • "Extract image URLs and alt text from this public landing page."
  • "Check whether this page has broken image URLs and return status codes."
  • "Create a small image dataset from these public documentation pages."

This is useful for agents that need to inspect public pages, collect image URLs, or prepare image datasets as part of a larger workflow.

Limits and best practices

  • Only scan public pages that you are allowed to access.
  • The actor does not bypass login walls, CAPTCHA, paywalls, or private content.
  • Some websites block automated requests; use proxies only when needed and allowed.
  • Very large images are not saved when downloadImages is enabled; files over 15 MB are skipped for download safety.
  • CSS extraction is optional because CSS can contain icons, tracking pixels, and other assets you may not need.

Legality and responsible use

Use this actor only on public pages you are allowed to access and process. It does not bypass authentication, CAPTCHA, paywalls, robots restrictions, or private content. Review the target website's terms and applicable privacy, copyright, and data-protection rules before downloading or reusing image files.

FAQ

Can it download the actual images?

Yes. Set downloadImages to true. The dataset will include downloadedKey for files saved to the run key-value store.

Can it crawl an entire website?

It can follow same-domain links up to maxPages, but it is designed for bounded audits, not unbounded site mirroring. Increase limits gradually.

Does it support JavaScript-rendered pages?

The first version focuses on public HTML pages. If a site only renders images after browser JavaScript execution, the actor may return fewer images.

Will it extract background images?

Yes, enable includeCssBackgrounds to extract url(...) references from inline styles and page style blocks.

Support

Open an issue on the actor page with the run ID or run URL, your input JSON, expected output, and actual output. This helps reproduce page-specific extraction problems quickly.

Changelog

  • 0.1.0 — Initial version: public-page image URL extraction, srcset/meta/CSS discovery, optional status checks, and optional key-value-store downloads.