Cloudinary

Admin

Endpoints and supported behavior.

Admin manages assets in the current library. usage returns current storage and asset count only.

Guide →

Base URL and authentication

Get resources

GET /cloudinary/v1_1/{library_id}/resources

ParameterLocationTypeDescription
library_idpathstringLibrary ID
prefixquerystringprefix
public_idsquerystring[]Asset public IDs
asset_idsquerystring[]asset ids
asset_folderquerystringOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
keyquerystringkey
valuequerystringvalue
tagsquerystringAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextquerystringCustom text key/value pairs; PATCH replaces the whole map, {} clears it
directionquerystringasc or desc (default); also 1 or -1.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: ResourcePage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
resourcesarray<object>
resources[].asset_idstring
resources[].public_idstring
resources[].display_namestring
resources[].asset_folderstring
resources[].resource_typestring
resources[].typestring
resources[].formatstring
resources[].versionnumber
resources[].version_idstring
resources[].bytesnumber
resources[].etagstring
resources[].widthnumber
resources[].heightnumber
resources[].durationnumber
resources[].pagesnumber
resources[].is_audioboolean
resources[].original_filenamestring
resources[].tagsarray<string>
resources[].contextobject
resources[].created_atstring
resources[].urlstring
resources[].secure_urlstring
resources[].placeholderboolean
resources[].existingboolean
resources[].processingobject
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "resources": [
    {
      "asset_id": "9dfa312ef9bc4b00816339b598b1152c",
      "public_id": "walk-lib-r1-MDP-1791733789929-tagged",
      "display_name": "walk-lib-r1-MDP-1791733789929-tagged",
      "asset_folder": "",
      "resource_type": "image",
      "type": "upload",
      "format": "png",
      "version": 1791733815,
      "version_id": "26cb8171caa5431b8373ad417fd71e32",
      "bytes": 70,
      "etag": "b357a19c87624c7c4d131aeeb4ae677f",
      "width": 1,
      "height": 1,
      "original_filename": "file",
      "processing": {
        "state": "processing",
        "kinds": {
          "embedding": "running",
          "visual": "failed",
          "tagging": "failed"
        },
        "updated_at": "2026-10-11T15:50:21.512Z"
      },
      "created_at": "2026-10-11T15:50:15.996Z",
      "url": "https://media-develop.praxisusercontent.com/lib_d3881a2f54a34cd79121b9d659e8378c/image/upload/v1791733815/walk-lib-r1-MDP-1791733789929-tagged.png",
      "secure_url": "https://media-develop.praxisusercontent.com/lib_d3881a2f54a34cd79121b9d659e8378c/image/upload/v1791733815/walk-lib-r1-MDP-1791733789929-tagged.png",
      "placeholder": false
    },
    {
      "asset_id": "85b7ef616a8b4719a41777a036ebc1d2",
      "public_id": "walk-lib-r1-MDP-1791733789929-plain",
      "display_name": "walk-lib-r1-MDP-1791733789929-plain",
      "asset_folder": "",
      "resource_type": "image",
      "type": "upload",
      "format": "png",
      "version": 1791733810,
      "version_id": "fdf3c8cd40c2424d86e8397425a69857",
      "bytes": 70,
      "etag": "b357a19c87624c7c4d131aeeb4ae677f",
      "width": 1,
      "height": 1,
      "original_filename": "file",
      "created_at": "2026-10-11T15:50:10.842Z",
      "url": "https://media-develop.praxisusercontent.com/lib_d3881a2f54a34cd79121b9d659e8378c/image/upload/v1791733810/walk-lib-r1-MDP-1791733789929-plain.png",
      "secure_url": "https://media-develop.praxisusercontent.com/lib_d3881a2f54a34cd79121b9d659e8378c/image/upload/v1791733810/walk-lib-r1-MDP-1791733789929-plain.png",
      "placeholder": false
    }
  ]
}

Get resources

