Cloudinary Technology Partner Program:
By joining Cloudinary’s Technology Partner Program, companies can independently develop integrations with Cloudinary products to enhance or expand their digital platform’s offering to customers.
To be listed as a partner-built integration on Cloudinary’s website, follow the “Five Steps to Success” procedure:
Other benefits of the program include:
- Access to an allocated relationship manager
- Listing of the integration on the Cloudinary Website
- Overview and demo training session on Cloudinary’s technology for Partner sales team
- Technical training session and roadmap overview for Partner technical team
- Co-marketing collaboration (varies by Partner)
- Cloudinary will recommend and introduce or co-sell with Partner to relevant companies
Sign up for a free Cloudinary account, understand our products, and reach out to us for an initial discovery call
Before you get started on any development work, we recommend you sign up for a free Cloudinary demo account to get familiar with the Cloudinary offering. Once your account is set up, you can also access our free training site, Cloudinary Academy as well as our Knowledgebase and Documentation sites.
Ready to go? Great! Request an initial discovery call by sending an email to email@example.com. After signing a tech partner agreement, the Cloudinary team can upgrade your Cloudinary account to help you get better visibility with our support team.
Cloudinary Product Offerings
This section describes Cloudinary’s products, what value they bring to users, and how they can be incorporated into Cloudinary integrations.
Cloudinary offers various products that your customers may be using:
- DAM (Digital Asset Management)
- Programmable Media
- Media Optimizer
The integration you build should enable only features that are available for the products your customer is using.
Customers who use Cloudinary’s Digital Asset Management (DAM) solution use Cloudinary’s storage and are able to use Cloudinary’s fully-featured set DAM solution. DAM users do not benefit from Cloudinary’s optimized delivery of assets.
Customers who use Cloudinary’s Programmable Media (PM) offering benefit from the full feature set of Cloudinary. This includes access to all of Cloudinary’s APIs, transformations, delivery through our CDNs, and basic DAM functionality. These customers utilize and are charged based on their usage of Cloudinary’s storage, bandwidth, and transformation.
Our APIs/SDKs, Media Library Widget, and our Upload Widget might be a good way to integrate to capture these capabilities. You can add common optimization transformations as default (such as ‘f_auto,q_auto’).
Customers who use Cloudinary’s Media Optimizer (MO) don’t use Cloudinary’s storage and benefit from optimized delivery of assets to their end-users without the need to modify the asset URLs in their code.
As Cloudinary is not used for storage, MO users are not able to use Cloudinary’s DAM to manage their assets.
MO customers can use optimization-related delivery transformations such as auto quality and format, cropping, sizing, breakpoint behavior, etc. Creative transformations such as effects, overlays, and borders are not available for MO customers.
This section highlights the Cloudinary capabilities that your integration can take advantage of to maximize the benefits of using Cloudinary’s service.
Your integration can allow customers to sync all or part of their assets to Cloudinary.
Cloudinary recommends that the integration, by default, use Cloudinary as the media single-source-of-truth and deliver all assets from Cloudinary’s storage.
Synced assets can be stored in different ways. For example:
- Only on Cloudinary.
- On both Cloudinary and natively (identical copies or different versions).
Storing assets only on Cloudinary will free up space in the integrated service.
Storing assets on both services allows fallback mechanisms. For example, if the user chooses to deactivate the integration, assets can quickly be delivered natively.
See how our WordPress integration implements different storage options.
The integration can allow various ways to sync assets to Cloudinary. For example:
- Auto – Automatically syncs each asset immediately upon native upload.
- On-the-fly – Syncs assets the first time they are requested.
- Bulk – Syncs all assets in a single click upon user request.
- Manual – Syncs selected asset/s upon user request.
Note that your integration may also need to handle restricted assets.
Media optimization and delivery
Optimized delivery is achieved using optimization transformations such as f_auto, q_auto, and others. MO customers can use the MO configuration to optimize their media without affecting the asset URLs.
Cloudinary recommends that by default, the integration will allow a single-click automatic quality and format optimization for all delivered assets.
For advanced customers, the integration can allow additional settings to control the media quality and format. For example: Adjusting the aggressiveness of the auto-quality algorithm, or even manually selecting the quality or format for individual assets.
Cloudinary’s responsive breakpoints feature is a smart algorithm that determines the ideal image dimensions for a particular end user’s device/browser. The integration can enable responsive breakpoints to all assets. This might not be relevant for integrations that don’t include frontend elements. If relevant, Cloudinary recommends enabling breakpoints by default.
All assets stored in Cloudinary can be delivered using Cloudinary’s CDN.
Automatic media transformations
Cloudinary’s transformations offer easy ways to transform, adapt, and optimize images.
- Automatically create different variants of every image for different browsers, devices, channels, and campaigns.
- Crop, resize, transcode, and filter images on the fly to fit your brand’s look and feel.
- Automatically create all image variants to personalize and deliver the most appropriate version to every end user.
Cloudinary transformations include both optimization transformations such as f_auto and q_auto and creative transformations such as effects and watermarks.
Notice that different transformations may apply to images and videos. The integration can allow separate transformation configurations for images and videos.
Transformations can be applied at multiple levels. For example: In eCommerce systems, asset level, product level, catalog level, and global level are frequently used.
Cloudinary recommends using at least two levels: Asset and global. When multiple levels are allowed, the integration can allow the user to choose if each level overrides or concatenates the level below it.
Cloudinary’s Upload widget can be used whenever a customer wants to allow their end-users to upload assets from various sources to Cloudinary.
Media Editing widget
Cloudinary’s Media Editing widget can be used whenever a customer wants to allow their end-users to edit and transform an original asset.
Media Library widget
Cloudinary’s Media Library widget can be used whenever a customer wants to allow their end-users to select media from Cloudinary to be used in the platform.
The widget also enables the users to upload, search, manage, and edit assets and can be used whenever a full media library solution is needed.
See how our WordPress plugin makes use of the Media Library widget in different scenarios.
Product Gallery widget
Cloudinary’s Product Gallery widget can be used whenever there is a need to present product assets in a storefront or grouped together.
Cloudinary’s Video Player can be used whenever there is a need to play videos on a website using a player that offers look & feel customization options, analytics, hotspots, and the most advanced delivery options.
Cloudinary allows the concatenation of meaningful suffixes to asset URLs.
The integration can use this capability to improve the SEO of the user’s website.
Support multiple accounts, sub-accounts, and users
Cloudinary customers may work with more than one Cloudinary account. For example, agencies managing more than a single account, production/staging accounts, different sub-brands, etc.
A Cloudinary account may contain multiple sub-accounts and multiple users.
The integration can allow the user to switch between different accounts, sub-accounts, and users within the logged-in account, allowing easy “refresh” of the media belonging to the used account/sub-account/user.
Use our guidelines and requirements to build with our APIs or Widgets
This section defines integration requirements that must be followed in order to be listed on Cloudinary’s website.
Installation & update
- Users of the integration must be able to install, update, and uninstall it in the same way as other integrations of the integrated platform.
- Installation instructions and full usage documentation must be clearly presented to the user.
- Known issues and limitations must be clearly presented to the user.
- When the integration is uninstalled, it must remove all Cloudinary functionality added by the integration while not affecting any non-Cloudinary related functionality. The uninstall process must not harm the system, and must end with the system in a fully-functional state.
Login & logout
- The integration must allow the user to use multiple Cloudinary accounts and sub-accounts (clouds). The user must be able to login & logout from multiple accounts and switch between different sub-accounts. Notice that different accounts may have different permission levels.
Contact and support information
- The integration must present clear contact information for users to send questions and report issues. Common ways are in the integration’s UI or a README file.
The following aspects are recommendations to better align your integration with other Cloudinary integrations.
- Ensure you have Cloudinary’s latest logos (Brand assets).
- It’s recommended to implement the integration as an open-sourced library hosted on Github.
- If the integration is open-sourced, make sure to follow industry standards, including providing license information, a README file, installation guide, contribution guidelines, and contact information for reporting problems or requesting support.
- Make sure that the code is clean, organized, readable, and follows a consistent coding style.
- The code must be thoroughly tested using automated or manual methods (see Testing guidelines).
- Use the relevant Cloudinary SDK to communicate with Cloudinary’s API.
- Versioning and releases:
- Make sure the integration release versions comply with the SemVer specification.
- Present a clear changelog in each new release.
The following aspects must be followed in order for the integration to be certified.
- If the integration uses API key and secret to authenticate with Cloudinary (or any other service), make sure never to expose the API secret in client-side code, your github library, or external communications (for example, video tutorials, training sessions, and screen captures).
- API calls to Cloudinary must set a user-agent header in the request in the following format:
CloudinaryMagento/2.1.0 (Magento 188.8.131.52) CloudinaryPHP/1.6.2
- When configuring the Media Library widget, a parameter named ‘integration’ must be added as part of the widget’s configuration options.
integrationparameter’s data must be in the following format:
type: //the integration identifier e.g. "adobe_connector",
platform: //hosting app name + version e.g. "photoshop 8.6",
version: //integration version e.g. "1.0",
environment: //e.g "prod"/"stag"/"dev"
- API calls to Cloudinary must set a user-agent header in the request in the following format:
Prepare your integration for review and get initial feedback on your integration
Below is a list of common and important scenarios Cloudinary will review in your integration.
Storage and delivery:
- Relevant assets are stored and delivered from Cloudinary
- Relevant media types are supported (image/video/raw)
- Various assets types are handled (restricted/private/authenticated)
- Delivery methods (fetch/upload)
- Supported sync options
- Upload presets
- Upload/delivery of large files (>1GB)
- Applied as expected
- Multi-level transformations (see Automatic media transformations section)
- Named transformations
- Video player
- Product gallery
- Upload widget
- Media Library Widget
- Switching accounts and sub-accounts
- Integration disabled/enabled
- Scenarios, features, validations, and limitations specific to the integration product behavior (eg. a maximum of 50 assets presented in the Media Library Widget).
- Scenarios specific to the integration’s implementation (eg. supported rate limits, max queue sizes, etc.)