Documentation Index

Fetch the complete documentation index at: https://cloudinary.com/documentation/llms.txt

Use this file to discover all available pages before exploring further.

Image & Video APIs

Cloudinary Image & Video release notes: May 28, 2026

Last updated: May-28-2026

We publish Cloudinary Image and Video API release notes periodically to give you a quick overview of all the new features, enhancements, and fixes that we've recently released for Cloudinary developers. When relevant, they may also give sneak previews of upcoming features and/or other share important announcements.

Cloudinary Image

Enhanced background removal model: 3.5x faster and higher quality

The Cloudinary background removal model got a significant upgrade. It's now 3.5x faster and delivers noticeably cleaner results, especially on product imagery like photoshoots, cropped items, and close-up shots. The new model handles a wider range of edge cases with better consistency.

No migration or code changes required on your side. This new and improved model is now automatically applied to every new background removal transformation you generate.

Original image Background removed

Learn more

Use any Google Font in your text overlays

You can now reference any font from the Google Fonts library in your text overlay URLs, including those that until now weren't inherently supported, without the need to first upload them as custom font files to Cloudinary. Just append @google to the font name and you're done.

Example: Overlay text using the Gravitas One Google Font

co_white,l_text:Gravitas%20One@google_80:Enjoy%20luxury

Google Font text overlay

Learn more

Embed clipping paths in image metadata

You can now embed a clipping path into the metadata of a delivered image using the new e_embed_clipping_path transformation effect. Supply a mask image as a user-defined reference variable. Cloudinary converts it to a clipping path and writes it into the output file. The path is preserved in all formats that support clipping-path metadata (primarily JPEG and TIFF), so it's ready for downstream use in Photoshop and similar tools without extra processing steps.

Example: Embed a clipping path derived from butterflywomanmask into a JPEG

$mask_ref:!butterflywomanmask!/e_embed_clipping_path:mask_$mask/q_90/butterfly.jpg

Butterfly woman image with embedded clipping path

Learn more

Cloudinary Video

Video Player v4: with lightweight, lazy-loading player

The recently released version 4.x of the Cloudinary Video Player ships with a fundamentally different loading model. The default bundle is a ~4 KB (gzipped) shell that defers the full player core until it's actually needed. This meaningfully reduces the JavaScript initially loaded on page load.

The default CDN files are now player.min.js and player.min.css. The previous cld-video-player.min.{js,css} names are aliased to the full bundle, so existing integrations continue working unchanged. cloudinary.videoPlayer() returns a deferred proxy that buffers calls until the player loads.

For new integrations, cloudinary.player() replaces cloudinary.videoPlayer() and supports a lazy option that initially renders just a poster and play button, loading the full player on click or scroll. Pair it with breakpoints, loading="lazy", and preload="none" for the most performant setup. If you need a synchronous VideoPlayer instance up front, opt into the full bundle via cloudinary-video-player/full on NPM or dist/player-full.min.js on the CDN.

Example: Recommended performant setup

Learn more

Save and reuse video transformation templates

The Transformation Builder now supports transformation templates (named transformations) for video assets. Build a transformation you want to keep, save it as a template, and load it again on any other video. Useful for maintaining consistent output specs across projects or onboarding teammates to a standard set of transformations.

Save as Template and Load Template buttons in the Transformation Builder

Learn more

Bring your own subtitles: import .vtt and .srt files

You can now import existing .vtt (WebVTT) and .srt (SubRip) subtitle files directly from the Transcript and Localization editor in the Video Player Studio. This is the practical path for subtitle files from external captioning services, professional translators, or your existing video editing workflow. Cloudinary automatically converts imported files to .transcript format and saves them as video elements.

Upload a .vtt or .srt file from the Add transcript menu

Note
The Add translation button was renamed to Add transcript to reflect both generating and importing subtitle files.

Learn more

Asset management and upload

New Webhook triggers and trigger options

Webhook triggers now support several new options that you can pass when you create or update them via the Admin API:

  • additive: Set to true to allow both the globally configured webhook notification and any notification_url specified in an upload preset or direct Upload API call to fire. Previously, specifying a notification_url in an upload preset or direct API call suppressed the global webhook notification, which remains the default behavior.
  • filter: Accepts a JSONLogic expression so notifications are only delivered when the payload matches your rule.
  • payload_template: Defines a Mustache-templated JSON body for the trigger's notification payload.
  • auth_scheme: Selects how Cloudinary signs the request: default, legacy_hmac, or eddsa_v2. Existing triggers use default, which sends both legacy HMAC-SHA1 and EdDSA v2 signatures for backward compatibility.

