Image Converter — Convert Images to WebP, AVIF, JPEG or PNG avatar

Image Converter — Convert Images to WebP, AVIF, JPEG or PNG

Pricing

from $3.20 / 1,000 image conversions

Go to Apify Store
Image Converter — Convert Images to WebP, AVIF, JPEG or PNG

Image Converter — Convert Images to WebP, AVIF, JPEG or PNG

Convert an image from PNG to JPEG, or to WebP, AVIF, PNG, GIF or TIFF, with optional resizing, quality control and metadata stripping. Batch URLs in; converted files and signed download links out. $0.004 per image; failures never charged, demo run free.

Pricing

from $3.20 / 1,000 image conversions

Rating

0.0

(0)

Developer

Broke to Built

Broke to Built

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

3 days ago

Last modified

Share

Image Converter — WebP · AVIF · JPEG · PNG · GIF · TIFF

Batch-convert images between modern and classic formats with optional resizing, quality control and metadata stripping. Feed it public image URLs; it returns one converted file per image in the run's key-value store, with a direct download URL, dimensions, byte sizes and the exact space saved in every dataset row.

Powered by libvips (sharp) — the same engine behind most production image CDNs — so conversions are fast and color-accurate.

Try it free first

Run the actor with no input at all and it converts a built-in demo image (unbilled) so you can see the exact output shape before spending anything.

What it does

  • Formats: WebP, AVIF, JPEG, PNG, GIF, TIFF — any direction. Animated GIF/WebP inputs keep their animation when converting between those two.
  • Resize: target width/height with five fit modes (inside, cover, contain, fill, outside). Images are never upscaled.
  • Quality: 1–100 for lossy formats. WebP at quality 80 typically cuts a JPEG's size 25–35%; AVIF often more.
  • Privacy by default: EXIF/GPS/ICC metadata is stripped unless you set keepMetadata. Orientation is applied to the pixels first, so photos never come out sideways.
  • Honest billing: you pay per successfully converted image. Dead URLs, non-images, and oversized sources are recorded in the dataset but never charged. Output is stored before the charge, so hitting your spending limit never loses finished work.

Input

FieldTypeDefaultNotes
imageUrlsstring[][]Empty = free demo conversion
formatenumwebpwebp / avif / jpeg / png / gif / tiff
qualityinteger80Lossy formats only
width / heightinteger00 keeps original; never upscales
fitenuminsideUsed when both width & height are set
keepMetadatabooleanfalseKeep EXIF/ICC
maxFileSizeMbinteger50Larger sources skipped (unbilled)

What you get

One dataset row per image:

FieldMeaning
sourceUrlThe URL you supplied (null for the built-in demo)
demotrue only for the free built-in demo conversion
outputFormatThe format you asked for
fileKeyKey of the converted file in the run's key-value store
downloadUrlSigned, shareable direct link to the converted file
sourceFormat / sourceWidth / sourceHeightWhat the original actually was
width / heightDimensions of the converted file
bytesIn / bytesOutSizes before and after
savedPercentExactly how much smaller it got, to one decimal
convertedAtISO timestamp
errorPresent instead of the above when that image failed. Never charged

Examples

1. JPEG to WebP with a resize — real run

Input:

{
"imageUrls": ["https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1280px-Cat03.jpg"],
"format": "webp",
"quality": 80,
"width": 800
}

Output row, copied verbatim:

{
"sourceUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1280px-Cat03.jpg",
"demo": false,
"outputFormat": "webp",
"fileKey": "image-0001.webp",
"downloadUrl": "https://api.apify.com/v2/key-value-stores/jezZm13dyXVcaYv5R/records/image-0001.webp?signature=TAH7FYpPhp2rOLchWVwS",
"sourceFormat": "jpeg",
"sourceWidth": 1280,
"sourceHeight": 1278,
"width": 800,
"height": 799,
"bytesIn": 236906,
"bytesOut": 50486,
"savedPercent": 78.7,
"convertedAt": "2026-08-15T16:34:40.411Z"
}

That is 237 KB down to 50 KB — most of it from the resize, the rest from WebP. Cost: $0.004. Note height: 799 — with fit: "inside" only width was pinned and the aspect ratio was kept.

2. Batch to AVIF, metadata kept

{
"imageUrls": ["https://example.com/a.png", "https://example.com/b.png"],
"format": "avif",
"quality": 55,
"keepMetadata": true
}

Two rows back, each with its own downloadUrl. AVIF is the slowest encoder of the six — expect a few seconds per large photo.

3. A dead URL

{ "sourceUrl": "https://example.com/missing.png", "error": "HTTP 404", "convertedAt": "2026-08-15T16:35:02.118Z" }

Recorded, and never charged. One bad URL never stops the rest of the batch.

Run it from the API

