Image Batch Processor - Resize, Convert & Compress avatar

Image Batch Processor - Resize, Convert & Compress

Pricing

from $5.20 / 1,000 image optimizeds

Go to Apify Store
Image Batch Processor - Resize, Convert & Compress

Image Batch Processor - Resize, Convert & Compress

Process hundreds of images in one run: resize, compress and convert to WebP or AVIF automatically. Returns CDN-ready URLs and per-file size savings — a TinyPNG alternative for high-volume web and e-commerce pipelines.

Pricing

from $5.20 / 1,000 image optimizeds

Rating

0.0

(0)

Developer

daehwan kim

daehwan kim

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

3

Monthly active users

6 days ago

Last modified

Share

Image Batch Optimizer

Optimize up to 50 images per run: convert formats (WebP/JPEG/PNG), resize, and compress.

Free plan (preview)Paid Apify plan (Starter and up)
Images optimized per run5 (the first five URLs)up to 50
The other imagescounted in a free-plan-preview row: how many were not processed, and an estimate (BRONZE price) of a paid run of the same inputoptimized
Pricesame eventssame events, with plan discounts: BRONZE 20% off, SILVER 35% off, GOLD and up 48% off

A free run ends as SUCCEEDED with a status message that says how many images were left out. Run the same input again on a paid plan for all of them.

Features

  • Batch Processing: Handle up to 50 images per run
  • Format Conversion: Convert to WebP (recommended), JPEG, PNG, or keep original format
  • Resizing: Resize images with customizable fit modes (inside, cover, contain, fill, outside)
  • Compression: Adjust quality (1-100) for optimal file size vs visual quality tradeoff
  • Detailed Output: Get original/optimized sizes, compression ratio, and final dimensions
  • Reliable: A URL that fails gets its own row with the reason (errorSide: "target" with reason and httpStatus when the URL's side caused it, or "service" for our side), and the run continues with the remaining images
  • Pay Per Use: $0.01 per optimized image; $0.002 for a URL whose host refuses it or that is not an image (see Pricing)

Input

PropertyTypeDescriptionExample
imageUrlsArray[String]List of image URLs to optimize (max 50)["https://example.com/photo.png"]
outputFormatStringTarget format: webp, jpeg, png, original"webp"
qualityIntegerCompression quality (1-100)80
maxWidthIntegerMaximum width in pixels (0 = no resize)800
maxHeightIntegerMaximum height in pixels (0 = no resize)600
fitStringResize fit mode: inside, cover, contain, fill, outside"inside"

Output

Dataset contains one record per processed image:

{
"originalUrl": "https://example.com/photo.png",
"outputUrl": "https://api.apify.com/v2/key-value-stores/.../photo.webp",
"originalSize": 245600,
"outputSize": 102340,
"compressionRatio": "58.3%",
"width": 800,
"height": 600,
"outputFormat": "webp",
"disclaimer": "This tool optimizes images..."
}

Pricing

EventPrice (FREE tier list price)When it is charged
image-optimized$0.01once per optimized image row
image-checked$0.002once per URL that was downloaded and failed on its own side: the host answered with an HTTP error, or the body is not an image Sharp can read (rowType: "image-checked", errorSide: "target", reason, httpStatus). Charged only once this event is on the live price list

Who is behind a failed URL. When the URL's own host answers 401, 403, 404 or 410, the check is done and the answer is the host's: errorSide: "target" with reason (login-required, forbidden, not-found, gone) and httpStatus, charged as image-checked. When it answers 429, 503 or another temporary code, the Actor waits briefly and asks once more; the same kind of answer again is the host's own state: reason: "temporarily-unavailable" with the HTTP code, charged the same way. Our side is never charged: our time limit, a host that never answered, errors in our own processing (Sharp encode, storage) (errorSide: "service").

If the platform restarts a run, the new run life reads the run's own dataset and the platform's charge counts: inputs already answered are not processed, delivered or charged again. If the dataset cannot be read back, the run stops without processing or charging anything more.

Not charged: rows with errorSide: "service" (network errors, our encode or storage errors), notice rows. Plan discounts: BRONZE 20%, SILVER 35%, GOLD and up 48%.

The run stops when its maximum charge is reached: no further image is processed, a charge-limit-reached notice row says how many were not processed, and the run ends as SUCCEEDED.

Example

Input:

{
"imageUrls": ["https://images.unsplash.com/photo-1518791841217-8f162f1e1131?w=400"],
"outputFormat": "webp",
"quality": 80,
"maxWidth": 600,
"maxHeight": 600,
"fit": "inside"
}

Result: PNG (280px, ~10KB) → WebP (280×280px, ~3KB), 70% compression, $0.01 charge.

Disclaimer

This tool optimizes images using the open source Sharp library (Apache 2.0 license). Output quality depends on input image format and content. Original files are not modified. Processed images are stored temporarily in Apify Key-Value Store and may expire. Always verify output before use in production.

Data Source


Build your data pipeline with the ntriqpro Actor suite:

⭐ Love it? Leave a Review

Your rating helps professionals discover this actor. Rate it here.