GET /cloudinary/v1_1/{library_id}/resources/{resource_type}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
prefixquerystringprefix
public_idsquerystring[]Asset public IDs
asset_idsquerystring[]asset ids
asset_folderquerystringOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
keyquerystringkey
valuequerystringvalue
tagsquerystringAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextquerystringCustom text key/value pairs; PATCH replaces the whole map, {} clears it
directionquerystringasc or desc (default); also 1 or -1.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: ResourcePage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
resourcesarray<object>
resources[].asset_idstring
resources[].public_idstring
resources[].display_namestring
resources[].asset_folderstring
resources[].resource_typestring
resources[].typestring
resources[].formatstring
resources[].versionnumber
resources[].version_idstring
resources[].bytesnumber
resources[].etagstring
resources[].widthnumber
resources[].heightnumber
resources[].durationnumber
resources[].pagesnumber
resources[].is_audioboolean
resources[].original_filenamestring
resources[].tagsarray<string>
resources[].contextobject
resources[].created_atstring
resources[].urlstring
resources[].secure_urlstring
resources[].placeholderboolean
resources[].existingboolean
resources[].processingobject
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/image" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "resources": [
    {
      "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
      "public_id": "examples/pixel",
      "display_name": "pixel",
      "asset_folder": "examples",
      "resource_type": "image",
      "type": "upload",
      "format": "png",
      "version": 1791538435,
      "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
      "bytes": 70,
      "etag": "b357a19c87624c7c4d131aeeb4ae677f",
      "width": 1,
      "height": 1,
      "original_filename": "file",
      "created_at": "2026-10-09T09:33:55.536Z",
      "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "placeholder": false
    }
  ]
}

Get resources

GET /cloudinary/v1_1/{library_id}/resources/{resource_type}/upload

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
prefixquerystringprefix
public_idsquerystring[]Asset public IDs
asset_idsquerystring[]asset ids
asset_folderquerystringOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
keyquerystringkey
valuequerystringvalue
tagsquerystringAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextquerystringCustom text key/value pairs; PATCH replaces the whole map, {} clears it
directionquerystringasc or desc (default); also 1 or -1.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: ResourcePage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
resourcesarray<object>
resources[].asset_idstring
resources[].public_idstring
resources[].display_namestring
resources[].asset_folderstring
resources[].resource_typestring
resources[].typestring
resources[].formatstring
resources[].versionnumber
resources[].version_idstring
resources[].bytesnumber
resources[].etagstring
resources[].widthnumber
resources[].heightnumber
resources[].durationnumber
resources[].pagesnumber
resources[].is_audioboolean
resources[].original_filenamestring
resources[].tagsarray<string>
resources[].contextobject
resources[].created_atstring
resources[].urlstring
resources[].secure_urlstring
resources[].placeholderboolean
resources[].existingboolean
resources[].processingobject
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/image/upload" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "resources": [
    {
      "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
      "public_id": "examples/pixel",
      "display_name": "pixel",
      "asset_folder": "examples",
      "resource_type": "image",
      "type": "upload",
      "format": "png",
      "version": 1791538435,
      "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
      "bytes": 70,
      "etag": "b357a19c87624c7c4d131aeeb4ae677f",
      "width": 1,
      "height": 1,
      "original_filename": "file",
      "created_at": "2026-10-09T09:33:55.536Z",
      "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "placeholder": false
    }
  ]
}

Get resources

GET /cloudinary/v1_1/{library_id}/resources/{asset_id}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
asset_idpathstringAsset ID
prefixquerystringprefix
public_idsquerystring[]Asset public IDs
asset_idsquerystring[]asset ids
asset_folderquerystringOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
keyquerystringkey
valuequerystringvalue
tagsquerystringAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextquerystringCustom text key/value pairs; PATCH replaces the whole map, {} clears it
directionquerystringasc or desc (default); also 1 or -1.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: CloudinaryResource.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
asset_idstring
public_idstring
display_namestring
asset_folderstring
resource_typestring
typestring
formatstring
versionnumber
version_idstring
bytesnumber
etagstring
widthnumber
heightnumber
durationnumber
pagesnumber
is_audioboolean
original_filenamestring
tagsarray<string>
contextobject
context.customobject
created_atstring
urlstring
secure_urlstring
placeholderboolean
existingboolean
processingobject
processing.statestring
processing.kindsobject
processing.updated_atstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/9dfa312ef9bc4b00816339b598b1152c" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "asset_id": "9dfa312ef9bc4b00816339b598b1152c",
  "public_id": "walk-lib-r1-MDP-1791733789929-tagged",
  "display_name": "walk-lib-r1-MDP-1791733789929-tagged",
  "asset_folder": "",
  "resource_type": "image",
  "type": "upload",
  "format": "png",
  "version": 1791733815,
  "version_id": "26cb8171caa5431b8373ad417fd71e32",
  "bytes": 70,
  "etag": "b357a19c87624c7c4d131aeeb4ae677f",
  "width": 1,
  "height": 1,
  "original_filename": "file",
  "tags": [
    "docs"
  ],
  "processing": {
    "state": "processing",
    "kinds": {
      "embedding": "running",
      "visual": "failed",
      "tagging": "failed"
    },
    "updated_at": "2026-10-11T15:50:21.512Z"
  },
  "created_at": "2026-10-11T15:50:15.996Z",
  "url": "https://media-develop.praxisusercontent.com/lib_d3881a2f54a34cd79121b9d659e8378c/image/upload/v1791733815/walk-lib-r1-MDP-1791733789929-tagged.png",
  "secure_url": "https://media-develop.praxisusercontent.com/lib_d3881a2f54a34cd79121b9d659e8378c/image/upload/v1791733815/walk-lib-r1-MDP-1791733789929-tagged.png",
  "placeholder": false
}