curl -X POST "https://api.apify.com/v2/acts/eliai~image-converter/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"imageUrls":["https://example.com/photo.jpg"],"format":"webp","width":1600,"quality":80}'

Node.js (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('eliai/image-converter').call({
imageUrls: ['https://example.com/photo.jpg'],
format: 'avif',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].downloadUrl, items[0].savedPercent + '% smaller');

Each row's downloadUrl serves the converted file directly — pipe it into the next step of your workflow, no unzipping.

When NOT to use this

  • You have the image on your machine, not online. The input is a URL; there is no upload. Host it first.
  • You need the file to live somewhere permanent. Converted files sit in the run's key-value store on your Apify account, which follows your account's data-retention policy. Copy anything you want to keep to your own storage.
  • You want a CDN that converts on the fly. This is a batch job, not an image-resizing proxy. For per-request transformation use an image CDN.
  • You need cropping to a subject, background removal, watermarks, or any editing. Format, size, quality and metadata only.
  • You need PDF, SVG output, or ICO. Output is WebP, AVIF, JPEG, PNG, GIF or TIFF. SVG is accepted as input only, rasterized at its intrinsic size.
  • The images are behind a login or bot protection. Only public URLs you supply are fetched.

Honest limits

  • Sources are capped at maxFileSizeMb (max 100 MB) and 60 s download time each.
  • SVG input is rasterized at its intrinsic size; fonts inside SVGs may not render.
  • AVIF encoding is the slowest of the six formats — expect a few seconds per large photo.
  • The actor fetches only the public URLs you explicitly supply — no crawling, no login-walled content.

Pricing

Pay per event, one event: image-converted.

EventWhat one event coversPrice
image-convertedOne image downloaded, converted (and resized, if asked) and stored with a download link$0.004

100 images cost $0.40; 1,000 cost $4.00. There is no start fee and no monthly fee. Dead URLs, non-images and oversized sources are recorded but never charged, the built-in demo run is free, and output is stored before the charge so a spending cap never loses finished work.

Honest comparison: sharp, ImageMagick and cwebp are free and do this locally, and if you are already running a build step you should use them. What $0.004 buys is the hosted batch — no binary to install, no libvips version to fight, a signed download URL per file, and a JSON report with the exact bytes saved that a no-code tool or an agent can act on.

FAQ

How do I convert an image to WebP (or AVIF) by URL? Put the URLs in imageUrls, set format, run — each row returns a downloadUrl serving the converted file directly, plus byte sizes and the exact percentage saved.

How much smaller do images get? WebP at quality 80 typically cuts a JPEG's size 25–35%; AVIF usually more. Every result reports bytesIn, bytesOut, and savedPercent, so the answer for your images is measured, not estimated.

Can it resize images too? Yes — set width/height with one of five fit modes. Images are never upscaled, so thumbnails stay sharp and originals stay untouched.

Does it keep EXIF and GPS metadata? Stripped by default for privacy (set keepMetadata to keep it). Orientation is applied to the pixels first, so photos never come out sideways.

Do animated GIFs stay animated? Yes when converting between GIF and WebP — the two animated formats. Converting an animation to a still format keeps the first frame.

Is there a free way to test the output format? Run with no input at all — a built-in demo image is converted unbilled so you can inspect the exact output shape before spending anything.

How do I bulk convert images to WebP? Put every URL in imageUrls (one run, one row per image), set format: "webp", and collect each row's downloadUrl. One dead URL never stops the batch, and only successful conversions are charged.

Where does the converted file actually live, and for how long? In the run's key-value store on your Apify account, reachable through the signed downloadUrl in each row. It follows your account's data-retention settings — copy anything you need to keep into your own storage.

Can I convert AVIF or WebP back to JPEG or PNG? Yes, any direction between the six supported formats. Set format to the one you want out.

Why is my output the same size as the input, or bigger? Converting an already-optimized file, or converting to a lossless format like PNG, can do that. savedPercent will be small or negative, and it is reported honestly rather than hidden.

For AI agents

This Actor is built to be called by software, not just by people.

  • Mount it directly as an MCP tool — no Store search, no ranking, just this one tool: https://mcp.apify.com/?actors=eliai/image-converter
  • Or call it over HTTP and get the results in the same request: POST https://api.apify.com/v2/acts/eliai~image-converter/run-sync-get-dataset-items
  • Pay with x402, without an Apify account. This Actor is whitelisted for agentic payments, so an agent holding USDC on Base can buy a prepaid token and spend it here. The minimum purchase is $1, the token balance is an absolute spending cap, and it expires 14 days after purchase.
  • Costs are predictable before you call. Pricing is pay-per-event (see Pricing above), so an agent can budget a run in advance instead of discovering the bill afterwards.
  • Send only the field you mean. If you pass the bulk field, it is used on its own; the single-value field is a fallback, never merged into your request. You are charged for the items you sent and nothing else.