Last updated: Nov-25-2024
Your account's monthly pricing plan is in part dependent on the total number of transformations performed during a 30-day cycle.
Overview
Transformation counts are impacted by each processing of an asset. The majority of these occur when Cloudinary generates a new 'derived' resource from an asset based on a transformation URL (regardless of the complexity of the transformation).
Your pricing plan is also impacted by storage and bandwidth usage, not covered here.
- Usage limits for uploading, transforming and delivering files depend on your Cloudinary plan. For details, check the Account tab in your Cloudinary Console Settings.
- For additional information on how your overall account usage is calculated (including storage and bandwidth), see the Cloudinary Pricing page and this KB article.
- You can set your email preferences to receive notifications regarding your account usage.
Transformation counting basics
-
Upload processing: The upload of each image and video asset (with or without an incoming transformation) counts as one transformation.
If you re-upload (overwrite) an asset with the same public ID in the future, that upload is again counted as a transformation.
Stored
raw
assets impact your storage quota, but are not counted as transformations. - Transformation complexity: The count for a single transformation URL is not impacted by the number of transformation parameters in the URL, or the number of transformation components if chained transformations are applied.
-
Multiple requests: Since transformations are counted when a new derived asset is generated, multiple requests to the identical transformation URL do not affect transformation counts.
This includes URLs using Dynamic SEO suffixes, which are resolved on the CDN layer and thus do not increase transformation counts, even if multiple SEO suffixes are delivered with the same transformation URL.
-
Default optimizations: Default optimizations count towards your usage, even though the delivery URL does not appear to be different from delivering an original asset. To deliver an original asset without incurring a transformation cost when you have any of the Optimize by default settings enabled, use the
original
flag (fl_original
in URLs).
Based on the above, most images that you deliver result in one transformation for the initial asset upload, and one transformation per image transformation URL delivered (or eagerly generated).
Special transformation counts
The following features or operations address special transformation counting rules.
Progressive videos
Feature | h264 (tx/second) |
h265/vp9 (tx/second) |
AV1 (tx/second) |
---|---|---|---|
Derived SD videos | 2 | 2 | 16 |
Derived HD videos | 4 | 4 | 32 |
Derived 4K videos | 8 | 8 | 64 |
Derived above 4K videos | 120 | 120 | 960 |
- The term progressive refers to video formats such as MP4 and WebM that do not support adaptive bitrate streaming. They are downloaded progressively so you can start watching them before they have fully downloaded.
- Derived SD videos: output resolution of less than or equal to 921,600 total pixels, e.g. 1280 x 720
- Derived HD videos: output resolution of more than 921,600 total pixels, and less than or equal to 2,073,600 total pixels, e.g. 1920 x 1080
- Derived 4K videos: output resolution of more than 2,073,600 total pixels, and less than or equal to 8,294,400 total pixels, e.g. 3840 x 2160
- Derived above 4K videos: output resolution of more than 8,294,400 total pixels
- Parts of seconds are counted as one second. For example, 6.3 seconds is treated as 7 seconds.
Adaptive bitrate streaming
Automatic streaming profile selection (sp_auto)
Feature | HLS/DASH - h264 (tx/second) |
---|---|
ABR streaming with sp_auto | 8 |
This is the count regardless of the streaming profile used or number of representations that are generated.
For details, see Automatic streaming profile selection.
Manual streaming profile selection
Profile | HLS/DASH - h264 (tx/second) |
HLS/DASH - h265 (tx/second) |
DASH - vp9 (tx/second) |
DASH - AV1 (tx/second) |
---|---|---|---|---|
4K | 30 | 30 | 30 | 240 |
Full HD | 14 | 14 | 14 | 112 |
Full HD WiFi/lean | 8 | 8 | 8 | 64 |
HD | 10 | 10 | 10 | 80 |
HD lean | 6 | 6 | 6 | 48 |
SD | 6 | 6 | 6 | 48 |
For each streaming profile, several representations of the same video are generated, and all are counted against your transformation quota as per the progressive video guidelines.
For details, see Manual streaming profile selection.
Video AI
Feature | All formats (tx/second) |
---|---|
Video cropping with auto gravity | 10 |
Dynamic video overlays | 10 |
Video preview | 2 |
- These counts are in addition to the counts already mentioned for video.
- If the result from the AI is already in cache then this count is not applicable. For example, if a transformation such as
e_accelerate/ar_10,c_fill,g_auto:face,w_500
had already been applied to a video, thene_accelerate/ar_10,c_fill,g_auto:face,w_500/a_45
used on the same video would not incur the additional charge. - Video cropping with auto gravity is applicable to videos using
g_auto
,g_auto:face
,g_auto:faces
, andg_auto:<object>
. - The count for video preview is based on the length of the input video (not the resulting preview).
Video Player seek thumbnails
Feature | All formats (tx) |
---|---|
Video Player seek thumbnails | 1 |
Video Player AI highlights graph
Feature | All formats (tx/second) |
---|---|
Video Player AI highlights graph | 2 |
Audio
Feature | All formats (tx/second) |
---|---|
Audio files | 0.1 |
Animated formats
Feature | Count |
---|---|
Animated images (not AVIF) | 1 tx + 0.1 tx/frame |
Animated images converted to video | 1 tx + 0.2 tx/frame |
Animated AVIF
Resolution | Count (tx/second) |
---|---|
Derived SD | 16 |
Derived HD | 32 |
Derived 4K | 64 |
Derived above 4K | 960 |
- The count is based on the duration of the transformed file.
- Derived SD: output resolution of less than or equal to 921,600 total pixels, e.g. 1280 x 720
- Derived HD: output resolution of more than 921,600 total pixels, and less than or equal to 2,073,600 total pixels, e.g. 1920 x 1080
- Derived 4K: output resolution of more than 2,073,600 total pixels, and less than or equal to 8,294,400 total pixels, e.g. 3840 x 2160
- Derived above 4K: output resolution of more than 8,294,400 total pixels
- Parts of seconds are counted as one second. For example, 6.3 seconds is treated as 7 seconds.
Multi-page image files
Feature | Count |
---|---|
Multi-page image files | 1 tx + 0.1 tx/page |
3D models
Feature | Count (tx) |
---|---|
3D models | 20 |
AVIF
Feature | Count (tx) |
---|---|
AVIF < 2 MP | 1 |
AVIF >= 2 MP | 1 + 1 per 2 MP (or part thereof) |
- The transformation count for AVIF files, and other formats converted to AVIF, is based on the transformed (derived) image size.
- Most web-based displayed images should be less than 2 MP (2 MP is, for example, 1600 × 1250 pixels), so should not incur extra transformation costs.
Effects with special counts
Feature | Count (tx) |
---|---|
Enhance | 100 |
Extract | 75 |
Generative background replace | 230 |
Generative fill | 50 |
Generative recolor | 50 |
Generative remove | 50 |
Generative replace | 120 |
Generative restore | 100 |
Upscale | 10: input < 0.25 MP (e.g. 500 x 500) 100: input 0.25 - 4.2 MP (e.g. 2048 x 2048) |
Fetched and remote social media profiles
Feature | Count (tx) |
---|---|
Fetched images and remote social media profiles | 1 |
Fetched videos | Same as other video transformation counts |
- The count is applicable whether or not you apply transformation parameters in the delivery URL.
- There isn't an additional upload count associated with fetched assets.
Custom functions
Feature | Count (tx) |
---|---|
JavaScript filters (fn_select:js ) |
0.004 per ms of JavaScript execution time (max 2 for a single execution as each execution is limited to 500 ms) |
Additional considerations
URL changes
If two (or more) transformations generate an identical result, but the URL is different in any way, a separate transformed (derived) resource is created (and counted) when each of those transformations is requested.
Examples:
- The transformations are in a different order (
w_200,h_200
vsh_200,w_200
) - You use a transformation that has no impact (for example,
a_0
) - The same file format is specified in different ways (for example, specifying
f_jpg
as a transformation parameter vs using the.jpg
file extension). - No file extension is specified, when previously an extension has been specified, even if the same format is returned.
'Auto' transformations
Some 'auto' transformation parameters have the potential to generate multiple derived assets, depending on the browser, device, or viewing size being used when the URL is requested. Each time a new derived asset is generated, it counts as another transformation.
-
Automatic format selection delivers images and videos in the optimal format for the requesting browser, so if a transformation URL including
f_auto
is requested on different types of browsers, that same URL may result in multiple derived assets in different formats. -
Automatic pixel density detection automatically delivers an image using the best DPR for the requesting device. So the single URL may, for example, result in two derived images, one using
dpr_1
, and one usingdpr_2
. - Automatic width selection automatically resizes the image to match the width available for the image in the responsive layout. When you use this parameter, the number of potential derived images depends on the screen or viewport size of the requesting devices and the breakpoints you set. Using this parameter might sometimes result in only two or three different derived images, or in other cases, may result in 20 or more images.
Placeholder images
Placeholder images are used when the requested base image doesn't exist. In that case, if transformations are applied to the placeholder image, and the relevant derived image doesn't already exist, it is generated and counted as a transformation.
Auto-upload
Auto-upload is much like uploading any other file, except that the upload occurs 'lazily' when the URL is first requested.
Thus at the time of the first request, the initial upload counts as a single transformation.
If the auto-upload URL also includes transformations, a derived asset is generated in addition to the uploaded file, resulting in the relevant transformation counts as described in this page.
Eager transformations
You may intentionally generate some 'derived' assets in advance using eager transformations so that they'll be immediately available upon request.
One or more eager transformations can be performed either when uploading an asset (in the upload API method, or through an upload preset), or by using the explicit API method.
Eager transformations are counted identically to on-the-fly transformations. The only difference is that eager transformations are counted when requested via the API call, while on-the-fly transformations are counted when the transformation URL is requested for delivery for the first time.
Console asset editor
When you use the Asset Editor in the Cloudinary Console to experiment with transformations, a new derived asset is generated each time you refresh the preview.
Transformation Builder
When you use the Transformation Builder to preview an image or video with transformations applied, you are not charged for these transformations unless you open the result in a separate browser tab.
Media library operations that delete derived assets
Certain changes to assets via the Media Library, delete any derived assets that specifically depend on those values, and new derived assets are generated when a transformation URL on that asset is requested.
For example, adding/modifying tags may result in regeneration of a conditional transformation with a text overlay that's based on a tag value.
API operations that delete derived assets
Certain Upload API and Admin API operations that change or replace the original asset result in all stored derived assets for that asset being deleted. This means that the next time a corresponding transformation URL is requested, a new derived asset is generated based on the updated asset.
Methods that cause this behavior include: upload, explicit, tags, context, update, delete.
Asset analysis operations on 'Explicit'
When you include parameters that perform special media processing or analyses on existing assets, and return the data in the response as part of an Explicit method call, this extra analysis operation is counted as a transformation.
Specifically, when you run an Explicit
method call that includes one or more of the following parameters, that request is counted as a transformation:
-
media_metadata
(orimage_metadata
orexif
(deprecated) ) phash
colors
faces
pages
illustration_score
quality_analysis
accessibility_analysis
-
cinemagraph_analysis
Add-ons
When using add-ons that are triggered by transformation parameters, then an add-on transformation count is used in addition to the normal transformation count for the derived asset.