Get resources

GET /cloudinary/v1_1/{library_id}/resources/by_asset_ids

ParameterLocationTypeDescription
library_idpathstringLibrary ID
prefixquerystringprefix
public_idsquerystring[]Asset public IDs
asset_idsquerystring[]asset ids
asset_folderquerystringOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
keyquerystringkey
valuequerystringvalue
tagsquerystringAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextquerystringCustom text key/value pairs; PATCH replaces the whole map, {} clears it
directionquerystringasc or desc (default); also 1 or -1.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: ResourcePage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
resourcesarray<object>
resources[].asset_idstring
resources[].public_idstring
resources[].display_namestring
resources[].asset_folderstring
resources[].resource_typestring
resources[].typestring
resources[].formatstring
resources[].versionnumber
resources[].version_idstring
resources[].bytesnumber
resources[].etagstring
resources[].widthnumber
resources[].heightnumber
resources[].durationnumber
resources[].pagesnumber
resources[].is_audioboolean
resources[].original_filenamestring
resources[].tagsarray<string>
resources[].contextobject
resources[].created_atstring
resources[].urlstring
resources[].secure_urlstring
resources[].placeholderboolean
resources[].existingboolean
resources[].processingobject
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/by_asset_ids?asset_ids[]=e5f3de0d8609482d8b351894b133c8cb" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "resources": [
    {
      "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
      "public_id": "examples/pixel",
      "display_name": "pixel",
      "asset_folder": "examples",
      "resource_type": "image",
      "type": "upload",
      "format": "png",
      "version": 1791538435,
      "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
      "bytes": 70,
      "etag": "b357a19c87624c7c4d131aeeb4ae677f",
      "width": 1,
      "height": 1,
      "original_filename": "file",
      "created_at": "2026-10-09T09:33:55.536Z",
      "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "placeholder": false
    }
  ]
}

Get resources

GET /cloudinary/v1_1/{library_id}/resources/by_asset_folder

ParameterLocationTypeDescription
library_idpathstringLibrary ID
prefixquerystringprefix
public_idsquerystring[]Asset public IDs
asset_idsquerystring[]asset ids
asset_folderquerystringOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
keyquerystringkey
valuequerystringvalue
tagsquerystringAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextquerystringCustom text key/value pairs; PATCH replaces the whole map, {} clears it
directionquerystringasc or desc (default); also 1 or -1.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: ResourcePage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
resourcesarray<object>
resources[].asset_idstring
resources[].public_idstring
resources[].display_namestring
resources[].asset_folderstring
resources[].resource_typestring
resources[].typestring
resources[].formatstring
resources[].versionnumber
resources[].version_idstring
resources[].bytesnumber
resources[].etagstring
resources[].widthnumber
resources[].heightnumber
resources[].durationnumber
resources[].pagesnumber
resources[].is_audioboolean
resources[].original_filenamestring
resources[].tagsarray<string>
resources[].contextobject
resources[].created_atstring
resources[].urlstring
resources[].secure_urlstring
resources[].placeholderboolean
resources[].existingboolean
resources[].processingobject
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/by_asset_folder?asset_folder=examples" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "resources": [
    {
      "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
      "public_id": "examples/pixel",
      "display_name": "pixel",
      "asset_folder": "examples",
      "resource_type": "image",
      "type": "upload",
      "format": "png",
      "version": 1791538435,
      "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
      "bytes": 70,
      "etag": "b357a19c87624c7c4d131aeeb4ae677f",
      "width": 1,
      "height": 1,
      "original_filename": "file",
      "created_at": "2026-10-09T09:33:55.536Z",
      "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "placeholder": false
    }
  ]
}

