Python quick start

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.

If you aren't familiar with Cloudinary, you may want to first take a look at the Developer get started guide for a high-level overview of integrating Cloudinary into your code, and an introduction to the main concepts.

You may also find our Glossary helpful to understand Cloudinary-specific terminology.


To perform the steps in this quick start, you'll need:

1. Set up and configure the SDK

In a terminal in your Python3 environment, run the following code:

Copy to clipboard
pip3 install cloudinary
pip3 install python-dotenv

In your project, create a file called .env containing your API environment variable from your account credentials:


Copy to clipboard
# Copy and paste your API environment variable
# =============================================



  • 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 Copy and paste the following into this file:

Copy to clipboard
# Set your Cloudinary credentials
# ==============================
from dotenv import 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 (continued)

Copy to clipboard
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("", 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 (continued)

Copy to clipboard
def getAssetInfo():

  # Get and use details of the image
  # ==============================

  # Get image details and save it in the variable 'image_info'.
  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")
    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 (continued)

Copy to clipboard
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 (continued)

Copy to clipboard
def main():

In the terminal, run the following command:

Copy to clipboard

The following original image is uploaded to your Cloudinary account, tagged appropriately and accessible via the URL shown below.

The transformed version of the image is accessible via the URL shown below.

Original image Original image<cloud-name>/image/
Transformed image Transformed image<cloud-name>

View the completed code

See the code above in action using this code playground.

If you want to see the output:

  • 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 the Variable Value for CLOUDINARY_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:

✔️ Feedback sent!

Rate this page: