openapi: 3.1.0 info: title: Cloudinary Environment Config API version: 0.5.5 license: name: MIT url: https://opensource.org/licenses/MIT contact: name: Cloudinary Support email: support@cloudinary.com url: https://support.cloudinary.com termsOfService: https://cloudinary.com/tou servers: - url: https://{region}.cloudinary.com description: Regional API endpoints for optimal performance. variables: region: default: api description: Regional endpoint selection enum: - api - api-eu - api-ap - url: https://{host} description: Custom domains for enterprise deployments. variables: host: default: api.cloudinary.com description: API host domain. security: - basicAuth: [] - oauth2: - asset_management - upload tags: - name: upload_presets description: Enables you to manage upload presets. - name: upload_mappings description: Enables you to manage upload mappings - name: moderations description: Enables you to manage moderation definitions. - name: streaming_profiles description: Enables you to manage streaming profiles - name: transformations description: Enables you to manage named and unnamed transformations. - name: triggers description: Enables you to manage event triggers and notifications. paths: /v1_1/{cloud_name}/transformations: get: x-speakeasy-mcp: name: list-transformations scopes: - admin title: List Transformations readOnlyHint: true idempotentHint: true summary: Lists all transformation definitions in your account, including named transformations description: | Retrieves a list of all transformations, which can be filtered to show either only named or unnamed transformations. tags: - transformations operationId: listTransformations parameters: - $ref: '#/components/parameters/cloud_name' - name: named in: query required: false schema: type: boolean description: Whether to return only named (`true`) or unnamed (`false`) transformations. If this parameter isn't included, both named and unnamed transformations will be returned. - $ref: '#/components/parameters/max_results_query' - $ref: '#/components/parameters/next_cursor_query' responses: '200': description: Transformations retrieved successfully content: application/json: schema: $ref: '#/components/schemas/transformation_list_response' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/api_error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/api_error' /v1_1/{cloud_name}/transformations/{transformation}: get: x-speakeasy-mcp: name: get-transformation-details scopes: - admin title: Get Transformation Details readOnlyHint: true idempotentHint: true summary: Retrieves details of a specific transformation description: | Retrieves details for a named or unnamed transformation. tags: - transformations operationId: getTransformation parameters: - $ref: '#/components/parameters/cloud_name' - $ref: '#/components/parameters/transformation' responses: '200': description: Transformation details content: application/json: schema: $ref: '#/components/schemas/transformation_info' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/api_error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: Transformation not found content: application/json: schema: $ref: '#/components/schemas/api_error' post: x-speakeasy-mcp: name: create-transformation scopes: - admin title: Create Transformation summary: Creates a new named transformation by assigning a custom name to a set of transformation parameters description: | Creates a new named transformation with the given name and transformation string. tags: - transformations operationId: createTransformation parameters: - $ref: '#/components/parameters/cloud_name' - $ref: '#/components/parameters/transformation_name' requestBody: description: The named transformation definition. required: true content: application/json: schema: $ref: '#/components/schemas/create_request' responses: '200': description: Transformation created content: application/json: schema: $ref: '#/components/schemas/message_response' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/api_error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/api_error' '409': description: Conflict (transformation already exists) content: application/json: schema: $ref: '#/components/schemas/api_error' put: x-speakeasy-mcp: name: update-transformation scopes: - admin title: Update Transformation idempotentHint: true summary: Updates the definition of an existing transformation description: | Updates a named or unnamed transformation. tags: - transformations operationId: updateTransformation parameters: - $ref: '#/components/parameters/cloud_name' - $ref: '#/components/parameters/transformation' requestBody: description: The updated transformation definition. required: true content: application/json: schema: $ref: '#/components/schemas/update_request' responses: '200': description: Transformation updated content: application/json: schema: $ref: '#/components/schemas/message_response' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/api_error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/api_error' delete: x-speakeasy-mcp: name: delete-transformation scopes: - admin title: Delete Transformation destructiveHint: true idempotentHint: true summary: Deletes a named transformation from your account description: | Delete a named or unnamed transformation. Optionally invalidate derived resources generated using the named transformation. tags: - transformations operationId: deleteTransformation parameters: - $ref: '#/components/parameters/cloud_name' - $ref: '#/components/parameters/transformation' - name: invalidate in: query required: false schema: type: boolean description: Invalidate derived resources generated using the deleted transformation from CDN. example: true responses: '200': description: Transformation deleted content: application/json: schema: $ref: '#/components/schemas/message_response' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/api_error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: Transformation not found content: application/json: schema: $ref: '#/components/schemas/api_error' /v1_1/{cloud_name}/upload_presets: parameters: - $ref: '#/components/parameters/cloud_name' post: x-speakeasy-mcp: name: create-upload-preset scopes: - builder title: Create Upload Preset operationId: createUploadPreset summary: Creates a new upload preset with specified configuration settings tags: - upload_presets parameters: [] responses: '200': description: upload preset created content: application/json: schema: $ref: '#/components/schemas/upload_preset_create_response' '400': description: request error content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' '409': description: preset exists error content: application/json: schema: $ref: '#/components/schemas/api_error' requestBody: description: The upload preset configuration. required: true content: application/json: schema: $ref: '#/components/schemas/upload_preset_input' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/upload_preset_input' get: x-speakeasy-mcp: name: list-upload-presets scopes: - builder title: List Upload Presets readOnlyHint: true idempotentHint: true operationId: listUploadPresets summary: Lists all upload presets configured in the account tags: - upload_presets parameters: - name: order_by in: query required: false description: The field to sort presets by. schema: type: string enum: - name - id - created_at - $ref: '#/components/parameters/direction' - $ref: '#/components/parameters/max_results_query' - $ref: '#/components/parameters/next_cursor_query' responses: '200': description: upload presets retrieved content: application/json: schema: $ref: '#/components/schemas/upload_preset_list_response' '400': description: request error content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' /v1_1/{cloud_name}/upload_presets/{name}: parameters: - $ref: '#/components/parameters/cloud_name' - name: name in: path required: true description: The name of the upload preset. schema: type: string get: x-speakeasy-mcp: name: get-upload-preset-details scopes: - builder title: Get Upload Preset Details readOnlyHint: true idempotentHint: true operationId: getUploadPreset summary: Retrieves details of a single upload preset tags: - upload_presets responses: '200': description: upload preset retrieved content: application/json: schema: $ref: '#/components/schemas/upload_preset_detail' '400': description: request error content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: preset not found error content: application/json: schema: $ref: '#/components/schemas/api_error' put: x-speakeasy-mcp: name: update-upload-preset scopes: - builder title: Update Upload Preset idempotentHint: true operationId: updateUploadPreset summary: Updates an existing upload preset's configuration settings tags: - upload_presets parameters: [] responses: '200': description: upload preset updated content: application/json: schema: $ref: '#/components/schemas/upload_preset_mutation_response' '400': description: request error content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: preset not found error content: application/json: schema: $ref: '#/components/schemas/api_error' requestBody: description: The updated upload preset configuration. required: true content: application/json: schema: $ref: '#/components/schemas/upload_preset_input' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/upload_preset_input' delete: x-speakeasy-mcp: name: delete-upload-preset scopes: - builder title: Delete Upload Preset destructiveHint: true idempotentHint: true operationId: deleteUploadPreset summary: Deletes an upload preset from the account tags: - upload_presets responses: '200': description: upload preset deleted content: application/json: schema: $ref: '#/components/schemas/upload_preset_mutation_response' '400': description: request error content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: preset not found error content: application/json: schema: $ref: '#/components/schemas/api_error' /v1_1/{cloud_name}/upload_mappings: parameters: - $ref: '#/components/parameters/cloud_name' get: x-speakeasy-mcp: name: list-upload-mappings scopes: - builder title: List Upload Mappings readOnlyHint: true idempotentHint: true operationId: listUploadMappings summary: Retrieves a list of all upload mapping rules configured in your Cloudinary product environment description: | Returns a list of all upload mappings defined for your account. Upload mappings allow you to map an upload preset to a specific folder and URL template. tags: - upload_mappings parameters: - name: folder in: query required: false description: Get details of a specific mapping by folder name schema: type: string - $ref: '#/components/parameters/next_cursor_query' - $ref: '#/components/parameters/max_results_query' responses: '200': description: Upload mappings retrieved successfully content: application/json: schema: oneOf: - $ref: '#/components/schemas/upload_mapping_list_response' - $ref: '#/components/schemas/upload_mapping' '400': description: Validation error (e.g. invalid next_cursor) content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Authentication error - Invalid API key or secret content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: Mapping not found for the specified folder content: application/json: schema: $ref: '#/components/schemas/api_error' post: x-speakeasy-mcp: name: create-upload-mapping scopes: - builder title: Create Upload Mapping operationId: createUploadMapping summary: Creates a new upload mapping description: Creates a new upload mapping for the specified folder tags: - upload_mappings requestBody: description: The upload mapping folder and URL template. required: true content: application/json: schema: $ref: '#/components/schemas/upload_mapping_input' responses: '200': description: Upload mapping created successfully content: application/json: schema: $ref: '#/components/schemas/upload_mapping_create_response' example: message: created folder: my_folder external_id: 1bce826e-ec50-45c6-9f86-c858948c7158 '400': description: Validation error (e.g. invalid template format) content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Authentication error - Invalid API key or secret content: application/json: schema: $ref: '#/components/schemas/api_error' '409': description: A mapping for this folder already exists content: application/json: schema: $ref: '#/components/schemas/api_error' put: x-speakeasy-mcp: name: update-upload-mapping scopes: - builder title: Update Upload Mapping idempotentHint: true operationId: updateUploadMapping summary: Updates an existing upload mapping by changing its remote URL template for a given folder description: Updates the URL template for an existing folder mapping tags: - upload_mappings requestBody: description: The updated upload mapping folder and URL template. required: true content: application/json: schema: $ref: '#/components/schemas/upload_mapping_input' responses: '200': description: Upload mapping updated successfully content: application/json: schema: $ref: '#/components/schemas/upload_mapping_mutation_response' example: message: updated external_id: 1bce826e-ec50-45c6-9f86-c858948c7158 '400': description: Validation error (e.g. invalid template format) content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Authentication error - Invalid API key or secret content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: No mapping found for the specified folder content: application/json: schema: $ref: '#/components/schemas/api_error' delete: x-speakeasy-mcp: name: delete-upload-mapping scopes: - builder title: Delete Upload Mapping destructiveHint: true idempotentHint: true operationId: deleteUploadMapping summary: Deletes a folder upload mapping description: Permanently deletes the upload mapping for the specified folder tags: - upload_mappings parameters: - name: folder in: query required: true description: The folder name of the mapping to delete schema: type: string responses: '200': description: Upload mapping deleted successfully content: application/json: schema: $ref: '#/components/schemas/upload_mapping_mutation_response' example: message: deleted external_id: 1bce826e-ec50-45c6-9f86-c858948c7158 '401': description: Authentication error - Invalid API key or secret content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: No mapping found for the specified folder content: application/json: schema: $ref: '#/components/schemas/api_error' /v1_1/{cloud_name}/upload_mappings/replace: parameters: - $ref: '#/components/parameters/cloud_name' put: operationId: replaceUploadMappings summary: Replaces all upload mappings tags: - upload_mappings responses: '200': description: upload mappings replaced content: application/json: schema: $ref: '#/components/schemas/message_response' example: message: replaced '400': description: validation error content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' requestBody: description: The complete set of upload mappings to replace existing ones. required: true content: application/json: schema: $ref: '#/components/schemas/replace_upload_mappings_request' /v1_1/{cloud_name}/triggers: parameters: - $ref: '#/components/parameters/cloud_name' get: x-speakeasy-mcp: name: list-triggers scopes: - admin title: List Triggers readOnlyHint: true idempotentHint: true operationId: listTrigger summary: Lists all webhook notification triggers configured for your product environment description: | Retrieves a list of all event triggers and notifications within your product environment. tags: - triggers parameters: - name: event_type in: query required: false description: The type of event that will trigger the notification response. schema: $ref: '#/components/schemas/event_type' responses: '200': description: Triggers retrieved successfully content: application/json: schema: $ref: '#/components/schemas/trigger_list_response' '400': description: Validation error content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: Invalid value a for parameter event_type '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: Invalid credentials post: x-speakeasy-mcp: name: create-trigger scopes: - admin title: Create Trigger operationId: createTrigger summary: Creates a new notification trigger (webhook) by specifying an event type and a destination description: | Creates a new trigger. Your product environment supports triggers up to a maximum determined by multiplying the number of unique event types by the limit of 30 notification URLs. tags: - triggers requestBody: description: The webhook notification trigger to create. required: true content: application/json: schema: $ref: '#/components/schemas/create_trigger_request' responses: '201': description: Trigger created successfully content: application/json: schema: $ref: '#/components/schemas/trigger_info' '400': description: Validation error content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: limit_reached '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: Invalid credentials '409': description: Validation error - Record already exists content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: record_already_exists /v1_1/{cloud_name}/triggers/{id}: parameters: - $ref: '#/components/parameters/cloud_name' - name: id in: path required: true schema: type: string description: The ID of the trigger. example: c2c822dd1aa41ba6d81299df8b5ae949 put: x-speakeasy-mcp: name: update-trigger scopes: - admin title: Update Trigger idempotentHint: true operationId: updateTrigger summary: Updates the callback URL of an existing webhook trigger in your Cloudinary account description: Updates a notification URL for a trigger. tags: - triggers requestBody: description: The updated trigger configuration. required: true content: application/json: schema: $ref: '#/components/schemas/update_trigger_request' responses: '200': description: Trigger updated successfully content: application/json: schema: $ref: '#/components/schemas/message_response' '400': description: Validation error content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: missing_attributes '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: Invalid credentials '404': description: No trigger found with the specified id content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: record_not_found delete: x-speakeasy-mcp: name: delete-trigger scopes: - admin title: Delete Trigger destructiveHint: true idempotentHint: true operationId: deleteTrigger summary: Deletes a notification trigger description: Deletes a trigger. tags: - triggers responses: '200': description: Trigger deleted successfully content: application/json: schema: $ref: '#/components/schemas/message_response' '400': description: Validation error content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: invalid_or_malformed_attribute '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: Invalid credentials '404': description: No trigger found with the specified id content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: record_not_found /v1_1/{cloud_name}/triggers/{id}/test: parameters: - $ref: '#/components/parameters/cloud_name' - name: id in: path required: true schema: type: string description: The ID of the trigger to test. example: c2c822dd1aa41ba6d81299df8b5ae949 post: x-speakeasy-mcp: name: test-trigger scopes: - admin title: Test Trigger Filter readOnlyHint: true idempotentHint: true operationId: testTrigger summary: Tests an existing trigger's filter against sample data description: | Evaluates an existing trigger's filter against provided sample data. Use this endpoint to verify that a trigger's filter will match expected events. tags: - triggers requestBody: description: The test data for the trigger. required: false content: application/json: schema: $ref: '#/components/schemas/test_trigger_request' responses: '200': description: Test completed successfully content: application/json: schema: $ref: '#/components/schemas/test_trigger_response' '400': description: Validation error content: application/json: schema: $ref: '#/components/schemas/api_error' examples: invalid_sample_data: value: error: message: invalid_sample_data_json '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: Invalid credentials '404': description: No trigger found with the specified id content: application/json: schema: $ref: '#/components/schemas/api_error' example: error: message: record_not_found /v1_1/{cloud_name}/streaming_profiles: parameters: - $ref: '#/components/parameters/cloud_name' post: x-speakeasy-mcp: name: create-streaming-profile scopes: - builder title: Create Streaming Profile operationId: createStreamingProfile summary: Creates a new adaptive streaming profile in your Cloudinary account tags: - streaming_profiles parameters: [] responses: '200': description: Streaming profile created content: application/json: schema: $ref: '#/components/schemas/streaming_profile_data_response' '400': description: Invalid request error content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' '409': description: Profile name already exists content: application/json: schema: $ref: '#/components/schemas/api_error' requestBody: description: The streaming profile configuration. required: true content: application/json: schema: $ref: '#/components/schemas/streaming_profile_create' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/streaming_profile_create' get: x-speakeasy-mcp: name: list-streaming-profiles scopes: - builder title: List Streaming Profiles readOnlyHint: true idempotentHint: true operationId: getStreamingProfiles summary: Lists all adaptive streaming profiles (both built-in and custom) defined in your Cloudinary account tags: - streaming_profiles parameters: [] responses: '200': description: Streaming profiles retrieved content: application/json: schema: $ref: '#/components/schemas/streaming_profile_list_response' '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' /v1_1/{cloud_name}/streaming_profiles/{name}: parameters: - $ref: '#/components/parameters/cloud_name' - name: name in: path required: true schema: type: string description: The name of the streaming profile. get: x-speakeasy-mcp: name: get-streaming-profile scopes: - builder title: Get Streaming Profile readOnlyHint: true idempotentHint: true operationId: getStreamingProfile summary: Retrieves the details of a single adaptive streaming profile by its name tags: - streaming_profiles responses: '200': description: Streaming profile retrieved content: application/json: schema: $ref: '#/components/schemas/streaming_profile_data_response' '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: Profile not found content: application/json: schema: $ref: '#/components/schemas/api_error' put: x-speakeasy-mcp: name: update-streaming-profile scopes: - builder title: Update Streaming Profile idempotentHint: true operationId: updateStreamingProfile summary: Modifies an existing adaptive streaming profile's configuration tags: - streaming_profiles parameters: [] responses: '200': description: Streaming profile updated content: application/json: schema: $ref: '#/components/schemas/streaming_profile_update_response' '400': description: Invalid request error content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: Profile not found content: application/json: schema: $ref: '#/components/schemas/api_error' requestBody: description: The updated streaming profile configuration. required: true content: application/json: schema: $ref: '#/components/schemas/streaming_profile_update' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/streaming_profile_update' delete: x-speakeasy-mcp: name: delete-streaming-profile scopes: - builder title: Delete Streaming Profile destructiveHint: true idempotentHint: true operationId: deleteStreamingProfile summary: Delete custom streaming profile or revert built-in profile to the original settings tags: - streaming_profiles responses: '200': description: Streaming profile deleted or reverted content: application/json: schema: $ref: '#/components/schemas/message_response' '400': description: Cannot delete predefined profile content: application/json: schema: $ref: '#/components/schemas/api_error' '401': description: Authentication error content: application/json: schema: $ref: '#/components/schemas/api_error' '404': description: Profile not found content: application/json: schema: $ref: '#/components/schemas/api_error' components: securitySchemes: basicAuth: type: http scheme: basic oauth2: type: oauth2 description: OAuth2 Authorization Code flow for user authentication flows: authorizationCode: authorizationUrl: https://oauth.cloudinary.com/oauth2/auth tokenUrl: https://oauth.cloudinary.com/oauth2/token scopes: asset_management: Allows managing assets, including reading, updating, and deleting. upload: Allows uploading new assets. parameters: cloud_name: name: cloud_name in: path required: true schema: type: string description: The cloud name of your product environment. example: my_cloud max_results_query: name: max_results in: query required: false schema: type: integer minimum: 1 maximum: 500 default: 10 description: The maximum number of results to return. Default is 10. next_cursor_query: name: next_cursor in: query required: false schema: type: string description: The cursor for pagination. Use the next_cursor value from a previous response to get the next page of results. transformation: name: transformation in: path required: true schema: type: string description: | The transformation identifier. Can be either a named transformation (e.g., 'small_profile_thumbnail') or a transformation string (e.g., 'w_100,h_150,c_fill,g_auto'). examples: named: summary: Named transformation value: small_profile_thumbnail string: summary: Transformation string value: w_100,h_150,c_fill,g_auto transformation_name: name: transformation in: path required: true schema: type: string description: The valid transformation name to create. example: small_profile_thumbnail direction: name: direction in: query required: false schema: $ref: '#/components/schemas/direction_enum' description: The sort direction for the results. Default is "desc". schemas: transformation_summary: type: object properties: name: type: string example: t_small_profile_thumbnail allowed_for_strict: type: boolean example: true used: type: boolean example: false named: type: boolean example: true transformation_list_response: type: object properties: transformations: type: array items: $ref: '#/components/schemas/transformation_summary' next_cursor: type: - string - 'null' api_error: type: object properties: error: type: object properties: message: type: string required: - message required: - error transformation_info: type: object properties: name: type: string example: small_profile_thumbnail allowed_for_strict: type: boolean description: | Whether to allow this named transformation when [strict transformations](https://cloudinary.com/documentation/control_access_to_media#strict_transformations) are enabled. example: true used: type: boolean example: true named: type: boolean example: true info: type: array description: API transformation parameters items: type: object properties: width: oneOf: - type: integer - type: string description: Width - integer pixels or string variable reference (e.g., "$w") height: oneOf: - type: integer - type: string description: Height - integer pixels or string variable reference (e.g., "$h") crop: type: string gravity: type: string example: - width: 100 height: 150 crop: fill gravity: auto derived: type: array items: type: object properties: public_id: type: string example: sample_image resource_type: type: string example: image type: type: string example: upload format: type: string example: jpg url: type: string example: http://res.cloudinary.com/demo/image/upload/v1620000000/sample_image.jpg secure_url: type: string example: https://res.cloudinary.com/demo/image/upload/v1620000000/sample_image.jpg bytes: type: integer example: 123456 id: type: string example: 1234abcd5678efgh next_cursor: type: string example: eyJvZmZzZXQiOjEwMH0= allowed_for_strict: type: boolean description: | Whether to allow this named transformation when strict transformations are enabled. Strict transformations prevent transformations from being dynamically applied to media assets. example: true update_request: type: object properties: unsafe_update: type: string description: | Required when modifying the transformation parameters of an existing named transformation. The new transformation definition for the named transformation. Because the changed definition can be unsafe for (significantly change) assets in production, the change is applied only to newly generated derived assets that reference this named transformation. To apply the change to existing derived assets using this named transformation, invalidate them so that they'll be regenerated with the new definition when next requested. example: w_200,h_200,c_fill,g_face allowed_for_strict: $ref: '#/components/schemas/allowed_for_strict' message_response: type: object properties: message: type: string description: A human-readable status message. example: updated required: - message create_request: type: object required: - transformation properties: transformation: type: string description: A valid transformation string. example: w_100,h_150,c_fill,g_auto allowed_for_strict: $ref: '#/components/schemas/allowed_for_strict' direction_enum: type: string enum: - asc - desc description: Sort direction. upload_preset_summary: type: object description: An upload preset as returned in list responses. Most settings values are raw strings, but some boolean fields may be returned as native booleans. properties: name: type: string description: The name of the upload preset. example: my_preset unsigned: type: boolean description: Whether the upload preset allows unsigned uploads. settings: type: object description: Preset configuration settings. Most values are strings (e.g., tags are comma-separated, context is pipe-separated key=value pairs), but some boolean fields may be returned as native booleans. additionalProperties: oneOf: - type: string - type: boolean external_id: type: string description: The unique identifier for the upload preset. example: 84fbfd12-d00a-4c5b-8e92-05dbac244d43 required: - name - external_id upload_preset_list_response: type: object properties: presets: type: array items: $ref: '#/components/schemas/upload_preset_summary' next_cursor: type: - string - 'null' description: Cursor for the next page of results. required: - presets access_control_item: type: object description: Access control rule that defines when and how the asset can be accessed. required: - access_type properties: access_type: type: string enum: - token - anonymous description: The type of access control to apply to the asset. key: type: string pattern: ^[a-zA-Z0-9]+$ description: The authentication key identifier for token-based access. Default key is used if not specified or if set to 'default'. example: prod2024 start: oneOf: - type: string - type: integer description: The start date and time when anonymous access becomes available. Accepts ISO 8601 string or Unix timestamp. example: '2024-03-15T09:00:00Z' end: oneOf: - type: string - type: integer description: The end date and time when anonymous access expires. Accepts ISO 8601 string or Unix timestamp. example: '2024-06-30T23:59:59Z' access_control: type: array description: | 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. items: $ref: '#/components/schemas/access_control_item' example: - access_type: token key: prod2024 - access_type: anonymous start: '2024-03-15T09:00:00Z' end: '2024-06-30T23:59:59Z' structured_metadata_value: type: object description: A map of custom metadata fields (by external_id) and the values to assign to each of them. additionalProperties: oneOf: - type: string - type: integer - type: array items: type: string example: in_stock_id: 50 color_id: - green - red caption_id: Summer collection shot_date_id: '2024-06-15' structured_metadata_param: description: | 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. oneOf: - type: string description: A pipe-separated list of custom metadata fields (by external_id) and the values to assign to each of them. example: in_stock_id=50|color_id=["green","red"] - $ref: '#/components/schemas/structured_metadata_value' coordinate_pair: type: array description: A single [x, y] coordinate pair. minItems: 2 maxItems: 2 items: type: integer region_coordinates: type: array description: Coordinate pairs defining the region boundary. minItems: 2 items: $ref: '#/components/schemas/coordinate_pair' region_mapping: type: object description: | A map of named region coordinate groups for cropping with region gravity. Each key is a region name (letters, numbers, or hyphens only). Each value is an array of at least two [x, y] integer coordinate pairs defining the region boundary. additionalProperties: $ref: '#/components/schemas/region_coordinates' example: face: - - 100 - 200 - - 300 - 400 body: - - 50 - 60 - - 70 - 80 - - 90 - 100 responsive_breakpoint: type: object properties: create_derived: type: boolean description: Whether to generate and store the derived images. Default is true. max_width: type: integer description: The maximum width for responsive breakpoint images. min_width: type: integer description: The minimum width for responsive breakpoint images. bytes_step: type: integer description: The minimum byte size difference between consecutive breakpoint images. max_images: type: integer description: The maximum number of breakpoint images to generate. transformation: type: string description: A transformation string to apply before generating breakpoints. upload_base_parameters: type: object description: Upload configuration parameters such as access control, backup, moderation, and notification settings. properties: accessibility_analysis: type: boolean description: Whether to return accessibility analysis values for the image. asset_folder: type: string description: The asset folder to assign to the asset. async: type: boolean description: | 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: type: boolean description: 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: type: number description: | 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: - Cloudinary AI Content Analysis - Amazon Rekognition Celebrity Detection Use together with the categorization parameter for: - Google Automatic Video Tagging - Google Auto Tagging - Imagga Auto Tagging - Amazon Rekognition Auto Tagging example: 0.5 minimum: 0 maximum: 1 auto_transcription: oneOf: - type: boolean description: Whether to trigger automatic generation of video transcription. Transcription will be generated and saved as a .vtt file with -transcription appended to the public ID of the video. Relevant for videos only. example: true - type: object description: Configuration object for automatic video transcription with translation options. properties: translate: type: array items: type: string description: Array of target language codes for transcription translation. example: - pl-PL - he-IL example: translate: - pl-PL - he-IL access_control: $ref: '#/components/schemas/access_control' access_mode: type: string deprecated: true x-speakeasy-deprecation-message: The access_mode parameter is no longer supported. To restrict access to assets, you can use the access_control parameter. x-speakeasy-deprecation-replacement: access_control enum: - public - authenticated description: | 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. backup: type: boolean description: Whether to backup the uploaded asset. When set to true, backs up uploaded assets to a secondary storage bucket. background_removal: type: string description: | Automatically remove the background of an image using an add-on. - Set to cloudinary_ai to use the deep-learning based Cloudinary AI Background Removal add-on. Optionally append a template suffix (e.g., cloudinary_ai:fine_edges). - 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. Relevant for images only. example: cloudinary_ai callback: deprecated: true x-speakeasy-deprecation-message: The callback parameter is deprecated. Not relevant for modern browsers. Starting July 2025 new customers will not be able to use this parameter. type: string description: | A URL to redirect to after the upload/explicit is completed instead of returning the upload response. Signed upload result parameters are added to the callback URL. This parameter is ignored for XHR (Ajax XMLHttpRequest) or JavaScript Fetch API upload requests. Note: This parameter is relevant for direct uploads from a form in the browser. It is automatically set if you perform direct upload from the browser using Cloudinary's SDKs and the jQuery plugin. categorization: type: string description: | 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). example: google_tagging cinemagraph_analysis: type: boolean description: 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. colors: type: boolean description: '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.' default: false detection: type: string description: | Invokes the relevant add-on to return a list of detected content. Set to: - _[] (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. example: coco_v2 discard_original_filename: type: boolean description: 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: type: string description: A display name for the asset. eager_async: type: boolean description: 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: type: string format: uri description: A URL to notify when eager transformations are completed. eval: type: string description: 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. faces: type: boolean description: Whether to detect faces in the asset. filename_override: type: string description: Overrides the originally uploaded asset's file name in downloads that use flags like fl_attachment or fl_force_original. folder: type: string deprecated: true x-speakeasy-deprecation-message: | If Dynamic folders mode is enabled on your product environment, this parameter is deprecated, and it's recommended to use the asset_folder parameter to control where the asset will be placed. If you also want your public_id to match the initial asset folder path, include the use_asset_folder_as_public_id_prefixparameter. description: 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: type: string description: An optional format to convert the uploaded asset to before saving in the cloud. example: jpg invalidate: type: boolean description: | Whether to invalidate CDN cache copies of a previously uploaded asset that shares the same public ID. Default: false. media_metadata: type: boolean description: | 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: $ref: '#/components/schemas/structured_metadata_param' clear_invalid: type: boolean description: '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.' default: false moderation: type: string description: | 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: 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. example: aws_rek|duplicate:0|perception_point|manual notification_url: type: string format: uri description: A URL to notify when the asset is ready. ocr: type: string description: | 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). example: adv_ocr on_success: type: string description: 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: type: boolean description: | 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: type: boolean description: | Whether to return the perceptual hash (pHash) on the uploaded image for image similarity detection. proxy: type: string description: A proxy to use for fetching remote URLs. The format should be http://hostname:port. public_id: type: string description: The identifier that is used for accessing the uploaded asset. If not specified, a unique ID is generated automatically. public_id_prefix: type: string description: 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: type: boolean description: 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: type: string pattern: ^(aspose|azure_video_indexer(:\D+)*|google_speech(:(vt|sr)t)*(:[a-zA-Z-]+)?|extract_text)$ description: | 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) example: google_speech:vtt:en-US regions: anyOf: - type: string - $ref: '#/components/schemas/region_mapping' description: | 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. example: '{"face": [[100, 200], [300, 400]], "body": [[50, 60], [70, 80], [90, 100]]}' responsive_breakpoints: description: Settings to automatically generate breakpoints for responsive images. anyOf: - type: array items: $ref: '#/components/schemas/responsive_breakpoint' - $ref: '#/components/schemas/responsive_breakpoint' return_delete_token: type: boolean description: 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. upload_preset: type: string description: 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. use_asset_folder_as_public_id_prefix: type: boolean description: 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: type: boolean description: | 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: type: boolean description: 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. unique_display_name: type: boolean description: Whether the display name should be unique. unique_filename: type: boolean description: | 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). visual_search: type: boolean description: Whether to index the image for use with visual searches. Relevant for images only. tags_param: anyOf: - type: string description: A comma-separated list of tag names. - type: array items: type: string description: An array of tag names. description: A comma-separated list of tag names, or an array of tag names. example: animal,dog context_param: type: string description: 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"). The =, ", and | characters can be escaped with a prepending backslash (\). example: alt=My image|caption=Nice photo upload_serializable_input: type: object description: Upload parameters that accept encoded string values, such as comma-separated tags, pipe-separated context metadata, and transformation strings. properties: tags: $ref: '#/components/schemas/tags_param' context: $ref: '#/components/schemas/context_param' eager: type: string description: A list of transformations to eagerly generate for the asset. Accepts either a single transformation or a pipe-separated list of transformations. transformation: type: string description: 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. allowed_formats: type: string description: | 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. example: mp4,ogv,jpg,png,pdf headers: type: string description: | 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. example: 'X-Robots-Tag: noindex' face_coordinates: type: string description: Face coordinates as comma-separated values, with multiple faces separated by pipes. pattern: ^(\d+,\d+,\d+,\d+)(\|\d+,\d+,\d+,\d+)*$ example: 10,20,150,130|213,345,82,61 custom_coordinates: type: string description: Custom coordinates as comma-separated values, with multiple coordinates separated by pipes. pattern: ^(\d+,\d+,\d+,\d+)(\|\d+,\d+,\d+,\d+)*$ example: 10,20,150,130 upload_common_parameters: description: Common parameters for configuring an asset, including transformation, tagging, metadata, and moderation options. allOf: - $ref: '#/components/schemas/upload_base_parameters' - $ref: '#/components/schemas/upload_serializable_input' managed_delivery_type: type: string enum: - upload - private - authenticated description: Managed delivery types for assets uploaded and stored by Cloudinary. asset_delivery_type: type: string enum: - asset description: Static asset delivery type. upload_delivery_type: anyOf: - $ref: '#/components/schemas/managed_delivery_type' - $ref: '#/components/schemas/asset_delivery_type' description: Delivery types accepted by upload and rename operations. upload_type_parameter: type: object properties: type: allOf: - $ref: '#/components/schemas/upload_delivery_type' description: The delivery type that defines if and how the uploaded asset is available for public delivery. By default, all uploaded assets are public (upload). upload_parameters: description: Parameters for configuring asset uploads, including transformation, tagging, metadata, and delivery options. allOf: - $ref: '#/components/schemas/upload_common_parameters' - $ref: '#/components/schemas/upload_type_parameter' upload_preset_input: description: Upload preset configuration for create/update. Settings are sent as top-level string-encoded properties. allOf: - $ref: '#/components/schemas/upload_parameters' - type: object properties: name: type: string description: The name of the upload preset. If not provided on create, a random name is generated. disallow_public_id: type: boolean description: | When using unsigned upload with an upload preset, this parameter prevents specifying a public ID. Relevant only for unsigned upload presets. unsigned: type: boolean description: Whether the upload preset allows unsigned uploads. parameter_whitelist: oneOf: - type: array items: type: string - type: string enum: - none description: | The parameters that are allowed to be used in an upload request utilizing this preset. If not specified or empty array, all parameters are allowed. If "none", no parameters are allowed. upload_preset_create_response: type: object properties: message: type: string description: The result message. example: created name: type: string description: The name of the created upload preset. example: my_preset external_id: type: string description: The unique identifier for the upload preset. example: 1bce826e-ec50-45c6-9f86-c858948c7158 required: - message - name - external_id tags_response: type: - array - 'null' items: type: string description: Tag names assigned to the asset. context_response: type: - object - 'null' additionalProperties: type: string description: Contextual metadata as flat key-value pairs. upload_serializable_parsed: type: object description: Structured versions of upload fields as returned in API responses. Tags and allowed formats are arrays, context is a key-value object, eager and transformation are structured transformation objects, and coordinates are nested number arrays. properties: tags: allOf: - $ref: '#/components/schemas/tags_response' description: Parsed tag names. example: - tag1 - tag2 context: allOf: - $ref: '#/components/schemas/context_response' description: Parsed contextual metadata as key-value pairs. example: alt: My image caption: Nice photo eager: type: array description: Parsed eager transformations. Each item is an array of transformation step objects. items: type: array items: type: object additionalProperties: true example: - - width: 100 height: 100 crop: thumb transformation: type: array description: Parsed incoming transformation steps. items: type: object additionalProperties: true allowed_formats: type: array items: type: string description: Parsed list of allowed file formats. example: - jpg - png - gif headers: type: object additionalProperties: type: string description: Parsed custom HTTP headers as key-value pairs. face_coordinates: type: array description: Parsed face coordinate rectangles. items: type: array items: type: number custom_coordinates: type: array description: Parsed custom coordinate rectangles. items: type: array items: type: number upload_preset_parsed_settings: description: Parsed preset configuration settings. Composed from base parameters (stable types) plus parsed serializable fields (arrays/objects instead of strings). allOf: - $ref: '#/components/schemas/upload_base_parameters' - $ref: '#/components/schemas/upload_serializable_parsed' - $ref: '#/components/schemas/upload_type_parameter' upload_preset_detail: type: object description: An upload preset as returned by the GET endpoint. Settings values are parsed into their proper types (e.g., tags become arrays, context becomes an object, booleans become true booleans). properties: name: type: string description: The name of the upload preset. example: my_preset unsigned: type: boolean description: Whether the upload preset allows unsigned uploads. settings: $ref: '#/components/schemas/upload_preset_parsed_settings' external_id: type: string description: The unique identifier for the upload preset. example: 4d92a1bc-25c8-4f5a-a763-1b7dc169fd5a required: - name - external_id upload_preset_mutation_response: type: object properties: message: type: string description: The result message (e.g., "updated" or "deleted"). example: updated external_id: type: string description: The unique identifier for the upload preset. example: 1bce826e-ec50-45c6-9f86-c858948c7158 required: - message - external_id upload_mapping: type: object description: Represents an upload mapping properties: folder: type: string description: The folder name example: my_folder template: type: string description: The template URL example: http://example.com/files external_id: type: string description: Unique identifier for the mapping upload_preset_name: type: - string - 'null' description: Name of an upload preset if one is associated required: - folder - template - external_id upload_mapping_list_response: type: object description: List response for upload mappings. properties: mappings: type: array description: Array of upload mapping objects. items: $ref: '#/components/schemas/upload_mapping' total_entries: type: integer description: Total number of mappings. next_cursor: type: string description: Cursor for getting the next page of results. required: - mappings - total_entries upload_mapping_input: type: object properties: folder: type: string description: The folder name for the mapping. example: my_folder template: type: string description: The template URL. example: http://example.com/files required: - folder - template upload_mapping_mutation_response: type: object properties: message: type: string external_id: type: string description: Unique identifier of the mapping. example: 1bce826e-ec50-45c6-9f86-c858948c7158 required: - message - external_id upload_mapping_create_response: type: object properties: message: type: string folder: type: string description: The folder name that was created. external_id: type: string description: Unique identifier for the mapping. example: 1bce826e-ec50-45c6-9f86-c858948c7158 required: - message - folder - external_id replace_upload_mappings_request: type: object properties: mappings: type: array items: $ref: '#/components/schemas/upload_mapping_input' required: - mappings event_type: type: string description: The type of notification event. enum: - all - access_control_changed - bulk_refresh_auto_fetch - create_folder - delete - delete_by_token - delete_folder - eager - error - explode - generate_archive - info - invalidate_custom_cdn - moderation - moderation_summary - move - move_or_rename_asset_folder - multi - publish - rename - report - resource_context_changed - resource_display_name_changed - resource_metadata_changed - resource_tags_changed - restore_asset_version - sprite - upload uri_type: type: string enum: - webhook - flow trigger_info: type: object properties: id: type: string example: c2c822dd1aa41ba6d81299df8b5ae949 product_environment_id: type: string example: 7fabb2ff3d687d05b63134cf8fa006ba16 uri_type: $ref: '#/components/schemas/uri_type' example: webhook uri: type: string format: uri example: http://example.com event_type: $ref: '#/components/schemas/event_type' example: all created_at: type: string format: date-time example: '2025-05-13T09:40:29+00:00' updated_at: type: string format: date-time example: '2025-05-13T09:40:29+00:00' required: - uri - uri_type trigger_list_response: type: object description: List response for triggers. properties: triggers: type: array description: List of trigger objects. items: $ref: '#/components/schemas/trigger_info' total: type: integer description: Total number of triggers. example: 1 required: - triggers - total create_trigger_request: type: object properties: uri: type: string description: The URL that will receive the notification response. format: uri example: https://trigger.site/124 event_type: $ref: '#/components/schemas/event_type' description: The type of event that will trigger the notification response. example: upload required: - uri - event_type update_trigger_request: type: object properties: new_uri: type: string format: uri example: http://example.com description: The updated URL that will receive the notification response. required: - new_uri test_trigger_request: type: object properties: sample_data: type: object description: Sample notification data to evaluate the filter against. example: resource_type: image public_id: sample123 tags: - product test_trigger_response: type: object properties: trigger_id: type: string description: The ID of the trigger that was tested. example: c2c822dd1aa41ba6d81299df8b5ae949 filter_present: type: boolean description: Whether the trigger has a filter configured. example: true filter_result: type: boolean description: Result of evaluating the filter against sample_data (true if no filter). example: true required: - trigger_id - filter_present - filter_result streaming_profile: type: object properties: external_id: type: string description: The unique identifier of the streaming profile example: f6360c4d-4f62-48b7-b56b-8c49d1bd6dcf name: type: string description: The name of the streaming profile example: hd_1080p display_name: type: - string - 'null' description: The display name of the streaming profile example: HD 1080p predefined: type: boolean description: Whether this is a predefined streaming profile example: false representations: type: array description: The list of representations in the streaming profile items: type: object properties: transformation: type: array description: The transformation parameters for this representation items: type: object additionalProperties: true example: - transformation: - width: 1920 height: 1080 crop: scale video_codec: h264 bit_rate: 2500k audio_codec: aac audio_bitrate: 128k fps: 30 - transformation: - width: 1280 height: 720 crop: scale video_codec: h264 bit_rate: 1500k audio_codec: aac audio_bitrate: 128k fps: 30 required: - external_id - name - predefined example: external_id: sp_123456789 name: hd_1080p display_name: HD 1080p predefined: false representations: - transformation: - width: 1920 height: 1080 crop: scale video_codec: h264 bit_rate: 2500k audio_codec: aac audio_bitrate: 128k fps: 30 - transformation: - width: 1280 height: 720 crop: scale video_codec: h264 bit_rate: 1500k audio_codec: aac audio_bitrate: 128k fps: 30 streaming_profile_list_response: type: object properties: data: type: array items: $ref: '#/components/schemas/streaming_profile' required: - data streaming_profile_create: type: object properties: name: type: string description: The name of the streaming profile example: hd_1080p display_name: type: - string - 'null' description: The display name of the streaming profile example: HD 1080p representations: type: string description: A JSON string containing the list of representations with transformation parameters as strings example: '[{"transformation":"w_1920,h_1080,c_scale/vc_h264,br_2500k/ac_aac,abr_128k/fps_30"},{"transformation":"w_1280,h_720,c_scale/vc_h264,br_1500k/ac_aac,abr_128k/fps_30"}]' required: - name - representations example: name: hd_1080p display_name: HD 1080p representations: '[{"transformation":"w_1920,h_1080,c_scale/vc_h264,br_2500k/ac_aac,abr_128k/fps_30"},{"transformation":"w_1280,h_720,c_scale/vc_h264,br_1500k/ac_aac,abr_128k/fps_30"}]' streaming_profile_data_response: type: object properties: data: $ref: '#/components/schemas/streaming_profile' required: - data streaming_profile_update: type: object properties: display_name: type: - string - 'null' description: The display name of the streaming profile example: HD 1080p Updated representations: type: string description: A JSON string containing the list of representations with transformation parameters as strings example: '[{"transformation":"w_1920,h_1080,c_scale/vc_h264,br_3000k/ac_aac,abr_192k/fps_30"},{"transformation":"w_1280,h_720,c_scale/vc_h264,br_2000k/ac_aac,abr_192k/fps_30"}]' required: - representations example: display_name: HD 1080p Updated representations: '[{"transformation":"w_1920,h_1080,c_scale/vc_h264,br_3000k/ac_aac,abr_192k/fps_30"},{"transformation":"w_1280,h_720,c_scale/vc_h264,br_2000k/ac_aac,abr_192k/fps_30"}]' streaming_profile_update_response: type: object properties: message: type: string data: $ref: '#/components/schemas/streaming_profile' required: - message - data x-speakeasy-globals: parameters: []