Get resources

GET /cloudinary/v1_1/{library_id}/resources/{resource_type}/tags/{tag}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
tagpathstringTag name
prefixquerystringprefix
public_idsquerystring[]Asset public IDs
asset_idsquerystring[]asset ids
asset_folderquerystringOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
keyquerystringkey
valuequerystringvalue
tagsquerystringAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextquerystringCustom text key/value pairs; PATCH replaces the whole map, {} clears it
directionquerystringasc or desc (default); also 1 or -1.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: ResourcePage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
resourcesarray<object>
resources[].asset_idstring
resources[].public_idstring
resources[].display_namestring
resources[].asset_folderstring
resources[].resource_typestring
resources[].typestring
resources[].formatstring
resources[].versionnumber
resources[].version_idstring
resources[].bytesnumber
resources[].etagstring
resources[].widthnumber
resources[].heightnumber
resources[].durationnumber
resources[].pagesnumber
resources[].is_audioboolean
resources[].original_filenamestring
resources[].tagsarray<string>
resources[].contextobject
resources[].created_atstring
resources[].urlstring
resources[].secure_urlstring
resources[].placeholderboolean
resources[].existingboolean
resources[].processingobject
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/image/tags/docs" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "resources": [
    {
      "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
      "public_id": "examples/pixel",
      "display_name": "pixel",
      "asset_folder": "examples",
      "resource_type": "image",
      "type": "upload",
      "format": "png",
      "version": 1791538435,
      "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
      "bytes": 70,
      "etag": "b357a19c87624c7c4d131aeeb4ae677f",
      "width": 1,
      "height": 1,
      "original_filename": "file",
      "created_at": "2026-10-09T09:33:55.536Z",
      "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "placeholder": false
    }
  ]
}

Get resources

GET /cloudinary/v1_1/{library_id}/resources/{resource_type}/context

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
prefixquerystringprefix
public_idsquerystring[]Asset public IDs
asset_idsquerystring[]asset ids
asset_folderquerystringOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
keyquerystringkey
valuequerystringvalue
tagsquerystringAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextquerystringCustom text key/value pairs; PATCH replaces the whole map, {} clears it
directionquerystringasc or desc (default); also 1 or -1.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: ResourcePage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
resourcesarray<object>
resources[].asset_idstring
resources[].public_idstring
resources[].display_namestring
resources[].asset_folderstring
resources[].resource_typestring
resources[].typestring
resources[].formatstring
resources[].versionnumber
resources[].version_idstring
resources[].bytesnumber
resources[].etagstring
resources[].widthnumber
resources[].heightnumber
resources[].durationnumber
resources[].pagesnumber
resources[].is_audioboolean
resources[].original_filenamestring
resources[].tagsarray<string>
resources[].contextobject
resources[].created_atstring
resources[].urlstring
resources[].secure_urlstring
resources[].placeholderboolean
resources[].existingboolean
resources[].processingobject
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/image/context?key=alt&value=sample" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "resources": [
    {
      "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
      "public_id": "examples/pixel",
      "display_name": "pixel",
      "asset_folder": "examples",
      "resource_type": "image",
      "type": "upload",
      "format": "png",
      "version": 1791538435,
      "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
      "bytes": 70,
      "etag": "b357a19c87624c7c4d131aeeb4ae677f",
      "width": 1,
      "height": 1,
      "original_filename": "file",
      "created_at": "2026-10-09T09:33:55.536Z",
      "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "placeholder": false
    }
  ]
}

Get resources

