Transformation delivery types and flags
Last updated: Jun-03-2026
This page covers details of the Cloudinary image transformation URL that go beyond the basics: the delivery types that control how and where an image is stored and accessed, the transformation flags that modify default transformation behavior, and the verbose and non-verbose syntaxes available for specifying transformation option values.
Delivery types
The delivery type element of the URL provides an indication about the way the asset will be delivered, although in most cases, the delivery type value is determined at the time that the asset is stored in Cloudinary.
The following delivery type values are supported:
| Delivery type | Description | Learn more |
|---|---|---|
| upload | The default delivery type for uploaded assets. In most cases, this delivery type indicates that the asset is publicly available. However, there are options you can use to restrict access to assets with an upload delivery type. This includes strict transformations and access mode settings) |
Upload API |
| private | The URL for the original asset can be accessed only with a signed URL. Transformed versions of the asset are publicly available (unless strict transformations are also defined). | Uploading private assets |
| authenticated | Both original and transformed versions of the asset can be accessed only with a signed URL or an authentication token. | Uploading authenticated assets Delivering authenticated assets |
| list | Generates a list of assets that have a specified tag. Note: This isn't a delivery type in the classic sense, in that it doesn't relate to an individual asset. However, to use this feature, you specify list in the delivery type element of the URL. |
Client-side asset lists |
| fetch | Enables transforming and delivering remote assets on the fly. | Fetch remote media files |
|
facebook twitter_name gravatar |
Fetches a profile picture from Facebook, Twitter, or other specified social delivery type based on a specified ID or name. | Social media profile pictures |
|
youtube hulu vimeo animoto worldstarhiphop dailymotion |
Delivers a thumbnail image generated from the specified video from a public video site. | Fetching thumbnails of public videos |
| multi | Enables you to deliver a single animated image (GIF, PNG or WebP) from all image assets that have been assigned a specified tag. | Multi method Create animated images Create PDF files |
| text | Enables you to generate an image in your product environment from a specified textual string along with style parameters for use as an image overlay. | Text method |
| url2png | Requires the URL2PNG Website Screenshots add-on. Enables you to generate a screenshot of a website. | URL2PNG Website Screenshots add-on |
| asset |
Relevant only for the Ruby on Rails SDK. Delivers files that were uploaded using the sync_static command. |
Static files |
Transformation flags
Transformation flags alter default transformation behavior. In some cases, they alter the default behavior of the transformation URL as a whole. In other cases, they alter the behavior of one or more specific transformation parameters that must be used together in the same URL component.
In general, tens of flags are available that can alter delivery and format, cropping and positioning, overlays, metadata and color profiles, as well as PDF and text behaviors, just to name a few.
For example:
fl_attachment alters the normal behavior of the overall transformation. Instead of delivering an asset in a web page, it causes the transformed media file to be downloaded as an attachment. This flag can be used independently of other transformations.
fl_relative modifies the way overlay resize parameters are evaluated. This flag can only be used in conjunction with the overlay (
l_) parameter.fl_layer_apply tells Cloudinary to apply all chained transformations, until a transformation component that includes this flag, on the last added overlay or underlay asset instead of applying them on the base asset. This flag acts as an indicator to close the layer section of the transformation, similar to a closing bracket. Placement definitions for how the layer should be applied, such as gravity and offsets are also defined in the component with this flag.
For details on all available transformation flags, see the flag section of the Transformation Reference.
Verbose vs non-verbose syntax
Some transformation parameters with multiple options offer two alternative syntaxes for defining the option values:
-
Verbose, unordered: Each option of the transformation (whether required or optional) is specified in the verbose format
name_valueand each option is separated by a colon (:) or semicolon (;) depending on the transformation.The options can be specified in any order, and you only need to include those that you want (or are required) to define.
With this syntax, you can also choose to specify only the options for which you don't want to use default values and default values will be applied for the others.
- Non-verbose, ordered: Transformation options are specified only by values, and must be entered in the pre-defined option order for that transformation. All values from the syntax to the left of the value you want to supply must also be entered.
Transformations that support both verbose and non-verbose URL syntax are indicated as such in the Transformation Reference. When both are supported, SDKs always output the verbose syntax.
Verbose vs non-verbose example
The theme effect supports the color and photosensitivity options, but you can specify them in a different order using verbose syntax. For example:
e_theme:photosensitivity_110:color_black
However, when using non-verbose syntax, you must specify the parameters in order. Therefore, even if you only want to change the default behavior of the photosensitivity (last) option, you must still specify the value to use for the color (first) option:
e_theme:black:110