All Image Scraper avatar

All Image Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
All Image Scraper

All Image Scraper

All-in-one image search and download for Google, Bing, Yahoo, Brave, and Yandex: search by keyword, download public images, and store byte-exact originals or JPEG/PNG/WebP conversions with raw search evidence and 22-field metadata.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

All Image Scraper is an image search downloader that searches Google, Bing, Yahoo, Brave, and Yandex for one keyword — one engine or several in the same run — and returns the image files themselves, byte-exact originals or JPEG, PNG, and WebP copies, with 30 documented fields per row. Give it one keyword, the engines to read, one output format, and a per-engine result count instead of building a separate search, download, conversion, and provenance pipeline.

Apify Users Apify Runs $0.00400 per image 5 search engines API + MCP ready

  • Five search engines in one input contract, selectable together, four of them reading past the first result window. Pick any combination of Google, Bing, Yahoo, Brave, and Yandex while keeping the same Dataset shape; Brave answers from one 200-result window and the other four keep requesting deeper windows until the request is filled.
  • The original bytes and the converted copy are both stored and both hashed. Select Original to keep the source file untouched, or request JPEG, PNG, or WebP and receive the conversion beside the preserved original.
  • Thirty documented fields per image. Source description, publisher, creator credits, alternate variants, original and output dimensions, animation frame counts, byte sizes, SHA-256 hashes, rank, keyword, and processing provenance travel in one row.
  • Four verifiable artifact roles per row. Every row links to the stored original image, the selected output, a per-image JSON metadata record, and the stored raw search response. In Original mode the first two roles reuse one byte-exact file.

The smallest useful run is one published image: one Actor Start plus one result costs $0.04400 on the FREE tier, and a 10-image run costs $0.08000.


Why Choose All Image Scraper

One request produces files instead of URL-only search metadata. Each accepted search result is downloaded, decoded, and stored in its original byte representation. The Actor either returns those exact bytes or creates the requested JPEG, PNG, or WebP copy and links everything from one Dataset row.

Five engines share one normalized result contract, and depth is not capped at the first page. Changing platforms changes the search sources without changing the 30 output keys, so a pipeline can compare engines side by side in one run — every row records the engine that produced it — or run a fallback strategy without maintaining five result parsers of its own. Selected engines are read one after another, and an image two of them both surface is downloaded and billed once, against whichever engine reached it first. Google, Bing, Yahoo, and Yandex request successive result windows until the run has what it asked for; Brave is the one engine with no second window, and it is also the widest single window of the five at 200 results. Google is the slow one: across 20 measured requests on 2026-09-02 a Google window answered in a median of 64 seconds, while Bing, Yahoo, and Yandex answered in a median of 2 to 3 seconds.

Content and provenance stay connected. source_url identifies the external image location, original_url points to the stored original, image_url points to the selected output, and raw_url preserves the search response that produced the candidate. In Original mode, both artifact URLs and both SHA-256 values match.

Output handling is explicit and independently checkable. output_format records the decoded output format, not merely a filename extension, and output_width, output_height, and output_frames describe the file that was actually written. Original mode preserves bytes and format; JPEG composites transparency onto white, while PNG and WebP retain alpha. A conversion keeps the first frame of an animation and says so through original_frames and output_frames rather than pretending animation survived.

A row is counted only when every artifact exists. max_results counts published rows per selected engine, not attempts: a row exists only after the original, the selected output, the JSON metadata, and the raw search response are all stored, so a candidate that cannot be downloaded or decoded is skipped rather than billed. That keeps agent calls and cost calculations tied to files you actually received.


Quick Start Guide

Open the Actor input. Enter one keyword, select one or more engines in platforms, select one format, and set max_results. All four fields are required and arrive prefilled with the tested red panda wildlife, ["bing"], webp, and 1 example.

Step 2: Run the Actor

Click Start. The Actor searches each selected engine in turn, examines candidate image URLs, and publishes only files it can download, decode, store, and convert successfully. A source host that rejects a download is skipped rather than represented as a successful image.

Step 3: Collect the artifacts

Open the default Dataset for one row per delivered image. Use original_url for the byte-exact source file, image_url for the Original, JPEG, PNG, or WebP output, metadata_url for the per-image JSON record, and raw_url to inspect the stored search response.


Input Parameters

