Python quick start
Last updated: Jan-03-2023
This quick start is intended to let you quickly try using several common Cloudinary features. It doesn't necessarily employ coding best practices and the code you create here isn't intended for production.
You can perform this quick start in a code sandbox or in a clean project in the dev environment of your choice.
You can also view the completed code of this quick start in a GitHub repo and code explorer.
You may also find our Glossary helpful to understand Cloudinary-specific terminology.
Prerequisites
To perform the steps in this quick start, you'll need:
- A Cloudinary account. If you don't have one yet, you can quickly register for free.
- Your product environment credentials. You can find your credentials in the Dashboard page of your Cloudinary Console.
- A working Python development environment with a supported version of Python.
1. Set up and configure the SDK
In a terminal in your Python3 environment, run the following code:
In your project, create a file called .env
containing your API environment variable from your product environment credentials:
# Copy and paste your API environment variable # ============================================= CLOUDINARY_URL=cloudinary://<api_key>:<api_secret>@<cloud_name>
- When writing your own applications, follow your organization's policy on storing secrets and don't expose your API secret.
- Don't store your
.env
under version control for maximum security.
In your project, create a new file called my_file.py
. Copy and paste the following into this file:
# Set your Cloudinary credentials # ============================== from dotenv import load_dotenv load_dotenv() # Import the Cloudinary libraries # ============================== import cloudinary import cloudinary.uploader import cloudinary.api # Import to format the JSON responses # ============================== import json # Set configuration parameter: return "https" URLs by setting secure=True # ============================== config = cloudinary.config(secure=True) # Log the configuration # ============================== print("****1. Set up and configure the SDK:****\nCredentials: ", config.cloud_name, config.api_key, "\n")
2. Upload an image
Copy and paste this into my_file.py
:
def uploadImage(): # Upload the image and get its URL # ============================== # Upload the image. # Set the asset's public ID and allow overwriting the asset with new versions cloudinary.uploader.upload("https://cloudinary-devs.github.io/cld-docs-assets/assets/images/butterfly.jpeg", public_id="quickstart_butterfly", unique_filename = False, overwrite=True) # Build the URL for the image and save it in the variable 'srcURL' srcURL = cloudinary.CloudinaryImage("quickstart_butterfly").build_url() # Log the image URL to the console. # Copy this URL in a browser tab to generate the image on the fly. print("****2. Upload an image****\nDelivery URL: ", srcURL, "\n")
3. Get and use details of the image
Copy and paste this into my_file.py
:
def getAssetInfo(): # Get and use details of the image # ============================== # Get image details and save it in the variable 'image_info'. image_info=cloudinary.api.resource("quickstart_butterfly") print("****3. Get and use details of the image****\nUpload response:\n", json.dumps(image_info,indent=2), "\n") # Assign tags to the uploaded image based on its width. Save the response to the update in the variable 'update_resp'. if image_info["width"]>900: update_resp=cloudinary.api.update("quickstart_butterfly", tags = "large") elif image_info["width"]>500: update_resp=cloudinary.api.update("quickstart_butterfly", tags = "medium") else: update_resp=cloudinary.api.update("quickstart_butterfly", tags = "small") # Log the new tag to the console. print("New tag: ", update_resp["tags"], "\n")
4. Transform the image
Copy and paste this into my_file.py
:
def createImageTag(): # Transform the image # ============================== # Create an image tag with transformations applied to the src URL. imageTag = cloudinary.CloudinaryImage("quickstart_butterfly").image(radius="max", effect="sepia") # Log the image tag to the console print("****4. Transform the image****\nTransfrmation URL: ", imageTag, "\n")
5. Run your code
Copy and paste this into my_file.py
:
In the terminal, run the following command:
The following original image is uploaded to Cloudinary, tagged appropriately and accessible via the URL shown below.
The transformed version of the image is accessible via the URL shown below.

http://res.cloudinary.com/<cloud-name>/image/
upload/v1/quickstart_butterfly

http://res.cloudinary.com/<cloud-name>
/image/upload/e_sepia
r_max/v1/quickstart_butterfly
View the completed code
See the code above in action using this code playground.
- Click Remix to Edit.
- Copy your API Environment variable value (i.e., only the portion after the equal sign,
cloudinary://<api_key:api_secret@cloud_name
). - Paste it into the Glitch
.env
file as theVariable Value
forCLOUDINARY_URL
. - Click Logs at the bottom of the screen.
This code is also available in GitHub
Next steps
- Learn more about the Python SDK by visiting the other pages in this SDK guide.
- Get comprehensive details about Cloudinary features and capabilities:
- Media upload guide: Provides details and examples of the upload options.
- Image transformations guide: Provides details and examples of the transformations you can apply to image assets.
- Video transformations guide: Provides details and examples of the transformations you can apply to video assets.
- Transformation URL API Reference: Provides details and examples of all available transformation parameters.
- Admin API guide: Provides details and examples of the methods available for managing and organizing your media assets.