How are transformations counted?

Last updated: Jan-11-2023

Your account's monthly pricing plan is in part dependent on the total number of transformations performed during a 30-day cycle.


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).

You may intentionally generate some 'derived' resources in advance using eager transformations so that they will be immediately available upon request. Otherwise, a derived resource is generated on the fly (and counted) when the transformation URL is requested for delivery for the first time.

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.

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 resource 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.

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).

Derived assets also count against your storage quota, but they are not backed up, so they don't impact backup storage.

Special transformation counts

The following features or operations address special transformation counting rules:

Feature Count guideline Notes and calculation details
Video and audio Initial upload of a video counts as a single transformation regardless of its size.

The transformation count for each derived video resource is calculated based on its generated resolution and its duration.

  • Derived SD videos (less than or equal to 921,600 total pixels, e.g., 1280 x 720): 2 transformations per second or 6 transformations per second for AV1.
  • Derived HD video (more than 921,600 total pixels, regardless of the exact dimensions): 4 transformations per second or 12 transformations per second for AV1.
  • Adaptive streaming videos with manual selection of streaming profile: When generating a video transformation for delivery using adaptive bitrate streaming (HLS or MPEG-DASH) with manual selection of streaming profile, several representations of the same video are generated, and are all counted against your transformation quota as per the SD and HD guidelines above.

    Example: If you use the full_hd streaming profile, you generate one representation that falls into the HD category, and 5 representations that fall into the SD category.

    If you request a 10 minute (600 second) video using this profile, the total transformation count for the derived adaptive streaming resources for that video would be 8400:

    • 600 * 5 SD representations * 2 transformations per second = 6000
    • 600 * 1 HD * 4 transformations per second = 2400
  • Adaptive streaming videos with automatic selection of streaming profile: If using automatic selection of streaming profile then the transformation count is 8 transformations per second regardless of the streaming profile used or number of representations that are generated.
  • Audio files: 1 transformation per 10 seconds for audio-only files. There is no extra cost for audio tracks in videos.
Multi-page/frame image files Since transformations applied to animated images, and other files with multiple frames or 'pages', such as TIFF, PDFs, or Photoshop images with layers, are in essence applied to each page or frame, Cloudinary provides a special calculation for these. 1 transformation for the complete derived image, plus:

  • PDFs, TIFFs, PSDs, or other 'paged' files: An additional transformation for every 10 pages.
  • Animated images: An additional transformation for every 10 frames.
  • Animated images converted to video: An additional transformation for every five frames.
'Auto' transformations Some auto transformation parameters have the potential to generate multiple derived resources, depending on the browser, device, or viewing size being used when the URL is requested. Each time a new derived resource is generated, it counts as another transformation.
  • Auto format 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.
    Example: Depending on the requesting browsers, a single image URL might result in multiple derived images in different formats: e.g. WebP, AVIF and JPEG-2000.
  • Auto DPR 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 using dpr_2.
  • Auto Width 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.
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 vs h_200,w_200)
  • You use a transformation that has no impact (for example, angle = 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-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 resource is generated in addition to the uploaded file, resulting in a second transformation.

Fetch and remote social media profiles Fetched and social media profile images count as one transformation (whether or not you apply transformation parameters in the delivery URL).

Delivering fetched videos (with or without transformation parameters) follows the same calculation as standard video transformation counts.

Even though fetched images are cached (and thus count against your storage quote), the fetch delivery type isn't considered an upload, and thus there isn't an additional upload transformation associated with these assets.
Placeholder images Placeholder images are used when the requested base image doesn't exist. In that case, then 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.
Video Player seek thumbnails Enabling seek thumbnails for the Cloudinary video player will generate a sprite containing the relevant thumbnails from each video. As such, this will count as an additional transformation.
Console asset editor When you use the Asset Editor in the Cloudinary Console to experiment with transformations, a new derived resource is generated each time you refresh the preview.
Media library operations that delete derived assets Certain changes to assets via the Media Library, delete any derived resources that specifically depend on those values, and new derived assets are generated when a transformation URL on that asset is requested. 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 resources for that asset being deleted. This means that the next time a corresponding transformation URL is requested, a new derived resource 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(or image_metadata or exif (deprecated) )
  • phash
  • colors
  • faces
  • pages
  • illustration_score
  • quality_analysis
  • accessibility_analysis
  • cinemagraph_analysis
AVIF format The transformation count for AVIF files, and other formats converted to AVIF, is based on the transformed (derived) image size.

  • For images less than 2 MP, one transformation is counted.
  • For images greater than 2 MP, an extra one transformation is counted for each extra 2 MP (or part thereof).

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.

Example: For an AVIF of 3.2 MP:

AVIF transformation count = 1 + 1 = 2.

  • 1 transformation for the first 2 MP
  • 1.2 MP extra rounds up to 2 MP, which counts as 1 extra transformation.
  • Total is 2 transformations

Animated AVIF format The transformation count for animated images and videos converted to animated AVIF from other formats is based on the number of frames of the transformed file.

2 transformations are counted per 10 frames.

Example: For an animated AVIF of 60 frames:

Animated AVIF transformation count = 2 * (60 / 10) = 12 transformations.

Upscale effect Use of the upscale effect counts as 10 transformations. The result of the upscale effect is cached, so even if it is used again together with different transformations, no further transformations are counted for its use on the same image.


  • When using add-ons that are triggered by transformation parameters, then an add-on unit is used in addition to the normal transformation count for the derived asset.
  • 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.

✔️ Feedback sent!

Rate this page: