WebP Converter – Compress Images in Bulk
Pricing
from $1.00 / 1,000 images
WebP Converter – Compress Images in Bulk
Convert images to WebP in bulk and see exactly how many megabytes you saved: old size, new size and percent saved on every row. Quality or lossless, optional resize, one ZIP of the lot. $1 per 1,000 images; failed images are free.
Pricing
from $1.00 / 1,000 images
Rating
0.0
(0)
Developer
Tidyrun
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
WebP Converter – Shrink Images in Bulk
Give it image URLs, get WebP files back — and a straight answer to "how much did I actually save?". Every row shows the old size, the new size and the percentage saved, so you can prove the win instead of guessing.
Quick start
- Paste your image links into Image URLs (or upload a text file with one URL per line).
- Click Start.
- The Output tab shows each WebP with its Saved %, and the run summary totals the megabytes.
Input example:
{"imageUrls": [{ "url": "https://example.com/photo.jpg" },{ "url": "https://example.com/logo.png" }],"quality": 80,"maxWidth": 1600,"zip": true}
Output row (shortened):
{"sourceUrl": "https://example.com/photo.jpg","status": "converted","fileUrl": "https://api.apify.com/v2/key-value-stores/.../photo-3f1c2a9b7e.webp","originalBytes": 546059,"webpBytes": 373905,"savedBytes": 172154,"savedPercent": 31.5,"width": 1280,"height": 853,"originalFormat": "jpeg","chargedAsImages": 1}
Run it after a scraper
On your scraper or its task, open Integrations, search for this Actor and set its input:
{"datasetId": "{{resource.defaultDatasetId}}","urlField": "images.url"}
Every time the scraper finishes, its images go through this Actor. Leave URL field empty and it finds the image links itself; use a dot path (images.0.url, images.url for a whole list) when you want one exact field. Each row keeps recordIndexes, the dataset rows the image came from.
Settings worth knowing
| Setting | What it does |
|---|---|
| Quality | 80 by default: most photos look unchanged and lose about a third of their weight. Lower it for smaller files. |
| Lossless | Every pixel kept. Use it for logos, screenshots and line art. |
| Max width / Max height | Shrink anything bigger to fit. Aspect ratio is kept and small images are never enlarged. Resizing saves far more than quality alone. |
| Put everything in one ZIP | One file to download instead of clicking through a list. |
| Max file size | Skip source images bigger than this instead of spending the run on them. |
Why this one
| Common problem | What happens here |
|---|---|
| "Did that actually help?" | Every row carries originalBytes, webpBytes, savedBytes and savedPercent, and the summary totals the megabytes saved. |
| Transparency turns black | Alpha is kept, so PNG logos stay transparent as WebP. |
| Animated GIFs lose their animation | Animated sources keep every frame. |
| Photos come out rotated | EXIF orientation is applied before encoding. |
| "Out of memory" on big batches | Images are encoded a few at a time within the run's memory, and an image too large to encode gets a clear error instead of crashing the run. |
| One site gets hammered and blocks you | At most 4 images at a time per site, with an automatic slow-down if a site rate-limits. |
| Paying for broken links | 404s, pages that are not images and oversized files are never charged. |
| Surprise bills on huge photos | Big images cost more to encode, so each row shows chargedAsImages before you scale up. |
Already-optimised images may shrink only a little, or not at all — the row still tells you exactly what happened.
Pricing
Pay per converted image. Images that fail are never charged, and there is no fee just for starting a run.
An image up to 3 megapixels (about 2048 × 1448, which covers ordinary web images) counts as one. Encoding cost follows pixels, so a much larger image counts as one more per 3 megapixels — a 24-megapixel photo counts as 8. Each row says what it was charged as in chargedAsImages, and Max width lowers both the file size and the count.
Call it from your code
curl -X POST "https://api.apify.com/v2/acts/tidyrun~webp-converter/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H 'Content-Type: application/json' \-d '{"imageUrls":[{"url":"https://example.com/photo.jpg"}],"quality":80}'
Tips
- Shrinking for a website? Set Max width to the widest your layout ever shows (often 1600 px). That usually saves more than any quality setting.
- Logos and screenshots? Turn Lossless on; text edges stay crisp.
- Want the files saved as they are instead of converted? Use Bulk Image Downloader (
tidyrun/bulk-image-downloader).
Responsible use
Downloads the image URLs you provide, as an ordinary visitor. It does not log in, does not solve CAPTCHAs and does not collect personal data. Only convert images you have the right to use.