GET /cloudinary/v1_1/{library_id}/resources/{resource_type}/upload/{public_id}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
public_idpathstringAsset name in delivery URLs; may contain path segments
prefixquerystringprefix
public_idsquerystring[]Asset public IDs
asset_idsquerystring[]asset ids
asset_folderquerystringOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
keyquerystringkey
valuequerystringvalue
tagsquerystringAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextquerystringCustom text key/value pairs; PATCH replaces the whole map, {} clears it
directionquerystringasc or desc (default); also 1 or -1.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: CloudinaryResource.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
asset_idstring
public_idstring
display_namestring
asset_folderstring
resource_typestring
typestring
formatstring
versionnumber
version_idstring
bytesnumber
etagstring
widthnumber
heightnumber
durationnumber
pagesnumber
is_audioboolean
original_filenamestring
tagsarray<string>
contextobject
context.customobject
created_atstring
urlstring
secure_urlstring
placeholderboolean
existingboolean
processingobject
processing.statestring
processing.kindsobject
processing.updated_atstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/image/upload/examples/pixel" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
  "public_id": "examples/pixel",
  "display_name": "pixel",
  "asset_folder": "examples",
  "resource_type": "image",
  "type": "upload",
  "format": "png",
  "version": 1791538435,
  "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
  "bytes": 70,
  "etag": "b357a19c87624c7c4d131aeeb4ae677f",
  "width": 1,
  "height": 1,
  "original_filename": "file",
  "tags": [
    "docs"
  ],
  "context": {
    "custom": {
      "alt": "sample"
    }
  },
  "created_at": "2026-10-09T09:33:55.536Z",
  "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
  "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
  "placeholder": false
}

Get resources by IDs

POST /cloudinary/v1_1/{library_id}/resources/by_asset_ids

ParameterLocationTypeDescription
library_idpathstringLibrary ID

Request body

FieldTypeRequiredDescription
asset_idsstring[]yes—
max_resultsintegernoUp to 500; Search defaults to 100, Admin to 10
next_cursorstringnoNext-page cursor; null or absent at the end

Returns: ResourcePage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
resourcesarray<object>
resources[].asset_idstring
resources[].public_idstring
resources[].display_namestring
resources[].asset_folderstring
resources[].resource_typestring
resources[].typestring
resources[].formatstring
resources[].versionnumber
resources[].version_idstring
resources[].bytesnumber
resources[].etagstring
resources[].widthnumber
resources[].heightnumber
resources[].durationnumber
resources[].pagesnumber
resources[].is_audioboolean
resources[].original_filenamestring
resources[].tagsarray<string>
resources[].contextobject
resources[].created_atstring
resources[].urlstring
resources[].secure_urlstring
resources[].placeholderboolean
resources[].existingboolean
resources[].processingobject
next_cursorstring
curl -X POST "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/by_asset_ids" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"asset_ids":["e5f3de0d8609482d8b351894b133c8cb"]}'

HTTP 200

{
  "resources": [
    {
      "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
      "public_id": "examples/pixel",
      "display_name": "pixel",
      "asset_folder": "examples",
      "resource_type": "image",
      "type": "upload",
      "format": "png",
      "version": 1791538435,
      "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
      "bytes": 70,
      "etag": "b357a19c87624c7c4d131aeeb4ae677f",
      "width": 1,
      "height": 1,
      "original_filename": "file",
      "created_at": "2026-10-09T09:33:55.536Z",
      "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
      "placeholder": false
    }
  ]
}

Update resource

POST /cloudinary/v1_1/{library_id}/resources/{resource_type}/upload/{public_id}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
public_idpathstringAsset name in delivery URLs; may contain path segments

Request body

FieldTypeRequiredDescription
display_namestringnoDisplay name
asset_folderstringnoOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
tagsstring[]noAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextobjectnoCustom text key/value pairs; PATCH replaces the whole map, {} clears it

Returns: CloudinaryResource.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
asset_idstring
public_idstring
display_namestring
asset_folderstring
resource_typestring
typestring
formatstring
versionnumber
version_idstring
bytesnumber
etagstring
widthnumber
heightnumber
durationnumber
pagesnumber
is_audioboolean
original_filenamestring
tagsarray<string>
contextobject
context.customobject
created_atstring
urlstring
secure_urlstring
placeholderboolean
existingboolean
processingobject
processing.statestring
processing.kindsobject
processing.updated_atstring
curl -X POST "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/image/upload/examples/pixel" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"display_name":"Sample image"}'

HTTP 200

{
  "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
  "public_id": "examples/pixel",
  "display_name": "Sample image",
  "asset_folder": "examples",
  "resource_type": "image",
  "type": "upload",
  "format": "png",
  "version": 1791538435,
  "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
  "bytes": 70,
  "etag": "b357a19c87624c7c4d131aeeb4ae677f",
  "width": 1,
  "height": 1,
  "original_filename": "file",
  "tags": [
    "docs"
  ],
  "context": {
    "custom": {
      "alt": "sample"
    }
  },
  "created_at": "2026-10-09T09:33:55.536Z",
  "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
  "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
  "placeholder": false
}