All Image Scraper requires exactly four inputs in schema order: one keyword, one or more of five search engines, one of four output formats, and how many images to return from each engine.

ParameterTypeRequiredDescriptionExample
keywordstringYesPublic image-search phrase of 200 characters or fewer; a longer phrase is rejected before the run startsred panda wildlife
platformsarray of enumYesOne or more of 5 values: google, bing, yahoo, brave, yandex. Four of the five read deeper result windows on request; a Google window takes about a minute to answer, the other four answer in seconds["bing"]
formatenumYesOne of 4 outputs: original, jpeg, png, webpwebp
max_resultsintegerYesNumber of successfully downloaded output images per selected engine; minimum 1, no upper bound1

The shared example used throughout this page is:

{
"keyword": "red panda wildlife",
"platforms": ["bing"],
"format": "webp",
"max_results": 1
}

A run uses one output format and any combination of the five engines. max_results is each selected engine's budget rather than the run total, so three engines at 10 return up to 30 rows, and it carries no ceiling — each engine's own supply of usable candidates is the real limit, and the run reports how many images it delivered against how many were requested. There is no engine-specific configuration object.

How deep a request can go is the one behavior that differs by engine:

EngineCandidates in one windowDeeper windowsNew images the next window added, over five keywordsMedian request time
google100yes77-9464 s
bing35yes21-282.4 s
yahoo60yes39-602.6 s
yandex30yes18-303.0 s
brave200nonone2 s

Those figures come from 20 paged requests per engine across five keywords on 2026-09-02, counting only images that had not already appeared. Brave is the only one of the five with no second window, so 200 candidates is where a Brave run stops however large max_results is; two full Brave scans of that window saved 198 and 199 files.


Output Data Schema

One Dataset row represents one image that was successfully downloaded, decoded, stored, and either preserved byte-exactly or converted; the complete row contains 30 fields.

Search-result context, exactly as the engine reported it:

FieldTypeMeaning
platformstring or nullSearch engine used
keywordstring or nullExact search keyword supplied for this run
rankinteger or nullDelivered position within this run, starting at 1
titlestring or nullImage title exposed by the search result
descriptionstring or nullImage caption or description from the search-result record
publisherstring or nullPublisher display name or domain reported by the source
creatorsarray or nullCreator credits reported by the source; not a license determination
variantsarray or nullAlternate copies of the same image reported by the source, each with url, width, height, and bytes

External links the engine exposed, then the four artifacts this run stored:

FieldTypeMeaning
search_urlstring or nullEngine search URL for the keyword
source_urlstring or nullExternal original URL exposed by the engine
page_urlstring or nullAssociated external page when available
thumbnail_urlstring or nullSearch-result thumbnail when available
raw_urlstring or nullStored raw search response
original_urlstring or nullStored byte-exact original image
image_urlstring or nullSelected output; equals original_url in Original mode
metadata_urlstring or nullStored per-image JSON metadata

Decoded file properties measured on the stored files, and processing provenance:

FieldTypeMeaning
original_formatstring or nullDecoded original format
output_formatstring or nullVerified selected output format
widthinteger or nullOriginal width in pixels
heightinteger or nullOriginal height in pixels
output_widthinteger or nullOutput width after orientation correction
output_heightinteger or nullOutput height after orientation correction
original_framesinteger or nullFrame count of the original file
output_framesinteger or nullFrame count of the output; conversions keep the first frame
original_bytesinteger or nullOriginal file size
output_bytesinteger or nullSelected output size
original_sha256string or nullSHA-256 of original bytes
output_sha256string or nullSHA-256 of selected output bytes
processorstring or nullActor URL that processed the row
processed_atstring or nullUTC processing timestamp

Abbreviated example — 14 of the real row's 30 fields are shown, and creators and variants are truncated to one entry each:

{
"platform": "bing",
"keyword": "red panda wildlife",
"rank": 1,
"title": "Red panda in a forest",
"publisher": "Wikipedia",
"creators": ["Ganga Raj Sunuwar"],
"source_url": "https://example.org/media/red-panda.jpg",
"raw_url": "https://api.apify.com/v2/key-value-stores/example/records/raw-search.html",
"original_url": "https://api.apify.com/v2/key-value-stores/example/records/original-image.jpg",
"image_url": "https://api.apify.com/v2/key-value-stores/example/records/converted-image.webp",
"metadata_url": "https://api.apify.com/v2/key-value-stores/example/records/image-metadata.json",
"original_format": "jpeg",
"output_format": "webp",
"original_sha256": "a3c1d4492f7129907dbd7713a7a447e86214ec8abbe057bbf20d66a8e83f62c7"
}

