@cloudinary/asset-management-mcpv0.11.6

MCP Server

Documentation All MCP Servers Package Repository

Endpoints

EndpointMethodDescription
/mcp POST Streamable HTTP transportRecommended
/sse GET SSE transportDeprecated

Server URL

https://asset-management.mcp.cloudinary.com/mcp

Configuration

Add this to your MCP client configuration. OAuth is used by default when no headers are provided.

Minimal (OAuth)
{ "mcpServers": { "@cloudinary/asset-management-mcp": { "url": "https://asset-management.mcp.cloudinary.com/mcp" } } }
With API Key
{ "mcpServers": { "@cloudinary/asset-management-mcp": { "url": "https://asset-management.mcp.cloudinary.com/mcp", "headers": { "cloudinary-url": "cloudinary://api_key:api_secret@cloud_name" } } } }

Authentication

MethodDescription
OAuth 2.0 Default. The OAuth flow is initiated automatically when the client connects with no auth headers.
API Key Pass cloudinary-url header, or individual cloudinary-cloud-name, cloudinary-api-key, cloudinary-api-secret headers.

Configuration Headers

Optional headers to customize server behavior. Applied at session creation time.

HeaderDescription
cloudinary-region API region: api, api-eu, or api-ap
cloudinary-tools Comma-separated list of tools to enable (e.g. search-assets,list-images)

Response Headers

API response headers are collected into _meta.headers on each tool result. The debug preset is active by default.

HeaderDescription
cloudinary-collect-headers Control which response headers are returned. Accepts:
debug — rate-limit + request ID (default)
ratelimit — rate-limit headers only
all — every response header
Or a comma-separated list of exact names, prefix:<value>, regex:<pattern>, and preset names
cloudinary-embed-headers Set to true to also include collected headers in the response body as _headers, for clients that don't surface _meta
Tool result structure
{ "_meta": { "headers": { "x-featureratelimit-limit": "5000", "x-featureratelimit-remaining": "4998", "x-featureratelimit-reset": "Thu, 13 Feb 2026 00:00:00 GMT", "x-request-id": "bfeaccc60050594832508590a358a1a4" } }, "content": [{ "type": "text", "text": "{...}" }] }

Available Tools (43)

upload-asset asset-rename generate-archive download-asset-backup delete-asset list-images list-videos list-files get-asset-details asset-update list-tags delete-derived-assets manage-asset-tags manage-asset-context manage-asset-metadata get-usage-details create-asset-relations delete-asset-relations move-folder create-folder delete-folder search-folders search-assets visual-search-assets generate-image generate-image-from-images get-generation-task list-collections create-collection get-collection update-collection delete-collection list-collection-assets add-collection-assets remove-collection-assets publish-collection list-collection-public-pages get-collection-public-page update-collection-public-page unpublish-collection-public-page get-tx-reference transform-asset sign-upload
destructiveidempotentopenWorldreadOnly

Uploads an asset to your Cloudinary product environment from a remote HTTP/HTTPS URL, a private storage bucket (S3 or Google Storage), or an FTP address.

The asset is stored with backup and revision history. Cloudinary automatically analyzes and saves important data about each asset, such as format, size, resolution, and prominent colors, which is indexed to enable searching on those attributes.

To upload files from your local machine, use the sign-upload tool to obtain signed credentials and POST directly to the Cloudinary Upload API. For large files or bulk uploads, use the Cloudinary CLI (cld uploader upload) or an SDK — both handle chunking, retries, and progress reporting.

Transform media files using transformation syntax in delivery URLs, which creates derived files accessible immediately without re-uploading the original.

ParameterTypeDescription
resource_type Abcstring

The type of resource (image, video, raw, or auto).

upload_request required { }object

The file to upload and associated parameters.

access_control [ ]array

Restricts access to the asset by specifying one or more access types.
The asset is restricted unless at least one listed access type is valid.

access_mode Abcstring

Deprecated. Use access_control instead. Allows the asset to behave as if it's of the authenticated delivery type while still using the default 'upload' type in delivery URLs. The asset can later be made public by changing its access_mode via the Admin API, without having to update any delivery URLs.

accessibility_analysis ◉boolean

Whether to return accessibility analysis values for the image.

allowed_formats Abcstring

A comma-separated list of file formats that are allowed for uploading. Files of other types will be rejected. The formats can be any combination of image types, video formats or raw file extensions.
Note: You can also add the format parameter to convert other file types instead of rejecting them. In this case, only files that would normally be rejected are converted, any file format allowed for upload won't be converted.

asset_folder Abcstring

The asset folder to assign to the asset.

async ◉boolean

When set to true, returns the uploaded asset's public_id immediately in the response, before the upload is completed (asynchronously). Default: false.

auto_chaptering ◉boolean

Whether to trigger automatic generation of video chapters. Chapters will be generated and saved as a .vtt file with -chapters appended to the public ID of the video. You can enable chapters as part of the Cloudinary Video Player. Relevant for videos only.

auto_tagging #number

Automatically assigns tags to an asset according to detected objects or categories with a confidence score higher than the specified value.
Use together with the detection parameter for:
Use together with the categorization parameter for:

  • Cloudinary AI Content Analysis
  • Amazon Rekognition Celebrity Detection
  • Google Automatic Video Tagging
  • Google Auto Tagging
  • Imagga Auto Tagging
  • Amazon Rekognition Auto Tagging
auto_transcription ◉boolean{ }object

background_removal Abcstring

Automatically remove the background of an image using an add-on.
Optionally append a template suffix (e.g., cloudinary_ai:fine_edges).
Relevant for images only.

  • Set to cloudinary_ai to use the deep-learning based Cloudinary AI Background Removal add-on.
  • Note: this feature has been superseded by background removal on the fly.
  • Set to pixelz to use the human-powered Pixelz Remove-The-Background Editing add-on service.
backup ◉boolean

Whether to backup the uploaded asset. When set to true, backs up uploaded assets to a secondary storage bucket.

categorization Abcstring

A comma-separated list of the categorization add-ons to run on the asset.
Set to google_tagging, google_video_tagging, imagga_tagging and/or aws_rek_tagging
to automatically classify the scenes of the uploaded asset.
Optionally append a language code suffix (e.g., google_tagging:fr).

cinemagraph_analysis ◉boolean

Whether to return a cinemagraph analysis value for the media asset between 0 and 1, where 0 means the asset is not a cinemagraph and 1 means the asset is a cinemagraph. Relevant for animated images and video only. A static image will return 0.

clear_invalid ◉boolean

Whether to clear metadata field values that have become invalid due to a change in metadata rules. If false, the API returns an error if any existing metadata value is no longer valid. Default: false.

colors ◉boolean

Whether to retrieve predominant colors & color histogram of the uploaded image. Note: If all returned colors are opaque, then 6-digit RGB hex values are returned. If one or more colors contain an alpha channel, then 8-digit RGBA hex quadruplet values are returned.

context Abcstring

A pipe-separated list of key-value pairs of general textual context metadata to attach to the asset (e.g., "alt=My image|caption=Nice photo"). A literal = or | inside a value must be escaped with a prepending backslash, and a literal backslash must be doubled. A double quote must not be escaped.

custom_coordinates Abcstring

Custom coordinates as comma-separated values, with multiple coordinates separated by pipes.

detection Abcstring

Invokes the relevant add-on to return a list of detected content.
Set to:

  • <content-aware model>_[<version>] (e.g. coco_v2) to return a list of detected content using the Cloudinary AI Content Analysis add-on. Can be used together with the auto_tagging parameter to apply tags automatically.
  • captioning to analyze an image and suggest a caption based on the image's contents.
  • iqa to analyze the quality of an image.
  • watermark-detection to detect watermarks in an image.
  • adv_face to return a list of facial attributes using the Advanced Facial Attribute Detection add-on.
  • aws_rek_face to return a list of detected celebrities and facial attributes using the Amazon Rekognition Celebrity Detection add-on. Can be used together with the auto_tagging parameter to apply tags automatically.
discard_original_filename ◉boolean

Whether to discard the name of the original uploaded file. Relevant when delivering assets as attachments (setting the flag disposition:attachment in delivery URLs).

display_name Abcstring

A display name for the asset.