Use the new POST /triggers/:id/test (Test a trigger's filter) trigger to evaluate sample payload data against an existing trigger's filter, or to validate and render a payload template against sample data, which is handy for getting the filter right before going live.

Example: Create a trigger with additive behavior, a filter, a custom payload, and EdDSA v2 signing

Learn more

Python and JavaScript SDKs for Permissions and Provisioning

Python and JavaScript SDKs are now available for both the Permissions API and Provisioning API. Each language now uses a single SDK package for both APIs, so you don't need to install or manage separate packages.

See each API reference page for installation instructions and SDK links.

Note
Permissions API methods in these SDKs target the new Roles and Permissions system and apply only after your account has been migrated. For rollout timing, see Roles and Permissions below, or check the Migrating to Roles and Permissions page.

Use your private Azure container as an upload and/or backup source

You can now pull assets into Cloudinary directly from a private Azure Blob Storage container or use your container as your backup storage location. Amazon S3 and Google Cloud Storage were already supported, and Azure Blob Storage is now supported as well.

After configuring your private Azure Blob Storage container for Cloudinary access, pass the Azure Blob Storage URL in your upload call or enter your Azure URI in the Backup page of the Console Settings.

Upload example:

Learn more: Upload from Azure container | Backup to Azure container

clear_invalid now works on explicit and Admin API resource updates

clear_invalid is now supported when updating structured metadata via the Upload API explicit method or the Admin API (by public ID or asset ID). Set it to true and Cloudinary removes only the invalid field values instead of failing the entire update. This option was already available on upload and update_metadata.

This is particularly useful when conditional metadata rules or dependent fields would otherwise block changes to unrelated fields.

Example: explicit with clear_invalid

Learn more

Auto-upload now forwards your custom X-* headers to remote sources

Auto-upload now forwards HTTP headers from your Cloudinary delivery requests to the mapped remote URL. This makes it easier to work with remote storage or APIs that require authentication tokens or other custom X-* headers. Any supported headers included in the request to the Cloudinary URL are forwarded to your origin.

Note
X-Cld-* names are reserved for Cloudinary and aren't available for your use.

Learn more

Long file names now wrap in Upload Widget grid views

File names in the Upload Widget's upload source grid views now wrap across multiple lines, so long names are fully readable without truncation. Applies to all file types. Folder names aren't affected.

Multiline file names in Upload Widget grid views

Learn more

Smoother infinite scroll and smoother asset selection in the Media Library

Scrolling through the Media Library grid is noticeably more fluid, and checkbox interactions when selecting assets are more responsive. Customers with large asset libraries will feel the difference most.

Account management

Apple Pay and Google Pay now accepted for plan upgrades

You can now use Apple Pay or Google Pay when upgrading your Cloudinary plan. Both are available in the Payment Method section of the self-service upgrade flow alongside existing credit card options.

Apple Pay and Google Pay payment options in the Cloudinary upgrade flow

API Keys section renamed to Account Management Keys

The Account API Keys Console Settings page located under the Account settings section is now called Account Management Keys, a more accurate name for credentials used to manage your Cloudinary account programmatically via the Provisioning API.

(The API Keys page under the Product Envioronment settings section remains unchanged.)

Account management key credentials

Learn more

Restore your own canceled or disabled accounts within 30 days

If your account has been canceled, or was disabled due to outstanding payments or other reasons, you can now restore it yourself within the new 30-day recovery window before it’s permanently deleted. (Requires that you have an admin role for the account.)

During this period, all product environments, assets, metadata, and settings remain recoverable. After 30 days, the account and all associated data are permanently removed.

To restore your account, sign in using the login associated with the canceled or disabled account and follow the prompts to reactivate it, including upgrading your plan if required.

Note
In some cases, you can still access your account, but uploading, storing, managing, and delivering assets is disabled. In those cases, go to Console Settings > Billing > Plans Details and to upgrade to a plan that supports your usage.

Learn more

Docs and demo apps

Get the Agent Skills install command from any doc page

The Agent Skills button in the toolbar on every doc page, just below the page title, gives you the npx install command for the Cloudinary Skills pack, the fastest way to wire up an AI agent to follow Cloudinary best practices, suggest the right features for a use case, and reduce implementation errors. Worth grabbing it right now if you haven't tried the Cloudinary Skills yet.

Agent Skills button in Doc toolbar

New billing and plans documentation

New documentation covers everything you need to understand and manage account billing: plan types, how self-serve credits and Enterprise units are measured and calculated, add-ons, payment methods, usage monitoring, and managing your plan, including upgrading, downgrading, and cancellation. See Billing and plans.

Coming soon

Roles and Permissions

Cloudinary is rolling out a modern, unified Roles and Permissions system, a foundational upgrade to how access is managed across your account. The new model brings structured, granular access control to both the Console and APIs, with a consistent role-based approach designed to scale for teams, automation, and enterprise governance. Enterprise customers can manage roles and permissions via the Permissions API after migration.

Global role management

What you gain

  • Structured access at scale: Assign global, folder, and collection roles where teams actually work, with granular control across all system user types.
  • Granular and flexible permissions: Combine predefined system roles with custom roles (Enterprise plans only) to match your organization's exact workflows and access needs.
  • Safer service automation: Provision API keys tied to specific roles so services, CI jobs, and integrations only receive the permissions they need.
  • Clearer visibility: Understand who has access to what, and manage it consistently in one place.

Rollout status

  • Since February 2026, the new system has been rolling out to new free Cloudinary accounts. Check if your account has been migrated.
  • Starting May 4, 2026, all new free Cloudinary accounts use the new Roles and Permissions system.
  • Migration for existing free and paid accounts starts May 12, 2026.
  • Broad Enterprise migration hasn't started yet. If your team hasn't already been moved with Cloudinary's help, you're still on the legacy system.

Learn more

Register for notifications

Make sure you always know when we publish new release notes with the Image and Video release notes RSS feed:

Register for RSS feed Grab this RSS link to watch for new Image and Video release notes in your favorite RSS reader.

✔️ Feedback sent!

Rate this page:

one star two stars three stars four stars five stars