Update resource

PUT /cloudinary/v1_1/{library_id}/resources/{resource_type}/upload/{public_id}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
public_idpathstringAsset name in delivery URLs; may contain path segments

Request body

FieldTypeRequiredDescription
display_namestringnoDisplay name
asset_folderstringnoOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
tagsstring[]noAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextobjectnoCustom text key/value pairs; PATCH replaces the whole map, {} clears it

Returns: CloudinaryResource.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
asset_idstring
public_idstring
display_namestring
asset_folderstring
resource_typestring
typestring
formatstring
versionnumber
version_idstring
bytesnumber
etagstring
widthnumber
heightnumber
durationnumber
pagesnumber
is_audioboolean
original_filenamestring
tagsarray<string>
contextobject
context.customobject
created_atstring
urlstring
secure_urlstring
placeholderboolean
existingboolean
processingobject
processing.statestring
processing.kindsobject
processing.updated_atstring
curl -X PUT "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/image/upload/examples/pixel" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"tags":["docs"]}'

HTTP 200

{
  "asset_id": "e5f3de0d8609482d8b351894b133c8cb",
  "public_id": "examples/pixel",
  "display_name": "Sample image",
  "asset_folder": "examples",
  "resource_type": "image",
  "type": "upload",
  "format": "png",
  "version": 1791538435,
  "version_id": "001fb6336c9b4a4c9e4597b69fdec3cd",
  "bytes": 70,
  "etag": "b357a19c87624c7c4d131aeeb4ae677f",
  "width": 1,
  "height": 1,
  "original_filename": "file",
  "tags": [
    "docs"
  ],
  "context": {
    "custom": {
      "alt": "sample"
    }
  },
  "created_at": "2026-10-09T09:33:55.536Z",
  "url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
  "secure_url": "https://media-develop.praxisusercontent.com/lib_b762c40631bd42278a204cd0370fed36/image/upload/v1791538435/examples/pixel.png",
  "placeholder": false
}

Delete resources

DELETE /cloudinary/v1_1/{library_id}/resources/{resource_type}/upload

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
public_idsquerystring[]Asset public IDs
prefixquerystringprefix
allquerybooleanall
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: DeletedResources.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
deletedobject
partialboolean
next_cursorstring
curl -X DELETE "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/image/upload" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"prefix":"imported/"}'

HTTP 200

{
  "deleted": {},
  "partial": false
}

Delete resources

DELETE /cloudinary/v1_1/{library_id}/resources/{resource_type}/tags/{tag}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
tagpathstringTag name
public_idsquerystring[]Asset public IDs
prefixquerystringprefix
allquerybooleanall
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: DeletedResources.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
deletedobject
partialboolean
next_cursorstring
curl -X DELETE "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/resources/image/tags/remove-me" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{}'

HTTP 200

{
  "deleted": {
    "tagged/pixel": "deleted"
  },
  "partial": false
}

List tags

GET /cloudinary/v1_1/{library_id}/tags/{resource_type}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
resource_typepathimage / video / rawimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
prefixquerystringprefix
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: Tags.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
tagsarray<string>
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/tags/image" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "tags": [
    "docs"
  ]
}

List folders

GET /cloudinary/v1_1/{library_id}/folders

ParameterLocationTypeDescription
library_idpathstringLibrary ID
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: CompatFolders.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
foldersarray<object>
folders[].namestring
folders[].pathstring
total_countnumber
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/folders" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "folders": [
    {
      "name": "examples",
      "path": "examples"
    }
  ],
  "total_count": 1
}

List folders

GET /cloudinary/v1_1/{library_id}/folders/{folder}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
folderpathstringFolder path; may contain slash-separated segments.
max_resultsqueryintegerUp to 500; Search defaults to 100, Admin to 10
next_cursorquerystringNext-page cursor; null or absent at the end

Returns: CompatFolders.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
foldersarray<object>
folders[].namestring
folders[].pathstring
total_countnumber
next_cursorstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/folders/examples" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "folders": [],
  "total_count": 0
}

Create folder

POST /cloudinary/v1_1/{library_id}/folders/{folder}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
folderpathstringFolder path; may contain slash-separated segments.