eager Abcstring

A list of transformations to eagerly generate for the asset. Accepts either a single transformation or a pipe-separated list of transformations.

eager_async ◉boolean

Whether to generate the eager transformations asynchronously in the background after the upload request is completed rather than before the upload is completed.

eager_notification_url Abcstring

A URL to notify when eager transformations are completed.

eval Abcstring

Allows you to modify upload parameters by specifying custom logic with JavaScript. This can be useful for conditionally adding tags, contextual metadata, structured metadata or eager transformations depending on specific criteria of the uploaded file.

face_coordinates Abcstring

Face coordinates as comma-separated values, with multiple faces separated by pipes.

faces ◉boolean

Whether to detect faces in the asset.

file required Abcstring

A remote HTTP/HTTPS URL, private storage bucket URL (S3 or Google Storage), or FTP address of the file to upload.

To upload a file from your local machine, use the sign-upload tool instead.

filename_override Abcstring

Overrides the originally uploaded asset's file name in downloads that use flags like fl_attachment or fl_force_original.

folder Abcstring

Folder name where the uploaded asset will be stored. This parameter applies when using the Admin API, or when specifying the upload preset for unsigned uploading with the Upload API.

format Abcstring

An optional format to convert the uploaded asset to before saving in the cloud.

headers Abcstring

An HTTP header or a list of headers lines for adding as response HTTP headers when delivering the asset to your users. Supported headers: Link, Authorization, X-Robots-Tag.

invalidate ◉boolean

Whether to invalidate CDN cache copies of a previously uploaded asset that shares the same public ID. Default: false.

media_metadata ◉boolean

Whether to return IPTC, XMP, and detailed Exif metadata of the uploaded asset in the response.
Supported for images, video, and audio.

  • Returned metadata for images includes: PixelsPerUnitX, PixelsPerUnitY, PixelUnits, Colorspace, and DPI.
  • Returned metadata for audio and video includes: audio_codec, audio_bit_rate, audio_frequency, channels, channel_layout.
  • Additional metadata for video includes: pix_format, codec, level, profile, video_bit_rate, dar.
metadata Abcstring{ }object

A pipe-separated list or a map of custom metadata fields (by external_id) and the values to assign to each of them. The = " and | characters can be supported as values when escaped with a prepended backslash (\). For a multi-select field, you can set a maximum of 3000 different metadata values on an asset.

moderation Abcstring

For all asset types, set to:

  • manual to add the uploaded asset to a list of pending assets that can be moderated using the Admin API or the Cloudinary Console.
  • perception_point to automatically moderate the uploaded asset using the Perception Point Malware Detection add-on.

For images only, set to:

  • webpurify to automatically moderate the uploaded image using the WebPurify Image Moderation add-on.
  • aws_rek to automatically moderate the uploaded image using the Amazon Rekognition AI Moderation add-on.
  • duplicate:<threshold> to detect if the same or a similar image already exists using the Cloudinary Duplicate Image Detection add-on. Set threshold to a float greater than 0 and less than or equal to 1.0 to specify how similar an image needs to be in order to be considered a duplicate. Set threshold to 0 to add an image to the index of images that are searched when duplicate detection is invoked for another image.

For videos only, set to:

  • aws_rek_video to automatically moderate the uploaded video using the Amazon Rekognition Video Moderation add-on.
  • google_video_moderation automatically moderate the uploaded video using the Google AI Video Moderation add-on.

To request multiple moderations in a single API call:

  • Send the desired list of moderations as a pipe-separated string with manual moderation, if relevant, being last.

Note: Rejected assets are automatically invalidated on the CDN within approximately ten minutes.

notification_url Abcstring

A URL to notify when the asset is ready.

ocr Abcstring

Set to adv_ocr to extract all text elements in an image as well as the bounding box
coordinates of each detected element using the OCR text detection and extraction add-on.
Optionally append options (e.g., adv_ocr:document).

on_success Abcstring

Allows you to update an asset by specifying custom logic with JavaScript that is executed after the upload to Cloudinary is completed successfully. This can be useful for conditionally adding tags, contextual metadata, and structured metadata, depending on the results of using the detection parameter on upload.

overwrite ◉boolean

Whether to overwrite existing assets with the same public ID. When set to false, return immediately if an asset with the same public ID already exists. Default: true (when using unsigned upload, the default is false and cannot be changed to true).

phash ◉boolean

Whether to return the perceptual hash (pHash) on the uploaded image for image similarity detection.

proxy Abcstring

A proxy to use for fetching remote URLs. The format should be http://hostname:port.

public_id Abcstring

The identifier that is used for accessing the uploaded asset. If not specified, a unique ID is generated automatically.

public_id_prefix Abcstring

A string or path that's automatically prepended to the public_id with a forward slash. The value can contain the same characters as the public_id including additional forward slashes. This prefix can be useful to provide context and improve the SEO of an asset's filename in the delivery URL, but the value does not impact the location where the asset is stored.

quality_analysis ◉boolean

Whether to return a quality analysis value for the image between 0 and 1, where 0 means the image is blurry and out of focus and 1 means the image is sharp and in focus. Relevant for images only.

raw_convert Abcstring

Generates a related file based on the uploaded file.

  • Set to aspose to automatically create a PDF or other image format from a raw Office document using the Aspose Document Conversion add-on. (Asynchronous)
  • Set to google_speech to instruct the Google AI Video Transcription add-on to generate an automatic transcript raw file from an uploaded video. (Asynchronous)
  • Set to extract_text to extract all the text from a PDF file and store it in a raw JSON file with a public ID in the format: [pdf_public_id].extract_text.json. The full URL of the generated JSON file is included in the API response. Unlike the above raw_convert options, this option doesn't require registering for an add-on.(Synchronous)
  • Set to azure_video_indexer to generate AI-powered video insights from Microsoft Azure. (Asynchronous)
regions Abcstring{ }object

Named region coordinate groups for cropping with region gravity.
Can be a JSON-encoded string or an object. Each region name may contain
only letters, numbers, or hyphens, and must have at least two coordinate pairs.

responsive_breakpoints [ ]array{ }object

Settings to automatically generate breakpoints for responsive images.

return_delete_token ◉boolean

Whether to return a deletion token in the upload response. The token can be used to delete the uploaded asset within approximately 10 minutes using an unauthenticated API call.

tags Abcstring[ ]array

A comma-separated list of tag names, or an array of tag names.

transformation Abcstring

An incoming transformation to run on the uploaded asset before its storage. In contrast to eager, this parameter is applied before the file is stored.

type Abcstring

The delivery type that defines if and how the uploaded asset is available for public delivery. By default, all uploaded assets are public (upload).

unique_display_name ◉boolean

Whether the display name should be unique.

unique_filename ◉boolean

When set to false and used together with use_filename, if an asset with the same file name already exists, no random characters are appended to the file name. Instead, the asset is overwritten. Default: true (random characters are added to the file name if needed).

upload_preset Abcstring

(Required for unsigned uploading / optional for signed uploading)
Name of an upload preset that you defined for your Cloudinary product environment. An upload preset consists of upload parameters centrally managed using the Admin API or from the Upload Presets page of the Console Settings. An upload preset may be marked as unsigned, which allows unsigned uploading directly from the browser and restricts the optional parameters to: public_id, folder, tags, context, face_coordinates, regions and custom_coordinates.

use_asset_folder_as_public_id_prefix ◉boolean

Whether to add the asset_folder value as a prefix to the public_id value (prepended with a forward slash). This ensures that the public ID path will always match the initial asset folder, and can help to retain the behavior that previously existed in fixed folder mode. However, keep in mind that even when this option is used during upload, an asset with a certain public ID path can later be moved to a completely different asset folder hierarchy without impacting the public ID. This option only ensures path matching for the initial upload. Relevant only when public_id_prefix (or folder) has not been separately specified.

use_filename ◉boolean

Whether to use the original file name of the uploaded asset if available for the public ID. The file name is normalized and random characters are appended to ensure uniqueness if the file name already exists. Default: false.

use_filename_as_display_name ◉boolean

Whether to automatically assign the original filename of the uploaded asset as the asset's display name. Relevant only if the display_name parameter isn't set.

visual_search ◉boolean

