The /image/optimize Robot

We can resize, crop, and (auto-)rotate images, as well as watermark them.

The /image/optimize Robot reduces the size of images while maintaining the same visual quality.


Name Type Default Description
use (required) String / Array of Strings


Specifies which Step(s) to use as the input to this Robot.

Special Step names

A special Step name is ":original", which provides user uploads handled by Transloadit.

Providing several Steps as input

You can add arrays to use several Steps:
"use": [

Step bundling

Some Robots can gather several Step results for a single invocation. For example, the /file/compress Robot would normally create one Zip file for each file passed to it. If you'd set bundle_steps to true, however, it will create one archive containing all the result files from all Steps you give it. To enable bundling, provide an object like the one below to the use parameter:
  "use": {
    "steps": [
    "bundle_steps": true
This is a crucial parameter for the /video/adaptive Robot, otherwise you'll generate 1 playlist for each viewing quality.
Keep in mind that all input Steps must be present in your Template. If one of them is missing, no result is generated because the Robot waits indefinitely for all input Steps to be finished.

Group by original

Sticking with the /file/compress Robot example, you can set group_by_original to true, in order to create a separate Zip file for each of your uploaded or imported files, instead of creating one archive containing all originals (or one per resulting file). This is a crucial parameter for the /media/playlist Robot.


See a demo for the use parameter here.
priority String compression-ratio Provides different algorithms for better or worse compression for your images, but that run slower or faster. Valid values are "compression-ratio" and "conversion-speed". The value "conversion-speed" will result in an average compression ratio of 18%. "compression-ratio" will result in an average compression ratio of 31%.
progressive Boolean false Interlaces the image if set to true, which makes the result image load progressively in browsers. Instead of rendering the image from top to bottom, the browser will first show a low-res blurry version of the image which is then quickly replaced with the actual image as the data arrives. This greatly increases the user experience, but comes at a loss of about 10% of the file size reduction.
preserve_meta_data Boolean true Specifies if the image's meta data should be preserved during the optimization, or not. If it is not preserved, the file size is even further reduced. This option is mandatory if you set png_tool to "pngquant"
fix_breaking_images Boolean true If set to true this parameter tries to fix images that would otherwise make the underlying tool error out and thereby break your Assemblies. This can sometimes result in a larger file size, though.


Our /image/optimize Robot can be used in combination with other Robots, to create powerful workflows unique to your use case. Here are a few example scenarios that you can try live on our website:

Blog posts about the /image/optimize Robot

We wrote the following posts about the /image/optimize Robot on our blog:

Did you know?

You can easily combine Robots to create powerful workflows, unique to your business.
This is the power of Transloadit.