# Cloudinary Integration via LowCodeAPI

**Last Updated**: February 10, 2026

## Overview
Image and video management

**Categories:**
- {'id': 'cloud-storage', 'name': 'Cloud Storage', 'description': 'File storage, cloud storage, and content delivery services', 'priority': 5}

## Base Endpoint
https://api.lowcodeapi.com/cloudinary

**Important**: Always include the provider name in the URL path after `api.lowcodeapi.com/`

## Authentication
**Type:** TOKEN

**Official Documentation:** https://cloudinary.com/documentation/admin_api

## URL Format (Important)

LowCodeAPI supports two URL formats. **Always try the New Format first**, then fall back to Old Format if needed.

### New Format (Priority)
- Path parameters stay in the URL path
- Do NOT include path parameters as query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/{id}?api_token=XXX`

### Old Format (Fallback)
- Path parameters become query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/id?id={id}&api_token=XXX`

### Decision Flow for AI Agents
1. Always use **New Format** first - keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider

## API Categories

## Common Endpoints

### Get root folders

**Method:** GET
**LowCodeAPI Path:** /v1_1/{cloud_name}/folders

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/folders?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/folders?cloud_name={cloud_name}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/folders?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/admin_api#get_root_folders

### Get subfolders

**Method:** GET
**LowCodeAPI Path:** /v1_1/{cloud_name}/folders/{folder}

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/folders/{folder}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/folders/folder?cloud_name={cloud_name}&folder={folder}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |
| folder | string |  |

**Query Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| max_results | number |  |
| next_cursor | String |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/folders/{folder}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/admin_api#get_subfolders

### Create folder

**Method:** POST
**LowCodeAPI Path:** /v1_1/{cloud_name}/folders/{folder}

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/folders/{folder}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/folders/folder?cloud_name={cloud_name}&folder={folder}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |
| folder | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/folders/{folder}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/admin_api#create_folder

### Delete folder

**Method:** DELETE
**LowCodeAPI Path:** /v1_1/{cloud_name}/folders/{folder}

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/folders/{folder}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/folders/folder?cloud_name={cloud_name}&folder={folder}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |
| folder | string |  |

**Example Request (New Format):**