Whether to index the image for use with visual searches. Relevant for images only.

destructiveidempotentopenWorldreadOnly

Updates an existing asset's identifier (public ID) and optionally other metadata in your Cloudinary account

ParameterTypeDescription
resource_type required Abcstring

The type of resource (image, video, or raw).

RequestBody required { }object

The rename request parameters.

context ◉boolean

Whether to include contextual metadata in the response. Default is false.

from_public_id required Abcstring

The public ID of the asset to rename.

invalidate ◉boolean

Whether to invalidate CDN cache copies of the renamed asset. Default is false.

metadata ◉boolean

Whether to include structured metadata in the response. Default is false.

notification_url Abcstring

URL to notify when the operation is complete.

overwrite ◉boolean

Whether to overwrite the target asset if it already exists. Default is false.

to_public_id required Abcstring

The new public ID for the asset.

to_type Abcstring

The target delivery type for the renamed asset. If omitted, the delivery type remains unchanged.

type Abcstring

The current delivery type of the asset.

destructiveidempotentopenWorldreadOnly

Creates an archive (ZIP or TGZ file) that contains a set of assets from your product environment.

Creates a downloadable ZIP or other archive format containing the specified resources.

ParameterTypeDescription
resource_type required Abcstring

The type of resource for archive generation (image, video, or raw).

RequestBody required { }object

The archive generation parameters.

allow_missing ◉boolean

Whether to allow missing assets in the archive. If false, the operation will fail if any asset is not found.

asset_folders [ ]arrayAbcstring

A list of asset folder paths to include in the archive, or a single folder path string. Only available when asset folders are enabled for your account.

async ◉boolean

("create" mode only), specifies whether to generate the archive asynchronously.

expires_at #integer

("download" mode only) Unix timestamp indicating when the generated archive URL should expire.

flatten_folders ◉boolean

Whether to flatten all files to be in the root of the archive file.

flatten_transformations ◉boolean

Whether to flatten the folder structure of the derived assets.

fully_qualified_public_ids [ ]array

A list of fully qualified public IDs (resource_type/type/public_id) to include in the archive.

keep_derived ◉boolean

Whether to keep the derived assets used for generating the archive.

mode Abcstring

The method for generating and delivering the archive. Options:
download - Generates and delivers the archive file without storing it
create - Creates and stores the archive as a raw asset, returning URLs in the response
create_and_download - Creates, stores, and delivers the archive file

notification_url Abcstring

("create" mode only), specifies the URL to notify when the archive generation is complete.

prefixes [ ]array

Select all assets where the public ID starts with this prefix.

public_ids [ ]array

The list of public IDs to include in the archive.

search_expression Abcstring

A search expression to select assets to include in the archive.

skip_transformation_name ◉boolean

Whether to skip adding the transformation details to the file names in the archive.

tags [ ]array

Tags to filter which assets to include in the archive. Assets matching any of the specified tags are included.

target_asset_folder Abcstring

The folder in your product environment where the generated archive should be stored.

target_filename Abcstring

The filename for the downloaded archive file. Extension must match target_format (zip or tgz).

target_format Abcstring

The format of the generated archive.

target_public_id Abcstring

The public ID to assign to the generated archive, or the filename of the downloaded archive file.

target_tags [ ]array

A list of tag names to assign to the generated archive.

transformations Abcstring

The transformations to apply to the assets before including them in the archive (separated by "|").

type Abcstring

All supported delivery types.

use_original_filename ◉boolean

Whether to use the original filenames of the assets in the archive instead of public IDs (when available).

destructiveidempotentopenWorldreadOnly

Download a backup copy of an asset

ParameterTypeDescription
asset_id required Abcstring

The asset ID of the resource. Must be a 32-character hexadecimal string.

version_id required Abcstring

The version ID of the backup to download. Must be a 32-character hexadecimal string.

destructiveidempotentopenWorldreadOnly

Delete asset by asset ID

Deletes an asset using its immutable asset ID.

ParameterTypeDescription
request required { }object

The asset to delete and related options.

asset_id required Abcstring

A 32-character hexadecimal asset ID.

invalidate ◉boolean

Whether to invalidate CDN cache. Default is false.

notification_url Abcstring

URL to receive completion notification.

destructiveidempotentopenWorldreadOnly

Get image assets

Retrieves a list of image assets. Results can be filtered by various criteria like tags, prefix, or specific public IDs.

ParameterTypeDescription
type Abcstring

The delivery type to filter by. When omitted, returns assets of all delivery types.

prefix Abcstring

A public_id prefix. When specified, all assets with that prefix are returned.

public_ids [ ]array

An array of public IDs to return.

tags ◉boolean

Whether to include the list of tag names assigned to each asset. Default is false.

next_cursor Abcstring

Cursor for pagination.

max_results #integer

Maximum number of results to return (1-500).

direction Abcstring

The sort direction for the results. Default is "desc".

start_at Abcstring

An ISO-8601 formatted timestamp. When specified, returns resources created since that timestamp. Supported only if neither prefix nor public_ids were passed.

fields Abcstring[ ]array

Additional fields to include in the response. The fields public_id and asset_id are always included.

destructiveidempotentopenWorldreadOnly

Get video assets

Retrieves a list of video assets. Results can be filtered by various criteria like tags, prefix, or specific public IDs.

ParameterTypeDescription
type Abcstring

The delivery type to filter by. When omitted, returns assets of all delivery types.

prefix Abcstring

A public_id prefix. When specified, all assets with that prefix are returned.

public_ids [ ]array

An array of public IDs to return.

tags ◉boolean

Whether to include the list of tag names assigned to each asset. Default is false.

next_cursor Abcstring

Cursor for pagination.

max_results #integer

Maximum number of results to return (1-500).

direction Abcstring

The sort direction for the results. Default is "desc".

start_at Abcstring

An ISO-8601 formatted timestamp. When specified, returns resources created since that timestamp. Supported only if neither prefix nor public_ids were passed.

fields Abcstring[ ]array

Additional fields to include in the response. The fields public_id and asset_id are always included.

destructiveidempotentopenWorldreadOnly

Get raw assets

Retrieves a list of raw assets. Results can be filtered by various criteria like tags, prefix, or specific public IDs.

ParameterTypeDescription
type Abcstring

The delivery type to filter by. When omitted, returns assets of all delivery types.

prefix Abcstring

A public_id prefix. When specified, all assets with that prefix are returned.

public_ids [ ]array

An array of public IDs to return.

tags ◉boolean

Whether to include the list of tag names assigned to each asset. Default is false.

next_cursor Abcstring

Cursor for pagination.

max_results #integer

Maximum number of results to return (1-500).

direction Abcstring

The sort direction for the results. Default is "desc".

start_at Abcstring

An ISO-8601 formatted timestamp. When specified, returns resources created since that timestamp. Supported only if neither prefix nor public_ids were passed.

fields Abcstring[ ]array

Additional fields to include in the response. The fields public_id and asset_id are always included.

destructiveidempotentopenWorldreadOnly

Get resource by asset ID

Returns the details of a single resource specified by its asset ID.

ParameterTypeDescription
asset_id required Abcstring

The asset ID of the resource. Must be a 32-character hexadecimal string.

colors ◉boolean

Whether to include color information (predominant colors and histogram of 32 leading colors). Default: false.

media_metadata ◉boolean

Whether to include IPTC, XMP, and detailed Exif metadata in the response. Default: false.

faces ◉boolean

Whether to include a list of coordinates of detected faces. Default: false.

quality_analysis ◉boolean

Whether to return quality analysis scores for the image. Default: false.

accessibility_analysis ◉boolean

Whether to return accessibility analysis scores for the image. Default: false.

pages ◉boolean

Whether to report the number of pages in multi-page documents (e.g., PDF). Default: false.

phash ◉boolean

Whether to include the perceptual hash (pHash) of the uploaded photo for image similarity detection. Default: false.

coordinates ◉boolean

Whether to include previously specified custom cropping coordinates and faces coordinates. Default: false.

versions ◉boolean

Whether to include details of all the backed up versions of the asset. Default: false.

max_results #integer

Maximum number of derived assets to return. Default: 10.

derived_next_cursor Abcstring

The cursor for the next page of derived assets when there are more derived images than max_results.

