Cloudinary 3rd Party Developer Program
Cloudinary’s Technology Partner Program allows 3rd Party software companies to independently develop integrations with Cloudinary products to further enhance or expand the digital platform offering to customers.
We require a thorough certification process, and the Cloudinary Integration Team is here to assist. Simply follow our “Five Steps to Success” plan and you’ll be on your way in no time:
Other benefits of the program include:
- Access to an allocated relationship manager
- Documentation 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
Certification Validity: We ask that you communicate any major changes you make to your platform and/or the Cloudinary integration (or if we make any major changes we’ll let you know) so we can re-certify the integration.
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
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, adapting, and optimizing 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 certified.
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.
- For authenticating with Cloudinary, it’s recommended to use OAuth over key and secret.
- 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.
The following aspects must be followed in order for the integration to be certified.
- While we recommend using OAuth as mentioned above, 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).
- 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.
- 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:
Submit for approval and certification
While planning your integration, please make sure to take into account best practices, requirements, and testing guidelines in the previous sections.
Once you’re done building and testing your integration, please share your integration by contacting us – firstname.lastname@example.org.
Integration Submission Requirements
Upon submission, you will be required to supply the following:
- Unencrypted source code for review.
- Clear installation guidelines.
- Full integration usage documentation.
- Source code of automated tests used for testing the integration.
- Description of manual tests if done.
- List of APIs, 3rd party packages, and services used by the integration.
- Contact person for continued follow-up.
- Signed technical partnership agreement for legal, privacy, and security purposes.
- Video tutorial (preferably) or screen captures of the integration to be posted on our website.
- A description of the different features/options the integration offers (to be listed in Cloudinary’s website/marketplace) – a separate form will be sent to collect this information.
When ready,submit your integration here: email@example.com.
As part of the certification process, the Cloudinary Integration Team will check that the integration follows all the guidelines and requirements mentioned.
In some cases, additional information and clarifications might be requested. In such cases, the Cloudinary Integration Team will reach out to the contact person specified during submission.
The certification process can take up to 6 weeks. When complete, the Cloudinary Integration Team will reach out to the contact person to communicate the results of the certification process.
Certifications will be evaluated yearly, if you make any substantial changes to your integration during this period, please contact us in order to re-certify the integration and prolong the validity of the certification. If Cloudinary makes any major product changes or any changes to the certification program, the Cloudinary Integration Team will reach out for re-certification.