```bash
curl -X DELETE 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/folders/{folder}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/admin_api#delete_folder

### Get metadata field

**Method:** GET
**LowCodeAPI Path:** /v1_1/{cloud_name}/metadata_fields

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/metadata_fields?cloud_name={cloud_name}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/metadata_api#get_metadata_fields

### Get a metadata field by external ID

**Method:** GET
**LowCodeAPI Path:** /v1_1/{cloud_name}/metadata_fields/{external_id}

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields/{external_id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/metadata_fields/external_id?cloud_name={cloud_name}&external_id={external_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |
| external_id | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields/{external_id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/metadata_api#get_a_metadata_field_by_external_id

### Create a metadata field

**Method:** POST
**LowCodeAPI Path:** /v1_1/{cloud_name}/metadata_fields

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/metadata_fields?cloud_name={cloud_name}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| field | object |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/metadata_api#create_a_metadata_field

### Restore entries in a metadata field datasource

**Method:** POST
**LowCodeAPI Path:** /v1_1/{cloud_name}/metadata_fields/{external_id}/datasource_restore

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields/{external_id}/datasource_restore?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/metadata_fields/external_id/datasource_restore?cloud_name={cloud_name}&external_id={external_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |
| external_id | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| external_ids | array |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields/{external_id}/datasource_restore?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/metadata_api#restore_entries_in_a_metadata_field_datasource

### Update a metadata field by external ID

**Method:** PUT
**LowCodeAPI Path:** /v1_1/{cloud_name}/metadata_fields/{external_id}

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields/{external_id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/metadata_fields/external_id?cloud_name={cloud_name}&external_id={external_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |
| external_id | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| field | object |  |

**Example Request (New Format):**

```bash
curl -X PUT 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields/{external_id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/metadata_api#update_a_metadata_field_by_external_id

### Update a metadata field datasource

**Method:** PUT
**LowCodeAPI Path:** /v1_1/{cloud_name}/metadata_fields/{external_id}/datasource

**New Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields/{external_id}/datasource?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/cloudinary/v1_1/cloud_name/metadata_fields/external_id/datasource?cloud_name={cloud_name}&external_id={external_id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cloud_name | string |  |
| external_id | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| entries | object |  |

**Example Request (New Format):**

```bash
curl -X PUT 'https://api.lowcodeapi.com/cloudinary/v1_1/{cloud_name}/metadata_fields/{external_id}/datasource?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://cloudinary.com/documentation/metadata_api#update_a_metadata_field_datasource


## Usage Examples

### Example 1: Upload a File

Uploading a file to storage:

```bash
# Upload a file - no path parameters needed
curl -X POST "https://api.lowcodeapi.com/cloudinary/upload?api_token=YOUR_API_TOKEN" \
  -F "file=@/path/to/your/file.jpg"

# Response returns file ID or URL
```

### Example 2: List Files

```bash
# Get list of all files
curl -X GET "https://api.lowcodeapi.com/cloudinary/files?api_token=YOUR_API_TOKEN"
```

### Example 3: Retrieve Specific File

```bash
# Get specific file by ID
curl -X GET "https://api.lowcodeapi.com/cloudinary/files/{FILE_ID}?api_token=YOUR_API_TOKEN"

# Delete file
curl -X DELETE "https://api.lowcodeapi.com/cloudinary/files/{FILE_ID}?api_token=YOUR_API_TOKEN"
```

## Error Handling

LowCodeAPI returns standard HTTP status codes. Common errors:

| Status Code | Description |
|-------------|-------------|
| 200 | Success - Request completed successfully |
| 400 | Bad Request - Invalid parameters or request body |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Endpoint or resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Provider API error |

All error responses include error details:

```json
{
  "data": {
    "error": {
      "message": "Error description",
      "code": "ERROR_CODE"
    }
  }
}
```

## Complete Endpoint Reference

| Endpoint | Method | Category |
|----------|--------|----------|
| Get root folders | GET | Admin / Folders |
| Get subfolders | GET | Admin / Folders |
| Create folder | POST | Admin / Folders |
| Delete folder | DELETE | Admin / Folders |
| Get metadata field | GET | Structured metadata / Metadata |
| Get a metadata field by external ID | GET | Structured metadata / Metadata |
| Create a metadata field | POST | Structured metadata / Metadata |
| Restore entries in a metadata field datasource | POST | Structured metadata / Metadata |
| Update a metadata field by external ID | PUT | Structured metadata / Metadata |
| Update a metadata field datasource | PUT | Structured metadata / Metadata |
| Delete a metadata field by external ID | DELETE | Structured metadata / Metadata |
| Delete entries in a metadata field datasource | DELETE | Structured metadata / Metadata |
| Get metadata rules | GET | Structured metadata / Conditional metadata rules |
| Create a metadata rule | POST | Structured metadata / Conditional metadata rules |
| Update a metadata rule by id | PUT | Structured metadata / Conditional metadata rules |
| Delete a metadata rule by id | DELETE | Structured metadata / Conditional metadata rules |
| Pings Cloudinary servers | GET | Admin / Ping |
| Lists resources (assets) with a specified tag | GET | Admin / Resources |
| Retrieves resources (assets) with a specified cont... | GET | Admin / Resources |
| Retrieves resources (assets) with a particular sta... | GET | Admin / Resources |
| Return details of the requested resource (asset) a... | GET | Admin / Resources |
| Find the specific assets in your product environme... | GET | Search / Search method |
| Update one or more of the attributes associated wi... | POST | Admin / Resources |
| Restores one or more resources (assets) from backu... | POST | Admin / Resources |
| Update the access_mode of resources (assets) by pu... | POST | Admin / Resources |
| Relates an asset to other assets by public IDs | POST | Admin / Resources |
| Unrelates related assets by public IDs | DELETE | Admin / Resources |
| Deletes resources by public IDs | DELETE | Admin / Resources |
| Deletes resources by tags | DELETE | Admin / Resources |
| Deletes derived resources | DELETE | Admin / Resources |
| Lists the List streaming profiles | GET | Admin / Streaming profiles |
| Lists the details of a single streaming profile by... | GET | Admin / Streaming profiles |
| Create a new streaming profile | POST | Admin / Streaming profiles |
| Update the specified existing streaming profile | PUT | Admin / Streaming profiles |
| Deletes and reverts the specified streaming profil... | DELETE | Admin / Streaming profiles |
| List tags used for a specified resource_type | GET | Admin / Tags |
| List all transformations | GET | Admin / Transformations |
| List details of a single transformation specified ... | GET | Admin / Transformations |
| Create a new named transformation | POST | Admin / Transformations |
| Update a specific transformation | PUT | Admin / Transformations |
| Delete a specified transformation | DELETE | Admin / Transformations |
| List all upload mappings by folder | GET | Admin / Upload mappings |
| List the details of single upload mapping | GET | Admin / Upload mappings |
| Create a new upload mapping folder and its templat... | POST | Admin / Upload mappings |
| Update an existing upload mapping folder with a ne... | PUT | Admin / Upload mappings |
| Delete an upload mapping by folder name | DELETE | Admin / Upload mappings |
| Lists the upload presets defined for your product ... | GET | Admin / Upload presets |
| Lists the details of a single upload preset | GET | Admin / Upload presets |
| Create a new upload preset | POST | Admin / Upload presets |
| Update an existing upload preset | PUT | Admin / Upload presets |
| Delete an existing upload preset | DELETE | Admin / Upload presets |
| Lists product environment usage details | GET | Admin / Usages |
| Invalidate all caches | POST | Media Optimizer / Cache invalidation |
| Warm up the cache | POST | Media Optimizer / Cache warmup |
| Get all domains | GET | Media Optimizer / Domains |
| Get all mapping functions | GET | Media Optimizer / Mapping functions |
| Get details of a mapping function | GET | Media Optimizer / Mapping functions |
| Create a mapping function | POST | Media Optimizer / Mapping functions |
| Update a mapping function | PUT | Media Optimizer / Mapping functions |
| Delete a mapping function | DELETE | Media Optimizer / Mapping functions |
| Get all media sources | GET | Media Optimizer / Media sources |
| Get details of a media source | GET | Media Optimizer / Media sources |
| Create a media source | POST | Media Optimizer / Media sources |
| Update  a media source | PUT | Media Optimizer / Media sources |
| Delete a media source | DELETE | Media Optimizer / Media sources |
| Get optimization profiles | GET | Media Optimizer / Optimization profiles |
| Get optimization profile details | GET | Media Optimizer / Optimization profiles |
| Create an optimization profile | POST | Media Optimizer / Optimization profiles |
| Update an optimization profile | PUT | Media Optimizer / Optimization profiles |
| Delete an optimization profile | DELETE | Media Optimizer / Optimization profiles |
| Ping Media Optimizer servers | GET | Media Optimizer / Ping |
| Get all transformations | GET | Media Optimizer / Transformations |
| Get details of a transformation | GET | Media Optimizer / Transformations |
| Create a named transformation | POST | Media Optimizer / Transformations |
| Update a transformation | PUT | Media Optimizer / Transformations |
| Delete a transformation | DELETE | Media Optimizer / Transformations |
| Get account usage details | GET | Media Optimizer / Usages |
| Get product environments | GET | Provisioning / Product environments |
| Create product environment | POST | Provisioning / Product environments |
| Update product environment | PUT | Provisioning / Product environments |
| Delete product environment | DELETE | Provisioning / Product environments |
| Get user groups | GET | Provisioning / User group |
| Get a user group | GET | Provisioning / User group |
| Get the users in a user group | GET | Provisioning / User group |
| Create a user group | POST | Provisioning / User group |
| Add a user to a group | POST | Provisioning / User group |
| Update a user group | PUT | Provisioning / User group |
| Delete a user group | DELETE | Provisioning / User group |
| Remove a user group | DELETE | Provisioning / User group |
| Get users | GET | Provisioning / Users |
| Get user | GET | Provisioning / Users |
| Create user | POST | Provisioning / Users |
| Update user | PUT | Provisioning / Users |
| Delete user | DELETE | Provisioning / Users |
| Creates a collage from existing assets | POST | Upload / Assets generation |
| Creates a slideshow from existing assets | POST | Upload / Assets generation |
| Creates a video from existing assets | POST | Upload / Assets generation |
| Derives images for the individual pages in a muli-... | POST | Upload / Assets generation |
| Creates a archive file from existing assets | POST | Upload / Assets generation |
| Generates animated images, videos, or PDFs from ex... | POST | Upload / Assets generation |
| Creates a sprite from existing assets | POST | Upload / Assets generation |
| Dynamically generates an image from a given textua... | POST | Upload / Assets generation |
| Uploads an assets to a Cloudinary product envirome... | POST | Upload / Assets management |
| Applies actions to alerady uploaded assets | POST | Upload / Assets management |
| Rename an assets | POST | Upload / Assets management |
| Destroy an assets | POST | Upload / Assets management |
| Gets a specific version of a backed-up assets | GET | Upload / Assets management |
| Remove Context | POST | Upload / Metadata management |
| Adds values to metadata fields | POST | Upload / Metadata management |
| Manages the tags applied to your assets | POST | Upload / Metadata management |

## API Definition Endpoints

You can fetch the complete API specification for this provider:

**New Format (OpenAPI spec):**
```bash
curl 'https://backend.lowcodeapi.com/cloudinary/openapi'
```

**Old Format (API definition):**
```bash
curl 'https://backend.lowcodeapi.com/cloudinary/definition'
```

## Response Format

All responses are wrapped in a `data` key:

```json
{
  "data": {
    // Actual response from provider (object or array)
  }
}
```