destructiveidempotentopenWorldreadOnly

Updates an existing asset's metadata, tags, and other attributes using its asset ID

Updates one or more attributes of a specified resource (asset) by its asset ID. This enables you to update details of an asset by its unique and immutable identifier, regardless of public ID, display name, asset folder, resource type or delivery type. Note that you can also update attributes of an existing asset using the explicit API endpoint.

ParameterTypeDescription
asset_id required Abcstring

The asset ID of the resource. Must be a 32-character hexadecimal string.

ResourceUpdateRequest required { }object

The asset attributes to update.

access_control [ ]array

Restricts access to the asset by specifying one or more access types.
The asset is restricted unless at least one listed access type is valid.

asset_folder Abcstring

The folder where the asset should be placed.

auto_tagging #number

Confidence threshold for auto-tagging.

background_removal Abcstring

The background removal provider to use for the resource. Optionally append a template suffix (e.g., cloudinary_ai:fine_edges).

categorization Abcstring

The type of categorization to perform on the resource. Optionally append a language code suffix (e.g., google_tagging:fr).

clear_invalid ◉boolean

Whether to clear invalid metadata fields. If false, invalid fields will be preserved. Default: false

context Abcstring

A pipe-separated list of key-value pairs of general textual context metadata to attach to the asset (e.g., "alt=My image|caption=Nice photo"). A literal = or | inside a value must be escaped with a prepending backslash, and a literal backslash must be doubled. A double quote must not be escaped.

custom_coordinates Abcstring

Custom coordinates as comma-separated values, with multiple coordinates separated by pipes.

detection Abcstring

The type of detection to perform on the resource.

display_name Abcstring

The display name of the resource.

face_coordinates Abcstring

Face coordinates as comma-separated values, with multiple faces separated by pipes.

metadata Abcstring{ }object

A pipe-separated list or a map of custom metadata fields (by external_id) and the values to assign to each of them. The = " and | characters can be supported as values when escaped with a prepended backslash (\). For a multi-select field, you can set a maximum of 3000 different metadata values on an asset.

moderation_status Abcstring

The moderation status of the resource.

ocr Abcstring

The type of OCR to perform on the resource. Set to adv_ocr, optionally with options (e.g., adv_ocr:document).

quality_override Abcstring

Quality override value that will override any automatic quality transformations.

raw_convert Abcstring

The conversion to apply for raw files (e.g., aspose, google_speech, extract_text).

regions Abcstring

A JSON-encoded object of named groups of coordinate pairs representing regions. Each region name may contain only letters, numbers, or hyphens, and must have at least two coordinate pairs.

tags Abcstring[ ]array

A comma-separated list of tag names, or an array of tag names.

unique_display_name ◉boolean

Whether to ensure the display name is unique across all resources. If false, the operation will fail if a resource with the same display name exists. Default: false

visual_search ◉boolean

Whether to index the resource with visual search. If true, the resource will be indexed for visual search capabilities. Default: false

destructiveidempotentopenWorldreadOnly

Retrieves a list of tags currently applied to assets in your Cloudinary account

Retrieves a comprehensive list of all tags that exist in your product environment for assets of the specified type.

