Scrapers / Developer & File Tools

Image Optimizer
hipersoft/image-optimizer
Batch convert, resize and compress images to WebP, AVIF, JPEG or PNG, optionally stripping metadata. The image step for your web, n8n, Make and Zapier pipelines.
Total users
5Monthly users
4Total runs
94Per image optimized
$0.002Last rebuilt
Oct 26, 2026Overview
Batch convert, resize and compress images to WebP, AVIF, JPEG or PNG — strip metadata, shrink file size, and drop the results straight into your pipeline.
What it does
Give it a list of image URLs and a target format. For every image it fetches the file, converts it to your chosen format, optionally resizes it down to a max width/height, compresses it at your chosen quality, and (by default) strips EXIF/IPTC/XMP metadata. Each optimized file is saved to storage with a direct download link, and you get a dataset row showing the original size, new size and percentage saved.
- Four formats — WebP, AVIF, JPEG, PNG.
- Smart resize — cap width and/or height without upscaling or distorting.
- Quality control — one dial from 1 (smallest) to 100 (best).
- Metadata stripping — remove GPS, camera and author data for smaller, more private files.
- Bulk — hundreds of images in one run.
Use cases
- The image step in your pipeline — the compress-and-convert stage in an n8n, Make or Zapier workflow. Feed in URLs, get back optimized files and a savings report.
- TinyPNG-style batch optimization — shrink a whole folder of images at once for the web, without an upload UI.
- Web performance — serve modern WebP/AVIF to cut page weight and speed up load times.
- CMS & e-commerce — normalise product and blog images to one format and size.
- Privacy — strip location and camera metadata before publishing user uploads.
Input
{
"imageUrls": [
"https://example.com/photo-1.jpg",
"https://example.com/photo-2.png"
],
"format": "webp",
"quality": 80,
"maxWidth": 1600,
"maxHeight": 0,
"stripMetadata": true
}
| Field | Type | Description |
|---|---|---|
imageUrls |
array | Direct image URLs to optimize. |
format |
string | webp, avif, jpeg or png. Default webp. |
quality |
integer | Compression quality 1–100. Default 80. |
maxWidth |
integer | Max width in px; 0 keeps original. |
maxHeight |
integer | Max height in px; 0 keeps original. |
stripMetadata |
boolean | Remove EXIF/IPTC/XMP metadata. Default true. |
Output
Each image produces one dataset row, and the optimized file is saved with a direct link (resultUrl).
{
"url": "https://example.com/photo-1.jpg",
"format": "webp",
"origBytes": 482113,
"newBytes": 91544,
"savedPct": 81,
"width": 1600,
"height": 1067,
"resultUrl": "https://api.apify.com/v2/key-value-stores/xxxx/records/img-0001.webp",
"ok": true
}
Output schema
| Field | Type | Description |
|---|---|---|
url |
string | The source image URL. |
format |
string | Output format. |
origBytes |
integer | Original file size in bytes. |
newBytes |
integer | Optimized file size in bytes. |
savedPct |
number | Percentage of size saved. |
width |
integer | Output width in px. |
height |
integer | Output height in px. |
resultUrl |
string | Direct link to the optimized file. |
ok |
boolean | Whether the image was optimized successfully. |
FAQ
Which format should I use? WebP is the best all-round choice for the web. AVIF compresses even smaller but encodes slower. JPEG and PNG maximise compatibility with older tools.
Does resizing upscale small images? No — images are only ever scaled down to fit your limits, never enlarged, and aspect ratio is preserved.
What if one URL is broken? That image is skipped with ok: false and an error field; the rest of the run continues.
Can I automate it? Yes — via integrations on the Apify platform (n8n, Make, Zapier and more) and the Apify API.
Notes
Original clean-room implementation.
Input
| Field | Type | Description |
|---|---|---|
imageUrls requiredImage URLs | array | One or more direct image URLs to optimize (JPEG, PNG, WebP, AVIF, TIFF, GIF). |
formatOutput format | string · webp, avif, jpeg, png | Target image format. WebP and AVIF give the smallest files; JPEG and PNG maximise compatibility. Default: "webp" |
qualityQuality | integer | Compression quality from 1 (smallest, lowest) to 100 (largest, best). Ignored for lossless PNG. Default: 80 |
maxWidthMax width (px) | integer | Resize down so width never exceeds this many pixels. 0 keeps the original width. Default: 0 |
maxHeightMax height (px) | integer | Resize down so height never exceeds this many pixels. 0 keeps the original height. Default: 0 |
stripMetadataStrip metadata | boolean | Remove EXIF, IPTC and XMP metadata (GPS, camera, author) for smaller, more private files. Default: true |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~image-optimizer/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"imageUrls": [
"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Example.jpg/320px-Example.jpg"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/image-optimizer").call(run_input={
"imageUrls": [
"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Example.jpg/320px-Example.jpg"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/image-optimizer').call({
"imageUrls": [
"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Example.jpg/320px-Example.jpg"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Image Optimized Charged per image converted/compressed. | $0.002 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Bulk Image Downloader
Download thousands of images from a list of URLs and store each in the key-value store with a public link. Returns content type, size, dimensions and SHA-256 per image. Bulk-ready. Great for datasets, backups and media pipelines.
8,102 runs · 103 users · $0.056 / url processedText to Speech
Convert any text to natural-sounding speech as an MP3 download. 300+ premium neural voices across 70+ languages, adjustable rate, pitch and volume. Great for voiceovers, videos, accessibility and audio content. No setup.
278 runs · 22 users · $0.01 / audio generatedGoogle Maps Email Extractor
Search Google Maps for businesses, then crawl each business website to extract emails, social profiles and extra phone numbers. Turns any Maps search into a ready lead list. No setup.
159 runs · 8 users · $0.006 / business lead scrapedWebsite Screenshot
Capture full-page or viewport screenshots of any URL as PNG or JPEG, at any device size. For monitoring, previews, thumbnails and automation workflows.
156 runs · 3 users · $0.004 / screenshot capturedBulk URL Status Checker
Check thousands of URLs over plain HTTP: status codes, broken links (404/410/5xx), full redirect chains, response time, content type, page title and SSL certificate expiry.
154 runs · 13 users · $0.002 / url checkedGoogle Search Scraper
Scrape Google Search results (organic listings) for any query: title, URL, displayed URL, snippet and position. Multi-query, per-country/language, pagination. Uses Google SERP proxy — reliable, no captcha, no setup.
121 runs · 8 users · $0.001 / result scrapedSend the site and the fields. We build it and you get it first.