Returns: FolderResult.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
$object
curl -X POST "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/folders/sample" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{}'

HTTP 200

{
  "success": true,
  "path": "sample"
}

Rename folder

PUT /cloudinary/v1_1/{library_id}/folders/{folder}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
folderpathstringFolder path; may contain slash-separated segments.

Request body

FieldTypeRequiredDescription
to_folderstringyesDestination folder path

Returns: FolderResult.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
$object

Delete folder

DELETE /cloudinary/v1_1/{library_id}/folders/{folder}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
folderpathstringFolder path; may contain slash-separated segments.

Returns: FolderResult.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
$object
curl -X DELETE "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/folders/sample" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{}'

HTTP 200

{
  "success": true,
  "path": "sample"
}

Ping

GET /cloudinary/v1_1/{library_id}/ping

ParameterLocationTypeDescription
library_idpathstringLibrary ID

Returns: Ping.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
statusstring
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/ping" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "status": "ok"
}

Usage

GET /cloudinary/v1_1/{library_id}/usage

ParameterLocationTypeDescription
library_idpathstringLibrary ID

Returns: Usage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
storageobject
storage.usagenumber
objectsobject
objects.usagenumber
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/usage" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "storage": {
    "usage": 70
  },
  "objects": {
    "usage": 1
  }
}

Usage

GET /cloudinary/v1_1/{library_id}/usage/{date}

ParameterLocationTypeDescription
library_idpathstringLibrary ID
datepathstringAccepted date segment; returns current library totals, not historical usage.

Returns: Usage.

Response

HTTP 200

Successful response.

application/json

NameTypeDescription
storageobject
storage.usagenumber
objectsobject
objects.usagenumber
curl -X GET "https://api.deepraxis.ai/cloudinary/v1_1/${LIBRARY_ID}/usage/2026-10-09" \
  -H "Authorization: Bearer $PRAXIS_API_KEY"

HTTP 200

{
  "storage": {
    "usage": 70
  },
  "objects": {
    "usage": 1
  }
}

ResourcePage

FieldTypeRequiredDescription
resourcesSearchResource[]yesAssets in this page
next_cursorstringnoNext-page cursor; null or absent at the end

CloudinaryResource

FieldTypeRequiredDescription
asset_idAssetIdyesAsset ID
public_idstringyesAsset name in delivery URLs; may contain path segments
display_namestringyesDisplay name
asset_folderstringyesOrganizational folder; does not change public_id. Listing by it matches that level only, not subfolders; an empty string is the root
resource_typeResourceTypeyesimage, video (including audio), or raw; auto applies to uploads only, and listing with auto or any other value returns 400
typeDeliveryTypeyesResource or event type
formatstringyesFile format
versionnumberyesDelivery version
version_idstringyesVersion identifier
bytesnumberyesFile size in bytes
etagstringyesFile checksum
widthnumbernoWidth in pixels
heightnumbernoHeight in pixels
durationnumbernoDuration in seconds
pagesnumbernoDocument pages
is_audiobooleannoWhether this is audio
original_filenamestringnoOriginal file name
tagsstring[]yesAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
contextobjectnoCustom text key/value pairs; PATCH replaces the whole map, {} clears it
created_atIsoTimestampyesCreation time
urlstringyesOriginal-file URL
secure_urlstringyesHTTPS delivery URL
placeholderfalseyesAlways false
existingbooleannoWhether an existing asset was returned without overwrite
processingProcessingnoOverall and per-kind processing states

DeletedResources

FieldTypeRequiredDescription
deletedobjectyesDeletion result
partialbooleanyesWhether another page remains
next_cursorstringnoNext-page cursor; null or absent at the end

Tags

FieldTypeRequiredDescription
tagsstring[]yesAsset tags. Uploads accept a comma-separated string (items trimmed, empty items dropped), an array, or repeated tags fields; PATCH accepts an array only and replaces the whole list
next_cursorstringnoNext-page cursor; null or absent at the end

CompatFolders

FieldTypeRequiredDescription
foldersobject[]yesFolders
total_countnumberyesMatching count
next_cursorstringnoNext-page cursor; null or absent at the end

FolderResult

FieldTypeRequiredDescription

Ping

FieldTypeRequiredDescription
status"ok"yesResource status

Usage

FieldTypeRequiredDescription
storageobjectyesStorage usage in bytes
objectsobjectyesAsset count
Export

On this page