[Cloudinary Admin API documentation](https://cloudinary.com/documentation/admin_api)

ParameterTypeDescription
resource_type required Abcstring

The type of resource (image, video, or raw).

prefix Abcstring

Limit the returned tags to those that start with the specified prefix.

next_cursor Abcstring

Cursor for pagination.

max_results #integer

Maximum number of results to return (1-500).

destructiveidempotentopenWorldreadOnly

Delete derived resources

Deletes derived resources by derived resource ID

ParameterTypeDescription
request required { }object

The derived resource IDs to delete.

derived_resource_ids required [ ]array

Array of derived resource IDs to delete specific derived resources

invalidate ◉boolean

Whether to invalidate the CDN cache for the deleted resources

destructiveidempotentopenWorldreadOnly

Adds, removes, or replaces tags on multiple assets

Applies a tag command to the given assets, addressing them by public ID.

The number of tags multiplied by the number of public IDs must not exceed 10,000.

ParameterTypeDescription
resource_type required Abcstring

The type of resource (image, video, or raw).

tags_update_request required { }object

The tag command, the tags to apply, and the assets to apply them to.

command required Abcstring

The tag operation to apply.

  • add adds the given tags, leaving existing tags untouched.
  • remove removes the given tags, leaving other tags untouched.
  • replace overwrites the full tag list with the given tags.
  • remove_all clears every tag. The tags field is ignored.
public_ids required [ ]array

The public IDs of the assets to apply the operation to. At most 1000 are processed per request; any beyond the first 1000 are ignored rather than rejected. Public IDs that do not exist, or that the caller lacks update permission for, are skipped rather than failing the request, so the returned public_ids may be shorter than the requested list.

tags [ ]array

The tag names to apply. Required for add, remove, and replace; ignored for remove_all. A tag name must not contain a comma.

type Abcstring

The delivery type of the assets to operate on. Defaults to upload.

destructiveidempotentopenWorldreadOnly

Adds or clears contextual metadata on multiple assets

Applies a contextual-metadata command to the given assets, addressing them by public ID.

ParameterTypeDescription
resource_type required Abcstring

The type of resource (image, video, or raw).

context_update_request required { }object

The context command, the metadata to apply, and the assets to apply it to.

command required Abcstring

The contextual-metadata operation to apply.

already present are overwritten; keys not mentioned are left intact. context
is required.

  • add merges the given key-value pairs into each asset's existing context. Keys
  • remove_all clears all contextual metadata. The context field is ignored.
context Abcstring

The key-value pairs to merge. Required for add; ignored for remove_all.
An empty value deletes that key rather than storing an empty string, so "alt=" removes alt while leaving other keys intact. Deletes and sets may be combined: "alt=|owner=new".
A literal = or | inside a value must be escaped with a prepending backslash, and a literal backslash must be doubled. A double quote must not be escaped.

public_ids required [ ]array

The public IDs of the assets to apply the operation to. At most 1000 are processed per request; any beyond the first 1000 are ignored rather than rejected. Public IDs that do not exist, or that the caller lacks update permission for, are skipped rather than failing the request, so the returned public_ids may be shorter than the requested list.

type Abcstring

The delivery type of the assets to operate on. Defaults to upload.

destructiveidempotentopenWorldreadOnly

Sets structured metadata values on multiple assets

Assigns structured metadata field values to the given assets, addressing them by public ID.

Values are merged into each asset's existing structured metadata: fields not mentioned
keep their current values, and an empty value clears the field. Every referenced field
must already exist in the product environment. Conditional metadata rules are evaluated
as part of the update.

ParameterTypeDescription
resource_type required Abcstring

The type of resource (image, video, or raw).

metadata_update_request required { }object

The structured metadata values to assign and the assets to assign them to.

clear_invalid ◉boolean

Whether to clear a value already stored on the asset that is no longer valid — for example because its datasource entry was deleted — instead of failing the update for that asset. Applies only to fields governed by an active conditional metadata rule; an invalid value sent in this request is always rejected. Default is false.

metadata required Abcstring{ }object

A pipe-separated list or a map of custom metadata fields (by external_id) and the values to assign to each of them. The = " and | characters can be supported as values when escaped with a prepended backslash (\). For a multi-select field, you can set a maximum of 3000 different metadata values on an asset.

public_ids required [ ]array

The public IDs of the assets to apply the operation to. At most 1000 are processed per request; any beyond the first 1000 are ignored rather than rejected. Public IDs that do not exist, or that the caller lacks update permission for, are skipped rather than failing the request, so the returned public_ids may be shorter than the requested list.

type Abcstring

The delivery type of the assets to operate on. Defaults to upload.

destructiveidempotentopenWorldreadOnly

Retrieves comprehensive usage metrics and account statistics

A report on the status of product environment usage, including storage, credits, bandwidth, requests, number of resources, and add-on usage. No date parameter needed to get current usage statistics.

ParameterTypeDescription
date Abcstring

The date for which to retrieve usage details (YYYY-MM-DD). If not specified, returns the current usage.

destructiveidempotentopenWorldreadOnly

Add related assets by asset ID

Relates an asset to other assets by their asset IDs, an immutable identifier, regardless of public ID, display name, asset folder, resource type or delivery type. This is a bidirectional process, meaning that the asset will also be added as a related_asset to all the other assets specified. The relation is also a one to many relationship, where the asset is related to all the assets specified, but those assets aren't also related to each other.

ParameterTypeDescription
asset_id required Abcstring

The asset ID of the resource. Must be a 32-character hexadecimal string.

relate_assets_by_asset_id_request required { }object

The asset IDs to relate.

assets_to_relate required [ ]array

Relates the asset to all the assets specified in this array of up to 10 assets, specified by their asset IDs.

destructiveidempotentopenWorldreadOnly

Delete asset relations by asset ID

Unrelates the asset from other assets, specified by their asset IDs, an immutable identifier, regardless of public ID, display name, asset folder, resource type or delivery type. This is a bidirectional process, meaning that the asset will also be removed as a related_asset from all the other assets specified.

ParameterTypeDescription
asset_id required Abcstring

The asset ID of the resource. Must be a 32-character hexadecimal string.

unrelate_assets_by_asset_id_request required { }object

The asset IDs to unrelate.

assets_to_unrelate required [ ]array

Unrelates the asset from all the assets specified in this array of assets, specified by their asset IDs.

destructiveidempotentopenWorldreadOnly

Renames or moves an entire folder (along with all assets it contains) to a new location

Renames or moves an entire folder (along with all assets it contains) to a new location within your Cloudinary media library.

ParameterTypeDescription
folder required Abcstring

The full path of the folder, including any nested folders. Must not be empty, and must not contain double slashes or leading/trailing slashes.

move_folder_request required { }object

The new folder path.

to_folder required Abcstring

The new path for the folder.

destructiveidempotentopenWorldreadOnly

Creates a new empty folder in your Cloudinary media library

Creates a new folder at the specified path

ParameterTypeDescription
folder required Abcstring

The full path of the folder, including any nested folders. Must not be empty, and must not contain double slashes or leading/trailing slashes.

destructiveidempotentopenWorldreadOnly

Deletes an existing folder from your media library

Deletes a folder and all assets within it.

ParameterTypeDescription
folder required Abcstring

The full path of the folder, including any nested folders. Must not be empty, and must not contain double slashes or leading/trailing slashes.

destructiveidempotentopenWorldreadOnly

Searches for folders whose attributes match a given expression

Lists the folders that match the specified search expression. Limited to 2000 results. If no parameters are passed, returns the 50 most recently created folders in descending order of creation time.

ParameterTypeDescription
expression Abcstring

The (Lucene-like) string expression specifying the search query. If not passed, returns all folders (up to max_results).

sort_by [ ]array

Sort order for the results. Each item maps a field name to a direction.

max_results #integer

Maximum number of folders to return (max 500, default 50).

next_cursor Abcstring

The cursor for pagination. Use the next_cursor value from a previous response to get the next page of results.

destructiveidempotentopenWorldreadOnly

Provides a powerful query interface to filter and retrieve assets and their details

Returns a list of resources matching the specified search criteria.

Uses a Lucene-like query language to filter assets by descriptive attributes (public_id, asset_id, filename, display_name, folder / asset_folder, tags, context.<key>), file details (resource_type, type, format, bytes, width, height, duration, pages, aspect_ratio, transparent, grayscale), lifecycle dates (uploaded_at, created_at, taken_at, updated_at, last_updated.<kind>), moderation and lifecycle state (status, moderation_status, moderation_kind), embedded data (image_metadata.*), structured metadata (metadata.<external_id>), and analysis fields (face_count, colors, quality_score, illustration_score, accessibility_analysis.*). Supports sorting, aggregate counts, and complex boolean expressions. See the expression parameter for the full field reference.

Expression syntax

  • Match: field:value (token match) or field=value (exact match). Examples: tags:shirt, tags=cotton.
  • Comparisons: >, <, >=, <= for numbers and dates. Example: bytes>10000000.
  • Ranges: field:[from TO to] inclusive, field:{from TO to} exclusive. Example: width:{200 TO 1028}.
  • Booleans: AND, OR, NOT (uppercase), or + (must), - (must not). NOT must appear between clauses — a bare leading NOT is a parse error; use -field:value to negate the first clause. Group with parentheses: (shirt OR pants) AND clothes.
  • Wildcards: trailing * only, for prefix match (public_id:shoes_*, format:jp*, tags:shirt*). Not supported on folder, asset_folder, resource_type, or type. Leading *, middle *, ?, and bare * (folder:*, context.alt:*) are all parse errors — wildcards cannot be used as a "field is present" probe.
  • Tokenized vs exact fields: tags, filename, display_name, context.<key>, and metadata.<id> match on tokens split by whitespace and punctuation — tags:analysis matches the tag full-analysis. public_id, folder, asset_folder, and format match the whole value — public_id:dog will not match dog_pldcwy; use public_id="dog_pldcwy" (exact) or public_id:dog* (prefix). These exact-match fields still accept a trailing * for prefix match (except folder / asset_folder, where wildcards are ignored).
  • Dates: ISO-8601 in quotes (uploaded_at>"2024-01-15", created_at>"2026-01-01T00:00:00Z") or relative shorthand Nh, Nd, Nw (uploaded_at>1d, created_at:[4w TO 1w]). Send raw </>, never HTML-escaped.
  • Quoting: wrap any value containing a space, colon, or other reserved character (! ( ) { } [ ] ^ ~ ? \ = & < > |) in double quotes, or escape each character with \. Examples: tags:"service:mantels", tags:"brand:openhaul", aspect_ratio:"16:9", folder:"My Folder".

Common mistakes

  • No months or years shorthand. 1m and 1y are not supported; use ISO dates: created_at>"2024-01-01" or created_at:["2024-01-01" TO "2024-04-01"].
  • Use folder: or asset_folder: (singular); folders:, asset_folder_id:, and other invented variants are not valid fields. Pass the exact folder name — wildcards do not apply here.
  • There is no "has any value" / presence probe. folder:*, metadata.alt:*, context.key:*, tags:*, and -tags:* are all parse errors. See *"Which assets have any value for metadata.<id>?"* under Common tasks for workarounds.
  • NOT foo AND bar is a parse error. Write it as bar AND NOT foo or -foo AND bar, and keep every NOT between two clauses (a AND NOT b AND NOT c is fine; NOT b AND NOT c … is not).
  • public_id:dog will not match dog_pldcwy. Use public_id="dog_pldcwy" (exact) or public_id:dog* (prefix).
  • tags=service:mantels fails because the unquoted colon is parsed as a field separator. Use tags="service:mantels" or tags=service\:mantels.
  • Do not HTML-escape operators. Send uploaded_at<1h, not uploaded_at&lt;1h.
  • Do not leave an operand empty (e.g. tags: AND -tags:foo). Omit the empty clause entirely.

Tips

  • Set max_results: 0 to return only total_count and aggregations without any resource payload — useful for counts and aggregation-only queries.
  • total_count is always present in the response; prefer it over running an aggregation just to get a count.
  • aggregate (both simple and range variants) and the metadata, image_metadata, image_analysis values of with_field require a Tier 2 search plan.
  • Range aggregations require each range to include a key label (1–20 chars, [a-zA-Z0-9_-]+) and at least one of from / to.

Common tasks

  • Count matching assets — put the filter in expression with max_results: 0 and read total_count from the response. Works on every tier; no aggregate needed.
  • Preview one matching asset — set max_results: 1; add with_field: ["tags", "context"] (or metadata, Tier 2) to inspect values. Prefer this over fetching and scanning a full page.
  • Distribution of values for a field — Tier 2: aggregate: [format|resource_type|type] for enum counts, or range aggregations on bytes, image_pixels, video_pixels, or duration. Tier 1 fallback: run N small queries with max_results: 0, one per candidate value, and read total_count from each.
  • "Which assets have any value for metadata.<id>?" — not expressible directly (metadata.X:* is a parse error; there is no presence probe). Workarounds: (a) if the field has a known value set, enumerate — metadata.region:(apac OR emea OR amer); (b) query broadly with with_field: ["metadata"] (Tier 2) and filter client-side for entries where the field is set; (c) at ingest time, attach a sentinel tag whenever the field is set, then search by that tag.
  • Newest / largest N — keep the filter in expression and sort explicitly: sort_by: [{uploaded_at: "desc"}] with max_results: 10.
  • Filter by folder — both asset_folder:"parent/child" and folder:"parent/child" match an exact folder path; there is no wildcard or "contains". To query across multiple folders, enumerate: asset_folder:("campaigns/2024" OR "campaigns/2025").
  • Filter by metadata when you only know the label — first call list-metadata-fields to resolve the label to an external_id, then query metadata.<external_id>:value.
  • Multiple independent filters in one turn — prefer one expression with OR / parentheses over firing many parallel calls: metadata.region:apac OR metadata.region:emea in a single request is faster and more reliable than two parallel requests.

Examples

  • tags:shirt AND uploaded_at>1d
  • resource_type:image AND bytes>1000000 AND (format:png OR format:jpg)
  • folder:products AND context.category:electronics
  • tags:"service:mantels" AND -tags:discontinued
ParameterTypeDescription
request required { }object

The search query parameters.

aggregate [ ]array

Fields or ranges to aggregate search results by. Requires a Tier 2 search plan; on Tier 1 the field is accepted but aggregations are omitted from the response.

expression Abcstring

The Lucene-like search expression. Supports token match (:), exact match (=), trailing * for prefix match, ranges ([a TO b], {a TO b}), and comparisons (>, <, >=, <=). Combine terms with uppercase AND, OR, NOT, or +/-. NOT must appear between clauses — a leading NOT is a parse error; use -field:value to negate the first clause. Group with parentheses.

Wrap values containing spaces, colons, or other reserved characters (! ( ) { } [ ] ^ ~ ? \ = & < > |) in double quotes, e.g. tags:"service:mantels", tags:"brand:openhaul", aspect_ratio:"16:9". Send raw </>, never HTML-escaped.

Wildcards are prefix-only (trailing *). A bare * (e.g. folder:*, context.alt:*, metadata.key:*, tags:*, -tags:*) is a parse error — there is no "has any value" / presence probe. Either drop the clause, use a concrete prefix, or filter on a known token.

Dates: ISO-8601 in quotes (uploaded_at>"2024-01-15", created_at>"2026-01-01T00:00:00Z"), or relative shorthand Nh, Nd, Nw (uploaded_at>1d, created_at:[4w TO 1w]).

Supported fields: public_id, asset_id, filename, display_name, folder / asset_folder (singular, not folders), tags, context.<key>, metadata.<external_id>, resource_type, type, format, bytes, width, height, duration, pages, aspect_ratio, transparent, grayscale, status, moderation_status, moderation_kind, uploaded_at, created_at, taken_at, updated_at, last_updated.<kind>, face_count, illustration_score, quality_score. Fields under image_metadata.*, image_analysis.*, quality_analysis.*, and accessibility_analysis.* also require the matching with_field to be returned in the response.

See the [search expressions guide](https://cloudinary.com/documentation/search_expressions.md) for the full reference.

fields Abcstring

A comma-separated list of fields to include in the response.
Notes:

  • This parameter takes precedence over the with_field parameter, so if you want any additional asset attributes returned, make sure to also include them in this list (e.g., tags or context).
  • The following fields are always included in the response: public_id, asset_id, asset_folder, created_at, status, type, and resource_type.
max_results #integer

The maximum number of results to return. Default - 50. Maximum - 500.
Set to 0 to get only total_count and aggregations without any resources in the response — useful for counting or aggregation-only queries.

next_cursor Abcstring

The cursor value to get the next page of results. Available when a previous search returned more results than max_results.

sort_by [ ]array

An array of single-key objects mapping a field to a sort direction. Each object must contain exactly one field name mapped to 'asc' or 'desc'.
Default: [{"created_at": "desc"}].

with_field [ ]array

The additional asset attributes to include in each search result. The fields parameter takes precedence over this parameter. image_metadata, image_analysis, and metadata require a Tier 2 search plan.

destructiveidempotentopenWorldreadOnly

Finds images in your asset library based on visual similarity or content

Returns a list of resources that are visually similar to a specified image. You can provide the source image for comparison in one of three ways:

  • Provide a URL of an image
  • Specify the asset ID of an existing image
  • Provide a textual description
ParameterTypeDescription
request required { }object

The visual search parameters.

destructiveidempotentopenWorldreadOnly

Generate an image from a text prompt

Create any image from a text description with AI: photos, illustrations,
logos, icons, product shots, banners, ads, social posts, concept art,
mockups, and images with readable text. One call gives you the best
image models — Nano Banana, GPT Image, FLUX, Ideogram, Recraft and more.
Leave out model and a strong default is used.

Storage is optional. Get the image at a temporary link without
saving anything to your account, or keep it in your Media Library, ready
to deliver, transform and optimize.

What you get back. Each image comes with its URL, size, format and
the model that made it, either in the response or, for longer jobs, from
a background task you can check or be notified about. Each generation
uses Image Generation credits.

To edit, restyle or combine existing images, use image-to-image
(generate-image-from-images) instead.

ParameterTypeDescription
request required { }object

A JSON object containing the generation request parameters.

async ◉boolean

Whether to perform the generation asynchronously. When true, the API
returns immediately with a 202 and completes in the background. Once
complete, a webhook notification is sent to the specified URL and/or to
the URLs defined in the product environment's settings.

format Abcstring

Desired output image format. Optional; defaults to png when omitted.
Mapped to the closest format the chosen model supports — webp falls
back to png on models that don't support it (e.g. FLUX.2 Pro), and the
request is ignored entirely by models that don't expose a format option
(e.g. Recraft).

image_size { }object

Desired output size, given in one of two mutually exclusive forms:

* DimensionsImageSize: width and height in pixels, for precise
control.
* DeclarativeImageSize: aspect_ratio (and an optional resolution
tier), resolved server-side to the closest size the chosen model
supports. This is the portable form: most providers natively accept
an aspect ratio plus a resolution tier rather than raw pixels.

Omit image_size entirely to use the model's default size.

model { }object

Selects the model, in one of three mutually exclusive forms (omit to use
the default: nano-banana-2, or nano-banana-2-edit for
image-to-image):
* ModelByFamily: family (+ optional tier); the stable-over-time
selector.
* ModelById: an explicit id, pinning one exact model.
* ModelAuto: mode: auto, letting the service choose the model for
the request (+ optional preference).

notification_url Abcstring

The webhook URL to notify when the generation is complete. Only relevant when async is set to true.

prompt required Abcstring

The text description of the image to generate.

seed #integernull

Seed for reproducible generation. Supported by the flux, nano-banana
and ideogram models and by qwen-image-3; silently ignored by the
models that don't support it, which report seed as null in the
response.

target

Where the generated image goes, determined by target_type. Use
temporary when the user only wants the image: a short-lived URL,
nothing saved to their account. Omit it, or use managed_asset, to
store the image permanently in their Media Library. If the caller lacks
upload permission, the image is returned as temporary instead, with a
warning notice.

destructiveidempotentopenWorldreadOnly

Edit or combine images with a text prompt

Edit, restyle or combine existing images with AI, guided by a text
prompt: replace a background, add or remove objects, apply a style, make
on-brand variants, keep a character or product consistent across scenes,
virtual try-on, or extend an image. Pass up to 4 reference images, each
a public HTTPS url or an asset_id from the user's Cloudinary
account, and refer to them in the prompt as [1], [2], …. For a local
file, upload it first and reference it by its asset_id. Leave out
model and a strong default edit model is used; only edit-capable
models are accepted.

Storage is optional. Get the image at a temporary link without
saving anything to your account, or keep it in your Media Library.

What you get back. Each image comes with its URL, size, format and
the model that made it, either in the response or, for longer jobs, from
a background task you can check or be notified about. Each generation
uses Image Generation credits.

ParameterTypeDescription
request required { }object

A JSON object containing the image-to-image generation request parameters.

async ◉boolean

Whether to perform the generation asynchronously. When true, the API
returns immediately with a 202 and completes in the background. Once
complete, a webhook notification is sent to the specified URL and/or to
the URLs defined in the product environment's settings.

format Abcstring

Desired output image format. Optional; defaults to png when omitted.
Mapped to the closest format the chosen model supports — webp falls
back to png on models that don't support it (e.g. FLUX.2 Pro), and the
request is ignored entirely by models that don't expose a format option
(e.g. Recraft).

image_size { }object

Desired output size, given in one of two mutually exclusive forms:

* DimensionsImageSize: width and height in pixels, for precise
control.
* DeclarativeImageSize: aspect_ratio (and an optional resolution
tier), resolved server-side to the closest size the chosen model
supports. This is the portable form: most providers natively accept
an aspect ratio plus a resolution tier rather than raw pixels.

Omit image_size entirely to use the model's default size.

model { }object

Selects the model, in one of three mutually exclusive forms (omit to use
the default: nano-banana-2, or nano-banana-2-edit for
image-to-image):
* ModelByFamily: family (+ optional tier); the stable-over-time
selector.
* ModelById: an explicit id, pinning one exact model.
* ModelAuto: mode: auto, letting the service choose the model for
the request (+ optional preference).

notification_url Abcstring

The webhook URL to notify when the generation is complete. Only relevant when async is set to true.

prompt required Abcstring

The text instruction describing the desired edit / output.

reference_images required [ ]array

Reference images that steer the generation, in order (1-indexed; the
prompt may address them positionally as [1], [2], …). Each entry
is either a managed asset (by asset_id) or an external url. The
platform accepts up to 4; a specific model may accept fewer — the
recraft-v3-edit and mai-image edit models accept 1, and the
grok-imagine and qwen-image edit models accept 3. Exceeding the
selected model's capacity returns 400.

seed #integernull

Seed for reproducible generation. Supported by the flux, nano-banana
and ideogram models and by qwen-image-3; silently ignored by the
models that don't support it, which report seed as null in the
response.

target

Where the generated image goes, determined by target_type. Use
temporary when the user only wants the image: a short-lived URL,
nothing saved to their account. Omit it, or use managed_asset, to
store the image permanently in their Media Library. If the caller lacks
upload permission, the image is returned as temporary instead, with a
warning notice.

destructiveidempotentopenWorldreadOnly

Check the status and result of a generation task

Check on an image generation running in the background: whether it is
pending, processing, completed or failed, and, once it has completed,
the generated images with their URLs, size and format.

ParameterTypeDescription
task_id required Abcstring

The ID of the generation task.

destructiveidempotentopenWorldreadOnly

List collections

Returns the collections the caller may read, most-recently-updated first by default (updated_at desc). Results are paginated: pass the returned next_cursor back to fetch the next page.

ParameterTypeDescription
query Abcstring

Case-insensitive filter on the collection name. Returns collections with a word in their name that starts with this text (for example, sum matches "Summer Campaign").

sort_by Abcstring

Sort expression: <field> <direction>, optionally comma-separated for a multi-key sort (e.g. name asc, created_at desc). field is one of name, created_at, or updated_at, the same field names the response uses, and direction is asc or desc. Defaults to updated_at desc.

max_results #integer

Maximum number of collections to return (1-100, default 20).

next_cursor Abcstring

Opaque cursor from a previous response's next_cursor to fetch the next page.

destructiveidempotentopenWorldreadOnly

Create a collection

Creates a collection under the given product environment and makes the caller the owner.

ParameterTypeDescription
request required { }object

configuration { }object

Configuration for a dynamic collection. Required when creating a dynamic collection, and not allowed for a manual collection.

expression Abcstring

The [search expression](search_expressions) that defines which assets are included in a dynamic collection. Cloudinary evaluates the expression against your product environment's assets, so the collection's contents update as assets begin or stop matching the criteria. In the Media Library, a collection whose expression was set through the API shows it as a single Expression filter; any filters added to the collection there are combined with it using AND.

description Abcstring

Optional description of the collection.

name required Abcstring

Name of the collection.

type Abcstring

Type of the collection. manual holds an explicit asset list and starts empty until you add assets with the Add assets to a collection endpoint; dynamic is defined by a saved filter expression and is populated automatically.

destructiveidempotentopenWorldreadOnly

Get a collection

Returns a single collection by its external ID.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection to retrieve, update, or delete.

destructiveidempotentopenWorldreadOnly

Update a collection

Updates a collection's name, description, and (for dynamic collections) configuration. Only the fields you include in the request are changed. The caller must be allowed to update the collection. A collection's type (manual/dynamic) is fixed at creation and can't be changed.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection to retrieve, update, or delete.

contractUpdateCollectionRequestPayload required { }object

The collection attributes to update. Only the fields you include are changed. A collection's type is set when the collection is created and can't be changed.

configuration { }object

Configuration for a dynamic collection. Required when creating a dynamic collection, and not allowed for a manual collection.

expression Abcstring

The [search expression](search_expressions) that defines which assets are included in a dynamic collection. Cloudinary evaluates the expression against your product environment's assets, so the collection's contents update as assets begin or stop matching the criteria. In the Media Library, a collection whose expression was set through the API shows it as a single Expression filter; any filters added to the collection there are combined with it using AND.

description Abcstringnull

New description for the collection. Send null or an empty string to clear it. Omit to leave the current description unchanged.

name Abcstring

New name for the collection. Omit to leave the current name unchanged.

destructiveidempotentopenWorldreadOnly

Delete a collection

Deletes a collection. The caller must be allowed to update the collection; the underlying assets are not modified or deleted.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection to retrieve, update, or delete.

destructiveidempotentopenWorldreadOnly

List a collection's assets

Returns the assets in a collection, newest first by default. For a manual collection, these are the assets that have been added to it; for a dynamic collection, they're the assets currently matching its filter expression. Only assets the caller has permission to view are included. Results are paginated: pass the returned next_cursor back to fetch the next page.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection whose assets to list, add, or remove.

sort_by Abcstring

Sort expression: <field> <direction>, optionally comma-separated for a multi-key sort (e.g. bytes desc, created_at asc). field is one of created_at, uploaded_at, public_id, display_name, or bytes, and direction is asc or desc. Defaults to created_at desc. When paging with next_cursor, send the same sort_by on every page; a cursor is only valid for the sort it was issued with.

max_results #integer

Maximum number of assets to return (1-100, default 20).

next_cursor Abcstring

Opaque cursor from a previous response's next_cursor to fetch the next page. Send it with the same sort_by (and max_results) as the request that returned it.

destructiveidempotentopenWorldreadOnly

Add assets to a collection

Adds assets to an existing collection. The caller must be allowed to update the collection and view the assets.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection whose assets to list, add, or remove.

RequestBody required [ ]array

destructiveidempotentopenWorldreadOnly

Remove assets from a collection

Removes the specified assets from an existing collection. The caller must be allowed to update the collection. Assets that are not in the collection are ignored, and the underlying assets are not modified or deleted.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection whose assets to list, add, or remove.

RequestBody required [ ]array

destructiveidempotentopenWorldreadOnly

Publish a collection

Creates a shareable public page for the collection and returns its URL.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection to create or list public pages for.

contractCreatePublicPageRequestPayload required { }object

Settings for the public page. Every field is optional; omitted fields use their documented default.

available_from Abcstringnull

When the page becomes active. If omitted or null, the page is active immediately.

create_download_transformations ◉booleannull

When true, any name in download_transformations that isn't yet set as a transformation template is set as one automatically. It then appears in the Console's templates list and counts toward your product environment's template limit. When false or omitted, the request instead fails with download_transformation_not_available if any listed name isn't yet set as a transformation template, and nothing is changed.

download_transformations [ ]arraynull

Named transformations that viewers of the public page can apply when downloading assets, referenced by name (see the Admin API's [Get transformations](admin_api#get_transformations) endpoint to list the named transformations in your product environment). By default, each name must already be set as a transformation template; set create_download_transformations to true to set any listed name that isn't one yet automatically. Omit or pass null to leave the page without download transformations. At most 200 entries.

expires_at Abcstringnull

When the page expires. If omitted or null, the page never expires.

name Abcstringnull

Optional display name for the public page.

show_download_original_option ◉booleannull

Whether viewers can download the original asset. Omit to use the account default set by an administrator in the [Media Library Preferences](dam_admin_media_library_options#download_options_for_external_sharing).

destructiveidempotentopenWorldreadOnly

List a collection's public pages

Returns the public pages (shareable links) that have been created for the collection.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection to create or list public pages for.

destructiveidempotentopenWorldreadOnly

Get a public page

Returns a single public page of a collection by its external ID.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection the public page belongs to.

public_page_id required Abcstring

External ID of the public page.

destructiveidempotentopenWorldreadOnly

Update a public page

Updates the settings of a collection's public page and returns the updated page. Protecting a page (protection_mode: email_otp) requires the secured-sharing feature on your plan; otherwise the request fails with 403. Invalid protection settings fail with 400 and error code invalid_protection_settings, listing every problem found.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection the public page belongs to.

public_page_id required Abcstring

External ID of the public page.

contractUpdatePublicPageRequestPayload required { }object

Partial-update payload. Only the fields you include are forwarded and changed; any field you omit is left unchanged. Sending null does not clear a value.

allow_any ◉booleannull

Whether any email address is allowed to access the page when it is protected. After the update, an email_otp page needs allow_any: true or at least one entry in allowed_emails or allowed_domains; otherwise the request fails with 400 invalid_protection_settings. Omit to leave the current value unchanged.

allowed_domains [ ]arraynull

Email domains allowed to access the page when it is protected, as bare lowercase domains such as example.com. The list replaces the current one; send an empty array to clear it (the page must still satisfy the allow_any rule). Together with allowed_emails, at most 500 entries. Omit to leave the current value unchanged.

allowed_emails [ ]arraynull

Email addresses allowed to access the page when it is protected. The list replaces the current one; send an empty array to clear it (the page must still satisfy the allow_any rule). Together with allowed_domains, at most 500 entries. Omit to leave the current value unchanged.

available_from Abcstringnull

New activation time for the page. Omit to leave the current value unchanged.

create_download_transformations ◉booleannull

When true, any name in download_transformations that isn't yet set as a transformation template is set as one automatically. It then appears in the Console's templates list and counts toward your product environment's template limit. When false or omitted, the request instead fails with download_transformation_not_available if any listed name isn't yet set as a transformation template, and nothing is changed.

custom_layout_url Abcstringnull

URL of a custom HTML page in your product environment to use in place of the public page's default design. It must be an https URL on a cloudinary.com host that belongs to this product environment, at most 2048 bytes. Setting it requires the custom collection layout feature on your plan; otherwise the request fails with 403. Pass an empty string to return to the default design. Omit to leave the current value unchanged.

download_transformations [ ]arraynull

Named transformations that viewers of the public page can apply when downloading assets, referenced by name (see the Admin API's [Get transformations](admin_api#get_transformations) endpoint to list the named transformations in your product environment). The list replaces the page's current download transformations; pass an empty list to remove them all. Omit to leave the current value unchanged. At most 200 entries.

expires_at Abcstringnull

New expiry time for the page. Omit to leave the current value unchanged.

name Abcstringnull

New display name for the public page. Omit to leave the current value unchanged.

protection_mode Abcstringnull

Secured-sharing protection mode. none removes protection and clears the allowed emails, domains and allow_any. email_otp protects the page so viewers must verify an allowed email address with a one-time passcode; a protected page needs at least one allowed email or domain, or allow_any: true. Omit to leave the current mode unchanged: on a protected page the allowlist fields below then update its allowlist, but on an unprotected page they are ignored, so send email_otp to protect it.

show_download_original_option ◉booleannull

Whether viewers may download the original asset. Omit to leave the current value unchanged.

destructiveidempotentopenWorldreadOnly

Unpublish a collection's public page

Deletes a collection's public page so it's no longer shareable. The collection and its assets aren't changed or deleted.

ParameterTypeDescription
collection_id required Abcstring

External ID of the collection the public page belongs to.

public_page_id required Abcstring

External ID of the public page.

destructiveidempotentopenWorldreadOnly

Get Cloudinary transformation rules documentation from official docs

🚨 WHEN TO USE:

  • MANDATORY before creating, modifying, or discussing Cloudinary transformations
  • REQUIRED when user asks for image/video effects, resizing, cropping, filters, etc.
  • NOT needed for simple asset management (upload, list, delete, etc.)
  • ⚠️ CALL ONLY ONCE per session - documentation doesn't change, reuse the knowledge

🚨 STRICT REQUIREMENTS (when transformations are involved):

  • MUST call this tool BEFORE any transformation-related task (but only once)
  • MUST read and understand the returned documentation
  • DO NOT attempt transformations without consulting this reference
  • DO NOT make up transformation parameters
  • DO NOT guess syntax - only use documented parameters
  • DO NOT call this tool multiple times - the docs are static, remember them

This tool returns the complete, authoritative Cloudinary transformation reference that contains all valid parameters, syntax rules, and best practices.

ParameterTypeDescription
destructiveidempotentopenWorldreadOnly

Generate derived transformations for existing assets using Cloudinary's explicit API with eager transformations

⚠️ CRITICAL PREREQUISITES:
1. MUST call get-tx-reference tool first
2. MUST validate transformation syntax against official docs
3. MUST use only documented parameters from the reference
4. MUST follow proper URL component structure (slashes between components, commas within)

📋 VALIDATION CHECKLIST:

  • ✅ Called get-tx-reference tool
  • ✅ Verified all parameters exist in official docs
  • ✅ Used correct syntax (e.g., f_auto/q_auto not f_auto,q_auto)
  • ✅ Applied proper component chaining rules
  • ✅ Included crop mode when using width/height

This tool creates actual derived assets on Cloudinary using the explicit API.

ParameterTypeDescription
publicId required Abcstring

The public ID of the existing asset to transform

transformations required Abcstring

VALIDATED transformation string using ONLY parameters from get-tx-reference docs. Examples: 'c_fill,w_300,h_200' or 'e_sepia/a_90'. MUST follow component rules: commas within components, slashes between components.

resourceType Abcstring

The resource type of the asset

invalidate ◉boolean

Whether to invalidate cached versions

readOnlydestructiveidempotentopenWorld

Use this tool when the user wants to upload a file to Cloudinary directly from their own machine or environment. It signs Upload API parameters so the caller can POST files straight to the Cloudinary Upload API — no API secret required on the client side.

NOT suitable for large files (>100 MB) or bulk uploads — direct the user to the Cloudinary CLI (cld uploader upload) or an SDK instead, which handle chunking, retries, and progress reporting.

Returns one credential object per input entry:
upload_params — serialized params to echo verbatim as form fields (includes timestamp)
api_key — Cloudinary API key
signature — HMAC signature over upload_params; invalidated if any field is changed
host — Upload API hostname (may differ from api.cloudinary.com for regional/enterprise accounts)
cloud_name — Cloudinary cloud name

Send only signable params in the input (public_id, folder, tags, context, metadata, eager, transformation, …). Do not include file, resource_type, api_key, or signature — these are not part of the signed parameter set and will be ignored if passed.

To upload after signing, POST multipart/form-data to:
https://<host>/v1_1/<cloud_name>/<resource_type>/upload
Include your file plus api_key, signature, and EVERY key from upload_params as its own form field. Any added, dropped, renamed, or re-serialized field invalidates the signature. resource_type (image/video/raw/auto) is part of the URL, not upload_params.

Example (all upload_params keys must appear — shown here with public_id and timestamp only for brevity; include every key your upload_params actually contains):
curl https://<host>/v1_1/<cloud_name>/image/upload \
-F 'file=@"/path/to/photo.jpg"' \
-F 'api_key=<api_key>' -F 'signature=<signature>' \
-F 'timestamp=<upload_params.timestamp>' \
-F 'public_id=<upload_params.public_id>' # one -F per upload_params key

IMPORTANT — the file= argument MUST use two quoting layers: single-quotes around the entire -F value (shell), double-quotes around the path (curl): -F 'file=@"<path>"'. Paths with spaces or special characters are common and will be word-split by the shell if unquoted, silently truncating the filename at the first space.

ParameterTypeDescription
uploads required [ ]array

One or more sets of Cloudinary Upload API parameters to sign. Returns one signed credential object per entry, in the same order. Only genuine Upload API params are signed; file, resource_type, api_key, and signature are excluded.