Media upload

You can upload any file type, from almost any source, using a variety of upload options:

Image and video upload API

If you want to implement your own upload functionality, Cloudinary provides a secure and comprehensive API for easily uploading assets from server-side code, directly from the browser or from a mobile application.

You can upload using the REST API directly within your custom code or take advantage of Cloudinary's SDKs, which wrap the REST API and simplify the implementation.

Upload widget

Cloudinary offers the upload widget: a complete, interactive user interface that enables your employees or end-users to upload files from a variety of sources to your website or application. The widget, requiring just a couple lines of code to integrate, eliminates the need to develop in-house interactive media upload capabilities.

Media Library UI

The Media Library page within the Cloudinary console provides a variety of ways to upload media to your Cloudinary account from a variety of sources. This option is obviously limited to people with access to your Cloudinary account.


This guide includes:

  • Uploading assets: Learn about the options for uploading images, videos and other files via Cloudinary's secure and comprehensive API. This API enables uploading images from server-side code, directly from the browser, or from a mobile application.
  • Transformations on upload: While uploading an asset, you can perform eager transformations that will already be generated and available before your users access them for the first time. You can also perform incoming transformations, which transform the original asset before storing it in your account, for example to limit an image size or a video duration.
  • Analysis on upload: As part of your upload, you can request to perform one or more analyses on the asset. The analysis results are stored with the asset. This data can be used to assist in searching, or the data can be used to add extra functionality to your applications. Some of the analysis options are built-in and avaialable to all users, others are available to certain plans, and the rest are provided via Cloudinary add-ons.
  • Upload presets: Upload presets enable you to centrally define a set of asset upload options instead of specifying them in each upload call. You can define multiple upload presets, and apply different presets in different upload scenarios. Upload presets can be set as signed or unsigned.
  • Notifications: As part of an upload call, you can provide a notification URL (webhook) to which Cloudinary will update on the status of your upload request. This enables your backend to be notified when an upload has completed, or to process actions asynchronously in the background, especially actions that require a relatively long time to process.
  • Signatures: Provides an overview and quick reference summarizing the various types of signatures you may need to generate and the payload you need to include in the signature for each case.
  • Backups and version management: Enabling automatic backup means that every uploaded asset is also copied to a secondary write-protected location, while keeping multiple revisions per file. You can then restore deleted files or specific versions of a file.
  • Additional upload API options: Alongside upload functionality, the upload API provides additional methods for updating and managing existing assets.