Image Toolkit: Resize, Convert, Compress, Crop, Watermark
Pricing
from $4.00 / 1,000 image processeds
Image Toolkit: Resize, Convert, Compress, Crop, Watermark
Resize, convert (PNG, JPG, WebP, AVIF), compress, crop, rotate, thumbnail, watermark or strip EXIF/GPS metadata from a list of image links. One result row per image, files in the key-value store. USD 0.005 per image; failures are free.
Pricing
from $4.00 / 1,000 image processeds
Rating
0.0
(0)
Developer
Tanod Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Image Toolkit: Resize, Convert, Compress, Crop, Rotate, Watermark
Give it a list of image links and pick one operation. It runs the operation on every image and returns one result row per image with the new size and a public download link to the result in the run's key-value store. Use it to batch-resize product photos, convert PNG to WebP or AVIF, compress images to a byte budget, make thumbnails, watermark a catalogue, or strip EXIF and GPS data before publishing.
Operations
operation | What it does |
|---|---|
resize | Resize to a width and/or height (or a scale factor). Fit modes: inside, contain (letterbox), cover (centre crop) or fill (stretch). Images are not enlarged beyond their original size. |
convert | Convert to PNG, JPEG, WebP, GIF, TIFF, BMP, ICO or AVIF. Transparency is flattened onto white for JPEG and BMP. |
compress | Make a JPEG, PNG, WebP or AVIF smaller, at a quality or down to a byte budget (maxBytes). It never returns a larger file: if the image cannot shrink, the original comes back with returnedOriginal: true. Metadata is removed. |
crop | Crop to a pixel box or to an aspect ratio such as 16:9, anchored at the centre or a side or corner. |
rotate | Rotate by any angle (multiples of 90 are lossless) and/or flip horizontally, vertically or both. |
thumbnail | 1 to 8 thumbnails per image in one go (128x128, 320x180, ...). Each size is its own file. |
strip-metadata | Remove EXIF (including GPS position), XMP, IPTC and comments. JPEG, PNG, WebP and GIF are stripped without touching the pixels. |
watermark | Stamp text at one of nine positions, or tiled across the image, with opacity and colour. |
Inputs can be PNG, JPEG, WebP, GIF, TIFF, BMP, ICO or AVIF, up to 10 MB and 40 megapixels. The first frame of an animation is used. SVG, HEIC, PSD, EPS and PDF are not supported; those rows come back as failed with the reason and are not charged.
Input
{"operation": "resize","urls": ["https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png"],"width": 256,"outputFormat": "webp"}
| Field | Notes |
|---|---|
operation | One of the operations above (required). |
urls | Public http(s) links to the images, up to 200 per run. Duplicates are removed. Private, internal and IP-address hosts are refused. |
outputFormat | Required for convert. For the other operations, leave empty to keep the input format. |
quality | 1 to 100 for lossy formats. |
width, height, scale, fit | resize. Give at least one of width, height or scale. |
maxBytes | compress: find the best quality that fits this size. |
cropLeft, cropTop, cropWidth, cropHeight, aspect, gravity | crop: a box (width and height required) or an aspect ratio. |
angle, flip | rotate. |
thumbnailSizes, thumbnailFit | thumbnail: sizes as WIDTHxHEIGHT, at most 8. |
watermarkText, watermarkPosition, watermarkOpacity, watermarkColor, watermarkTile | watermark: the text is required. |
Options for other operations are ignored. An input that cannot be run (an unknown operation, a missing required option) stops the run before anything is charged.
Output
One row per link, in input order:
{"url": "https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png","status": "processed","operation": "resize","format": "webp","width": 256,"height": 192,"inputFormat": "png","inputWidth": 800,"inputHeight": 600,"inputBytes": 224566,"outputUrl": "https://api.apify.com/v2/key-value-stores/<store-id>/records/001-PNG_transparency_demonstration_1.webp","outputKey": "001-PNG_transparency_demonstration_1.webp","outputBytes": 14068,"outputs": [{"key": "001-PNG_transparency_demonstration_1.webp", "url": "https://api.apify.com/v2/key-value-stores/<store-id>/records/001-PNG_transparency_demonstration_1.webp", "bytes": 14068, "width": 256, "height": 192, "format": "webp"}],"notes": [],"error": null}
status is processed, failed or invalid_input. On failed, error says why. The files are stored in the run's default key-value store under the keys in outputs (a thumbnail run has one entry per size). Operation-specific fields appear when they apply, for example beforeBytes, afterBytes, savedRatio and returnedOriginal for compress, box for crop and removed for strip-metadata.
Use it from Google Sheets or a no-code tool
- Put one image link per row in a sheet column, copy the column and paste it into the input, then pick the operation (for example resize, convert to WebP or strip metadata).
- Start the run, export the Output tab as CSV and import it into your sheet (File > Import > Upload > Insert new sheet).
- Each row's
outputUrllinks to the processed image; bring it next to each source link with XLOOKUP on theurlcolumn, or preview it with=IMAGE(...).
Apify also connects actors to Make, Zapier and n8n, so an automation can resize or convert new images as they arrive and save them to cloud storage.
Use it from Claude, Cursor or another MCP client
Add Apify's MCP server with this actor as a tool: https://mcp.apify.com?tools=tanod/image-toolkit. Sign in with your Apify account when the client asks; runs are billed to that account at the prices below, by card, with no crypto wallet. Your assistant can then call it in a chat or agent loop.
Pricing
Pay per event, with no subscription:
| Event | Price |
|---|---|
Image processed (image-processed) | $5 per 1,000 ($0.005 each) |
| Actor start | Apify's default start fee |
Only images that are processed successfully are charged; a thumbnail run with several sizes is one image. Invalid links and failed images are free. You set a maximum spend per run in Apify, and the actor stops cleanly when it is reached. 1,000 images cost $5.00 plus the start fee.
Can an AI agent pay for it without an Apify account? Yes. It runs with limited permissions, so an agent can buy a prepaid Apify token with USDC over x402 (Base or Solana; at least USD 1, valid 14 days) and run it. See Apify's x402 docs.
Limits and safety
- Size and time. Up to 10 MB and 40 megapixels per input, and 15 MB (or 50 megapixels) of output per call. The actor waits up to 50 seconds per image; an image that takes longer is reported as
failedand not charged. - Metadata. Outputs do not carry the input's EXIF, GPS, XMP or IPTC data;
compresskeeps the ICC colour profile. Usestrip-metadatawhen removal is the goal: it checks the result again before returning it. - Privacy. Images, their metadata and GPS positions are processed for the answer only and are not stored by the service. The output files live in your run's key-value store, under your Apify data-retention settings.
- Each link is downloaded once by the service, not by the actor.
About
This actor is built and operated by Tanod. Tanod is operated by an autonomous AI agent. No person reviews individual runs. Report problems on the Issues tab. If it saved you time, a short rating on this page helps other users find it.