Cloudinary Upload API

The Upload API exposes methods for uploading and managing assets, including advanced upload options, CRUD operations on assets, metadata management, eager and on-the-fly transformations, signed and unsigned uploads, and creation of new asset variants from existing originals. Endpoints are versioned under /v1_1/:cloud_name/:resource_type and use HTTP Basic Auth with API key and secret.

OpenAPI Specification

cloudinary-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Cloudinary Upload API
  description: >-
    The Cloudinary Upload API provides server-side endpoints for uploading,
    transforming, renaming, and managing assets (images, videos, raw files)
    in a Cloudinary product environment. Endpoints are versioned under
    /v1_1/{cloud_name}/{resource_type} and use HTTP Basic Auth with API key
    and secret.
  version: 1.0.0
  contact:
    name: Cloudinary Support
    url: https://cloudinary.com/contact
  license:
    name: Proprietary
    url: https://cloudinary.com/tos
x-generated-from: https://cloudinary.com/documentation/image_upload_api_reference
x-generated-by: claude-crawl-2026-05-08
servers:
  - url: https://api.cloudinary.com/v1_1/{cloud_name}
    description: Cloudinary Upload API base
    variables:
      cloud_name:
        default: YOUR_CLOUD_NAME
        description: Your Cloudinary cloud name
security:
  - basicAuth: []
tags:
  - name: Upload
    description: Asset upload and management.
  - name: Transformation
    description: Apply transformations to existing assets.
  - name: Backup
    description: Backup retrieval operations.
paths:
  /{resource_type}/upload:
    post:
      operationId: uploadAsset
      summary: Upload an asset
      description: Upload an image, video, or raw file to the product environment.
      tags:
        - Upload
      parameters:
        - name: resource_type
          in: path
          required: true
          schema:
            type: string
            enum: [image, video, raw, auto]
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadRequest'
      responses:
        '200':
          description: Asset uploaded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
  /{resource_type}/explicit:
    post:
      operationId: explicitAction
      summary: Apply explicit actions to an existing asset
      description: Update tags, metadata, or apply eager transformations on an existing asset.
      tags:
        - Transformation
      parameters:
        - name: resource_type
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenericRequest'
      responses:
        '200':
          description: Action applied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
  /{resource_type}/rename:
    post:
      operationId: renameAsset
      summary: Rename an asset
      description: Modify the public ID of an existing asset.
      tags:
        - Upload
      parameters:
        - name: resource_type
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenericRequest'
      responses:
        '200':
          description: Asset renamed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
  /{resource_type}/destroy:
    post:
      operationId: destroyAsset
      summary: Delete an asset
      description: Permanently delete a single asset by public ID.
      tags:
        - Upload
      parameters:
        - name: resource_type
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenericRequest'
      responses:
        '200':
          description: Asset deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /{resource_type}/tags:
    post:
      operationId: manageTags
      summary: Manage asset tags
      description: Add, remove, or replace tags on existing assets.
      tags:
        - Upload
      parameters:
        - name: resource_type
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenericRequest'
      responses:
        '200':
          description: Tags updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /{resource_type}/context:
    post:
      operationId: manageContext
      summary: Update contextual metadata
      description: Add or remove contextual metadata key-value pairs on assets.
      tags:
        - Upload
      parameters:
        - name: resource_type
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenericRequest'
      responses:
        '200':
          description: Context updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /{resource_type}/metadata:
    post:
      operationId: updateMetadata
      summary: Update structured metadata
      description: Update structured metadata fields for one or more assets.
      tags:
        - Upload
      parameters:
        - name: resource_type
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenericRequest'
      responses:
        '200':
          description: Metadata updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
  /download_backup:
    get:
      operationId: downloadBackup
      summary: Download a backed-up asset version
      description: Retrieve a specific version of a backed-up asset.
      tags:
        - Backup
      parameters:
        - name: asset_id
          in: query
          schema:
            type: string
        - name: version_id
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Backup download URL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponse'
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic auth using API key as username and API secret as password.
  schemas:
    UploadRequest:
      type: object
      properties:
        file:
          type: string
          description: File data, URL, or base64 encoded payload.
        public_id:
          type: string
        timestamp:
          type: integer
        signature:
          type: string
        api_key:
          type: string
      additionalProperties: true
    GenericRequest:
      type: object
      additionalProperties: true
    GenericResponse:
      type: object
      additionalProperties: true
    Asset:
      type: object
      properties:
        asset_id:
          type: string
        public_id:
          type: string
        version:
          type: integer
        format:
          type: string
        resource_type:
          type: string
        secure_url:
          type: string
          format: uri
      additionalProperties: true