An engine may omit title, description, publisher, creators, variants, page_url, or thumbnail_url; those values stay null instead of being inferred. Dataset rows export through Apify as JSON, CSV, Excel, XML, RSS, or HTML, while the binary artifacts remain available through their row URLs.


Integration Examples

Use the Actor name agentx/all-image-scraper with the same four-field JSON in HTTP, Python, JavaScript, Make.com, n8n, or an Apify MCP workflow, and read results through the asynchronous run flow.

Actor ID

Use the public Actor name form:

agentx/all-image-scraper

The immutable API ID is filled after first publication; the name form works across every example on this page.

HTTP API

Start the run, poll it until it succeeds, then read its Dataset:

RUN=$(curl -s -X POST "https://api.apify.com/v2/acts/agentx~all-image-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword":"red panda wildlife","platforms":["bing"],"format":"webp","max_results":1}')
RUN_ID=$(echo "$RUN" | jq -r .data.id)
curl -s "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | jq -r .data.status
curl -s "https://api.apify.com/v2/datasets/$(echo "$RUN" | jq -r .data.defaultDatasetId)/items?token=$APIFY_TOKEN"

Repeat the GET /v2/actor-runs/{runId} call until status reads SUCCEEDED, or register an ACTOR.RUN.SUCCEEDED webhook and skip polling entirely.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("agentx/all-image-scraper").start(run_input={
"keyword": "red panda wildlife",
"platforms": ["bing"],
"format": "webp",
"max_results": 1,
})
finished = client.run(run["id"]).wait_for_finish()
items = client.dataset(finished["defaultDatasetId"]).list_items().items
print(items[0]["image_url"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('agentx/all-image-scraper').start({
keyword: 'red panda wildlife',
platforms: ['bing'],
format: 'webp',
max_results: 1,
});
const finished = await client.run(run.id).waitForFinish();
const { items } = await client.dataset(finished.defaultDatasetId).listItems();
console.log(items[0].image_url);

Make.com

Add Apify → Run an Actor, enter agentx/all-image-scraper, and map keyword, platforms, format, and max_results to red panda wildlife, ["bing"], webp, and 1. Leave the module's "wait until finished" option on so it returns only on SUCCEEDED, then follow it with Get Dataset Items and pass each image_url or metadata_url to the next module.

n8n

Use an HTTP Request node with POST https://api.apify.com/v2/acts/agentx~all-image-scraper/runs, Bearer authentication, and the same four-key JSON body. Take data.id and data.defaultDatasetId from the response, poll GET https://api.apify.com/v2/actor-runs/{runId} on a Wait loop until status is SUCCEEDED, then fetch GET https://api.apify.com/v2/datasets/{datasetId}/items.

MCP

Through the Apify MCP server, call agentx/all-image-scraper with {"keyword":"red panda wildlife","platforms":["bing"],"format":"webp","max_results":1}. The server starts the run and reports completion; read the default Dataset afterwards and use image_url as the converted asset or original_url when the original bytes are required.


Pricing

On the FREE tier each published image costs $0.00400, every run starts with $0.04000 of Actor Start, and the smallest useful one-image run totals $0.04400.

PlanActor Start per runResult: one published image
FREE$0.04000$0.00400
BRONZE$0.04000$0.00360
SILVER$0.04000$0.00320
GOLD$0.04000$0.00300
PLATINUM$0.04000$0.00300
DIAMOND$0.04000$0.00300

Actor Start is billed at $0.01000 per gigabyte of run memory with a one-event minimum, and this Actor is fixed at 4 GB, so every run begins with 4 × $0.01000 = $0.04000 whatever it returns. A one-image FREE run is $0.04000 + 1 × $0.00400 = $0.04400; a 10-image run is $0.04000 + 10 × $0.00400 = $0.08000.

Because Actor Start is a fixed cost and results are not, one larger run is materially cheaper per image than many small ones: 100 images in a single FREE run cost $0.04000 + 100 × $0.00400 = $0.44000, which is $0.00440 per image against $0.04400 for a single-image run. Failed candidates do not create result rows, so the result event is tied to delivered Dataset items. Prices can change; confirm the current amounts on the Pricing page.


Use Cases

Build a traceable image dataset. Search a subject on multiple engines in separate runs, download original_url, group rows by keyword, and deduplicate exact files with original_sha256. Keep source_url, publisher, and raw_url beside the asset for provenance review.

Prepare assets for a fixed media pipeline. Choose original for byte-exact preservation, webp for compact delivery, png when transparency matters, or jpeg for broad compatibility, then filter on output_width, output_height, and output_bytes before the next stage. Downstream jobs consume image_url without maintaining their own encoder.

Compare visual coverage across engines. Run the same keyword on Google, Bing, Yahoo, Brave, and Yandex. Compare source_url, title, and hashes to see which engine surfaces unique files and which ones converge on duplicates.

Collect creative references with attribution to check. Search a campaign theme, product style, destination, or editorial concept, then read publisher, creators, and page_url to find the party whose licensing terms actually apply before an asset is used.

Pick the largest available copy of an image. Where the engine reports alternates, variants lists each one with its reported width, height, and byte size, so a job can select a resolution instead of accepting whichever URL the result page happened to expose.

Monitor search-result changes. Schedule the same four-field input and compare original_sha256, source_url, and rank between runs. New hashes represent new bytes even when titles or source pages look similar.


Alternatives

Manual image search is appropriate when you need only one or two files and want to review licensing, context, and creator attribution before saving anything. It becomes inefficient when the task also requires storing originals, converting formats, hashing files, and maintaining structured provenance.

The search engines' own image interfaces are the best choice for interactive exploration, visual refinement, and built-in filters. Choose Google Images, Bing Images, Yahoo Search, Brave Image Search, or Yandex Images directly when a human will inspect every candidate and automation is unnecessary.

An official search API is preferable when its supported engine, quota, filters, and metadata contract exactly match the project and downloading the image bytes is out of scope. A stock-media library is preferable when verified reuse rights and curated commercial licensing matter more than open-web coverage. A webpage image crawler is preferable when the input is a known site or URL list rather than a search keyword.

Choose something else if you need private-account media, paywalled or locked assets, reverse-image matching, facial recognition, OCR, license adjudication, safe-search or size and colour facets, more than the 200 images a Brave run returns from its single result window, or guaranteed availability from an external image host.


Limits and Troubleshooting

  • Fewer rows than max_results → an external file could not be published. Search indexes may reference an image that was removed, blocks automated retrieval, exceeds the 40 MB source-file limit, decodes to more than 100 megapixels, or is not a decodable image. Try the same keyword later, or add another engine to platforms.
  • A Brave run stops at 200 images → that engine exposes one result window. Google, Bing, Yahoo, and Yandex answer a deeper request with further windows; Brave does not. Select another engine alongside Brave when a keyword needs more than 200 files.
  • No rows → the search or candidate set was temporarily unusable. Confirm that keyword is specific but not overly narrow, then retry with a broader phrase or another engine.
  • title, description, publisher, creators, or variants is null → the engine did not report that value. Only Yandex currently reports alternate variants, and creator credits appear only where the engine publishes them. Use source_url, original_url, and raw_url; the Actor does not invent missing source values.
  • A JPEG has a white background → the source contained transparency. JPEG has no alpha channel, so transparent pixels are composited onto white. Select PNG or WebP to retain transparency.
  • output_frames is 1 while original_frames is higher → an animation was converted. Conversions write the first frame only. Select original when the animation itself must survive.
  • The converted byte size is larger → encoding goals differ by format. PNG can be larger than JPEG or WebP for photographic content. Choose the format that matches downstream compatibility and transparency requirements.
  • Repeated-looking files remain → visual similarity is not byte identity. The hashes identify exact duplicate bytes, not crops, recompressions, or resized versions. Use a perceptual-hash step downstream when visual deduplication is required.

For a reproducible defect, open an Issue and include the run ID, exact four-field input, affected rank, and which artifact URL failed.


Trust and Reliability

The Actor publishes a Dataset row only after the external file has been downloaded, decoded, and stored. Converted modes are decoded again after encoding and the written format is verified against the request; Original mode instead confirms that the stored output bytes, size, format, and hash match the source file.

Every completed row follows the same 30-field Dataset contract. original_bytes, output_bytes, original_sha256, and output_sha256 let consumers verify the stored files independently; processed_at and processor identify when and where the row was produced.

Binary files and raw responses are linked from the Dataset and stored through Apify's platform storage. Apify documents Datasets as structured append-only result storage and key-value stores as storage for records such as files and JSON, so the output separates queryable rows from downloadable artifacts.

Only public search results and publicly retrievable external files are in scope. The Actor does not request search-engine account credentials, fabricate source values, or claim that a search result grants reuse rights.


Public-data scope. The Actor works with public image-search results and public external image URLs. It does not access private accounts, bypass paywalls, defeat locked-media controls, or authenticate as the user on a source platform.

Copyright and reuse. A result's presence in image search is not permission to reuse it, and the publisher and creators fields are what the engine reported rather than a rights determination. Microsoft Support explains Bing's license filter and states that the originating site must still be checked for the actual license; verify the original page, creator, license, and intended use before publishing or redistributing any file.

Privacy and terms. Use the Actor only for lawful purposes consistent with applicable privacy rules, the relevant search engine's terms, the external publisher's terms, and Apify's platform policies. Avoid collecting or distributing sensitive personal imagery without a valid legal basis.


Frequently Asked Questions

How do I download images by keyword?

Enter the phrase in keyword, choose one or more engines in platforms, choose original, jpeg, png, or webp in format, set max_results to how many images you want from each engine, and start the run. Each successful Dataset row links to the stored original and the selected output.

Can I convert image search results to PNG WebP or JPEG?

Yes. Set format to png, webp, or jpeg for a converted copy, or original to return the byte-exact source through both artifact fields. The written file is decoded again and output_format, output_width, output_height, and output_frames describe what was actually produced.

Is there a free image search API?

The Actor can be tested with Apify account credits, but it is not an unlimited free API. FREE-tier billing is $0.04000 of Actor Start per run plus $0.00400 for each published image row.

Can I schedule runs to monitor image results over time?

Yes. Save the input as an Apify task, attach a schedule, and compare rank, source_url, and the two SHA-256 fields across Dataset snapshots.

How many images does one run return?

As many as max_results asks for from every engine you selected — three engines at 10 return up to 30 rows — with a minimum of 1 and no upper bound. Google, Bing, Yahoo, and Yandex read successive result windows to fill a large request, and each further window measurably added images that had not appeared before; Brave answers from a single 200-result window, of which two full scans saved 198 and 199 files. The delivered count can be lower when the engine exposes fewer usable candidates or an external host no longer serves a valid image, and the run then reports the delivered count against the requested one.

Which search engines and formats are supported?

Five engines and four formats: Google, Bing, Yahoo, Brave, and Yandex; Original, JPEG, PNG, and WebP. A run selects one format and any combination of the engines, and an image two selected engines both surface is delivered once.

Does every row include a full-resolution original?

Every published row includes the exact bytes downloaded from the external source_url, but the source server decides what resolution that URL returns. Where the engine reports alternates, variants lists their reported dimensions and byte sizes so a larger copy can be chosen deliberately. The Actor does not upscale an image or promise that a search index points to the publisher's largest file.

Can it access private, paid, or locked images?

No. Only public search results and publicly retrievable external image URLs are supported. The Actor does not infer hidden media addresses, reuse protected signatures, or bypass access controls.

Why can some search metadata fields be empty?

An engine can omit a reliable one-to-one mapping for title, description, publisher, creators, variants, page_url, or thumbnail_url. Those fields stay null while the original file, selected output, raw response, source URL, dimensions, sizes, and hashes remain available.


AgentX currently has 79 published Actors, grouped below by workflow; the three closest choices are listed first and the generated catalog then includes every direct published Actor exactly once.

Closest to this Actor:

  • Google Keyword Trends — validate keyword demand and compare search interest before collecting visual references.
  • All Video Scraper — extend a multimedia research workflow from still images to normalized public video metadata.
  • All Shopping Scraper — enrich image-led product research with normalized listings, prices, and marketplace records.

Business and Market Intelligence

Jobs and Hiring

Social Media

Video, Transcripts and Downloads

E-Commerce and Retail

Classifieds and Automotive

Real Estate


Support and Community

Ask about image search, original-file storage, per-image metadata, or format conversion in the AgentX community on Telegram; for a reproducible bug, open an Issue with the run ID and the exact input.

AgentX is an Arcyton brand — arcyton.com.

Last Updated: September 4, 2026