New! Cloudinary Skills: Help your AI agent follow best practices, suggest features for your use case, and reduce implementation errors. Install now
Cloudinary Logo Cloudinary Docs Docs
  • Image & Video APIs
    • Get Started
    • Guides
    • References
    • SDKs
    • Release Notes
  • Assets (DAM)
    • Get Started
    • User Guides
    • Admin Guides
    • Assets APIs
    • Release Notes
  • MediaFlows
    • Get Started
    • PowerFlows
    • EasyFlows
    • Release Notes
  • More Products
    • Integrations Add Cloudinary capabilities to your tech stack apps and platforms
    • Cloudinary Moderation AI-powered visual quality and brand checks
    • FinalTouch (Early Access) AI-powered virtual photoshoot and image creation for eCommerce
  • Resources
    • Blog
    • Training
    • Support
    • Demos
    • Additional Resources
  • Pricing
AI sparkles Ask AI
Light theme
Dark theme
Device default
sign up for free
  • Get Started
    • Image & Video APIs overview
    • Developer kickstart
      • Step 1: Register and find credentials
      • Step 2: Load pages faster with optimization
      • Step 3: Your first transformations
      • Step 4: Resize transformations
      • Step 5: Set up and run your first SDK project
      • Congrats! You're ready to code!
    • SDK quick starts
    • Try it!
      • Code explorers
      • Feature demos
      • Postman collections
    • AI agent tools and MCP servers (Beta)
    • VS Code Extension (Beta)
    • Video tutorial library
      • Programmatic asset management
      • Optimization and delivery
      • Transformations
      • Dev Hints on YouTube
      • Dev Hints en Español
      • Cloudinary Café Training Sessions
    • Additional onboarding resources
      • Service introduction
      • Onboarding FAQ
      • Enterprise onboarding FAQ
      • Migration guide
      • Glossary
  • Guides
    • Cloudinary Image
      • Product overview
      • Image transformations
      • Image optimization and delivery
      • Programmatic image creation
      • Product Gallery widget
      • Media Editor widget
      • Image add-ons
      • Cloudinary Image troubleshooting and tips
    • Cloudinary Video
      • Product overview
      • Cloudinary Video Player
      • Adaptive bitrate streaming
      • Video transformations
      • Video and audio optimization
      • Video transcription
      • Video analytics
      • Live streaming
      • Video add-ons
      • Video best practices
      • Social media videos
      • Troubleshooting and tips
    • Upload
      • Uploading assets
      • Customizing uploads
      • Client-side uploading
      • Upload presets
      • Upload widget
      • Troubleshooting and tips
    • Asset management
      • CRUD asset management APIs
      • Media Library for developers
      • Search for assets
      • Eager and incoming transformations
      • Custom metadata
      • Analyze assets
      • Moderate assets
      • Webhook notifications
      • Advanced asset management
      • Add-ons
      • Troubleshooting and tips
    • Account management
      • Account settings
      • Product environment settings
      • User provisioning
      • Roles and Permissions
      • Usage data
      • How are transformations counted?
      • Troubleshooting and tips
    • Retail and e-commerce
      • Best practices
      • Visual differentiators
      • Customize and optimize assets
      • Workflows
    • User-generated content
      • Profile picture sample project
      • Video review sample project
      • Marketplace products sample project
      • Try before you buy sample project
    • Accessible media
      • Overview
      • Image accessibility
      • Video and audio accessibility
      • Image and video adaptability
      • Visual and audio clarity
      • Interactive content and controls
    • AI in action
    • Native mobile
    • Add-ons
      • Advanced Facial Attributes Detection
      • Amazon Rekognition AI Moderation
      • Amazon Rekognition Video Moderation
      • Amazon Rekognition Auto Tagging
      • Amazon Rekognition Celebrity Detection
      • Aspose Document Conversion
      • Cloudinary AI Background Removal
      • Cloudinary AI Content Analysis
      • Cloudinary AI Vision
      • Cloudinary Duplicate Image Detection
      • Google AI Video Moderation
      • Google AI Video Transcription
      • Google Auto Tagging
      • Google Automatic Video Tagging
      • Google Translation
      • Imagga Auto Tagging
      • Imagga Crop and Scale
      • Perception Point Malware Detection
      • Microsoft Azure Video Indexer
      • OCR Text Detection and Extraction
      • Pixelz - Remove the Background
      • URL2PNG Website Screenshots
      • VIESUS™ Automatic Image Enhancement
      • WebPurify Image Moderation
  • References
    • Transformation URL API
    • Upload API
    • Admin API
    • Provisioning API
    • Permissions API
    • Analyze API (Beta)
    • Live streaming API
    • Player profiles API
    • Video config API
    • Cloudinary CLI
    • SDK references
      • Transformation Builder reference
      • React SDK reference
      • Vue.js SDK reference
      • JavaScript SDK reference
      • Angular SDK reference
      • PHP SDK reference
      • Go SDK reference
      • Dart SDK reference
      • Flutter SDK reference
    • Postman collections
    • Upload Widget API
    • Product Gallery API
    • Media Editor API
    • Video Player API
    • Media Library Widget API
  • SDKs
    • Backend SDKs
      • Node.js SDK
      • Python SDK
      • PHP SDK
      • Java SDK
      • Ruby/Rails SDK
      • .NET SDK
      • Go SDK
      • Dart SDK
    • Frontend SDKs
      • React SDK
      • Vue.js SDK
      • Angular SDK
      • JavaScript SDK
      • Next.js SDK
      • jQuery SDK
      • React SDK (Legacy)
      • Vue.js SDK (Legacy)
      • Angular SDK (Legacy)
      • JavaScript SDK (Legacy)
    • Mobile SDKs
      • iOS SDK
      • Android SDK
      • Flutter SDK
      • React Native SDK
      • Kotlin SDK
    • Community-developed libraries
      • Astro
      • Laravel
      • NuxtJS
      • Svelte
      • Gatsby
      • Netlify
      • Drupal
  • Release Notes
    • Latest: April 7, 2026
    • February 28, 2026
    • January 30, 2026
    • Previous releases
      • December 18, 2025
      • October 31, 2025
      • September 3, 2025
      • July 09, 2025
      • May 27, 2025
      • 2024
      • 2023
      • 2022
  • Get Started
    • Image & Video APIs overview
    • Developer kickstart
      • Step 1: Register and find credentials
      • Step 2: Load pages faster with optimization
      • Step 3: Your first transformations
      • Step 4: Resize transformations
      • Step 5: Set up and run your first SDK project
      • Congrats! You're ready to code!
    • SDK quick starts
    • Try it!
      • Code explorers
      • Feature demos
      • Postman collections
    • AI agent tools and MCP servers (Beta)
    • VS Code Extension (Beta)
    • Video tutorial library
      • Programmatic asset management
        • Programmatic upload
          • Upload programmatically
          • Upload with Fetch API
          • Create upload presets (Node.js)
          • Create upload presets (Console UI)
          • Auto upload
          • Moderate images with AI
          • Use AI to generate image captions
          • Upload images in Flutter
          • Upload images in Node.js
          • Auto-tag images in Node.js
          • Upload multiple files in Node.js
          • Upload videos in Node.js
          • Upload images in Python
          • Auto-tag images in Python
          • Upload videos in Python
          • Upload images in PHP
          • Upload images in Go
          • Upload assets in a React app
          • Upload assets in a Vue.js app
          • Drag-and-drop uploads in React
          • Upload assets in a Next.js app
          • Upload assets with Server Actions
          • Upload assets in Svelte
          • Upload assets in a SvelteKit app
          • Upload assets in a Remix app
          • Upload images in Astro
          • Upload images in Hono
          • Use webhooks to remove backgrounds
          • Upload images in Laravel
        • Interaction with Cloudinary APIs
          • Generate upload signature
          • Postman collections introduction
        • Cloudinary SDKs
          • Find your credentials
          • Configure the JavaScript SDK
          • Configure the React SDK
          • Configure the Angular SDK
          • Configure the Flutter SDK
          • Configure Svelte Cloudinary
          • Configure the Javascript SDK in Svelte
          • Getting started with Cloudinary in Node.js
          • Configure the Node.js SDK
          • Configure the Python SDK
          • Configure the PHP SDK
          • Install and configure Laravel SDK
          • Configure the Go SDK
          • Configure the Vue.js SDK
          • Configure the Next.js SDK
          • List images in Next.js
          • Lazy load images with Next.js
          • Image fallbacks in JavaScript
          • Captioning on upload with Node.js
          • Delete assets with Node.js
          • Manage images in a Django app
          • Image gallery with Astro
        • Cloudinary CLI
          • Get started with the CLI
          • Scripting with the CLI
          • Get creative with the CLI
          • Upload with the CLI
        • Widgets and tools
          • Upload Widget
          • Product Gallery
          • Product Gallery in React
          • Product Gallery accessibility
          • VS Code extension
      • Optimization and delivery
        • Programmatic optimization
          • Optimization tips
          • Optimize images in React
          • Optimize videos in React
          • Transform and optimize images in Svelte
          • Optimize videos in Next.js
          • Next.js image optimization
          • Optimize images with Nuxt Cloudinary
          • Optimize images in SolidJS with Cloudinary
          • Optimize images in Flutter
          • Optimize images in Laravel
        • Programmatic delivery
          • Deliver images with the Next.js Image component
          • Deliver images with the Nuxt Image component
          • Diagnosing error codes
        • Video Player
          • Video Player in React
          • Video Player in Next.js
          • ABR streaming in Next.js
          • Video Player in HTML
          • Video Player in Svelte
      • Transformations
        • Get started with transformations
          • Transformation basics
          • Transformation Builder
          • Gravity-based crops for images
          • Enhance and restore images
          • Transformation overlays
          • Content-aware image cropping
          • Content-aware video cropping
          • Convert videos to animated images
        • Advanced transformation features
          • Text overlay transformations
          • Add watermarks in JavaScript
          • Complex transformations
          • Named transformations
          • Named transformations using TX Builder
          • Advanced image components
          • Trim videos in Node.js
          • Splice videos in Node.js
          • Zoompan effect
          • Video transformations
          • Crop and resize images in React
          • Crop and resize videos in React
          • Crop and resize images in Python
          • Remove backgrounds and add drop shadows
          • AI generative fill in Next.js
          • Color accessibility in JavaScript
        • Transformations for social media
          • Social media image cards in Next.js
          • Social media image cards in Svelte
      • Dev Hints on YouTube
      • Dev Hints en Español
      • Cloudinary Café Training Sessions
    • Additional onboarding resources
      • Service introduction
      • Onboarding FAQ
        • Enterprise onboarding FAQ
          • Migration guide
          • Glossary
      • Guides
        • Cloudinary Image
          • Product overview
          • Image transformations
            • Image transformations overview
            • Resizing and cropping
            • Placing layers on images
            • Effects and enhancements
            • Background removal
            • Generative AI transformations
            • Face-detection based transformations
            • Custom focus areas
            • Transformation refiners
            • Animated images
            • Transformations on 3D models
            • Conditional transformations
            • User-defined variables and arithmetic transformations
            • Custom functions
          • Image optimization and delivery
            • Optimization overview
            • Image optimization
              • Image optimization basics
              • PDF optimization
              • Optimize by default
            • Responsive images
              • Using HTML and dynamic image transformations
              • Using JavaScript frontend frameworks
              • Using the cloudinary-core JS library
              • Using client hints
            • Deliver remote media files
              • Social media profile pictures
            • PDF and Photoshop files
            • Media access methods
            • CDN delivery options
          • Programmatic image creation
            • Animated images
            • Archives
            • Sprites
            • Image collages
            • PDF files from images
            • Images from text
          • Product Gallery widget
            • Product Gallery changelog
          • Media Editor widget
          • Image add-ons
          • Cloudinary Image troubleshooting and tips
            • Troubleshooting image transformation errors
            • 404 errors for transformed assets
            • Add a solid color overlay
            • Images delivered without gzip compression
            • Long time to first byte (TTFB) on WebPageTest.org
            • Update a named transformation
            • Cloudinary vs Imagga cropping
            • Placeholder images (LQIP)
            • Common error codes in X-Cld-Error header
            • How to detect corrupted images
            • Force specific image when sharing links on Facebook
            • Offset face-detection gravity
        • Cloudinary Video
          • Product overview
          • Cloudinary Video Player
            • Video Player features
            • Installation and setup
            • How to embed the Video Player
            • Video Player Studio
            • Video Player customization
            • Playlists and recommendations
            • HLS and MPEG-DASH
            • Video Player accessibility
            • Video Player advanced features
              • Events and analytics
              • Video ads and monetization
              • Shoppable Video
              • Interactive Video (Beta)
            • Video Player API reference
            • Player profiles API reference
            • Video config API reference
          • Adaptive bitrate streaming
          • Video transformations
            • Video transformations overview
            • Resizing and cropping
            • Trimming and concatenating
            • Placing layers on videos
            • Effects and enhancements
            • Audio transformations
            • Advanced video transformations
              • Converting videos to animated images
              • Conditional transformations
              • User-defined variables and arithmetic transformations
          • Video and audio optimization
            • Video optimization
            • Adaptive bitrate streaming
            • Audio optimization
          • Video transcription
          • Video analytics
          • Live streaming
            • Live streaming API reference
            • Simulated live streaming
          • Video add-ons
          • Video best practices
          • Social media videos
          • Troubleshooting and tips
            • Troubleshooting video transformation errors
            • Video duration missing on first play
        • Upload
          • Uploading assets
          • Customizing uploads
          • Client-side uploading
          • Upload presets
          • Upload widget
            • Upload widget changelog
          • Troubleshooting and tips
            • Unsigned upload from Google Apps Script
            • Rejected file formats
            • Troubleshooting failed upload requests
            • Always upload a square image
            • Unsupported parameters in unsigned uploads
            • Uploaded image truncated
            • Upload failed - cloud_name is disabled error
        • Asset management
          • CRUD asset management APIs
            • List assets
            • Update assets
            • Delete assets
            • Rename assets
            • Relate assets
          • Media Library for developers
          • Search for assets
            • Search API method
            • Cacheable search URLs
            • Visual Search
            • Search expressions
          • Eager and incoming transformations
          • Custom metadata
            • Tags
            • Contextual metadata
            • Structured metadata
              • Conditional metadata rules
          • Analyze assets
            • Image quality analysis
            • Accessibility analysis
            • Semantic data extraction
            • Media Inspector
            • Analyze API (Beta)
          • Moderate assets
          • Webhook notifications
          • Advanced asset management
            • Signatures
              • Authentication signatures
              • Notification signatures
              • Delivery URL signatures
              • Response signatures
            • Provenance and authenticity
            • Backups and version management
            • Invalidate cached assets
          • Add-ons
          • Troubleshooting and tips
            • Why has the public ID of my asset changed?
            • Check resource type and delivery type
            • Get image or video dimensions
            • Download account assets
            • Delete or modify original images
            • Does Cloudinary store any cookies?
            • Underscores in public IDs or folder names
        • Account management
          • Account settings
            • Folder modes
          • Product environment settings
          • User provisioning
            • SAML SSO
          • Roles and Permissions
            • Migrating to Roles and Permissions
            • Manage & assign roles in the Console
            • Roles and Permissions via API
              • Manage roles
              • Assign roles
              • Define custom policies
            • System roles and policies list
          • Usage data
          • How are transformations counted?
          • Troubleshooting and tips
            • Cancel or delete Cloudinary account
            • Create account with pre-existing email
            • Credit card payments
            • Recover disabled account
            • Migrate Media Optimizer account
            • Successfully go live with Cloudinary
        • Retail and e-commerce
          • Best practices
          • Visual differentiators
          • Customize and optimize assets
          • Workflows
            • Product asset workflows
            • Non-product asset workflows
            • Multi-channel content delivery
        • User-generated content
          • Profile picture sample project
          • Video review sample project
          • Marketplace products sample project
          • Try before you buy sample project
            • Delete temporary UGC assets
        • Accessible media
          • Overview
          • Image accessibility
          • Video and audio accessibility
          • Image and video adaptability
          • Visual and audio clarity
          • Interactive content and controls
        • AI in action
        • Native mobile
        • Add-ons
          • Advanced Facial Attributes Detection
          • Amazon Rekognition AI Moderation
          • Amazon Rekognition Video Moderation
          • Amazon Rekognition Auto Tagging
          • Amazon Rekognition Celebrity Detection
          • Aspose Document Conversion
          • Cloudinary AI Background Removal
          • Cloudinary AI Content Analysis
          • Cloudinary AI Vision
          • Cloudinary Duplicate Image Detection
          • Google AI Video Moderation
          • Google AI Video Transcription
          • Google Auto Tagging
          • Google Automatic Video Tagging
          • Google Translation
          • Imagga Auto Tagging
          • Imagga Crop and Scale
          • Perception Point Malware Detection
          • Microsoft Azure Video Indexer
          • OCR Text Detection and Extraction
          • Pixelz - Remove the Background
          • URL2PNG Website Screenshots
          • VIESUS™ Automatic Image Enhancement
          • WebPurify Image Moderation
      • References
        • Transformation URL API
        • Upload API
        • Admin API
        • Provisioning API
        • Permissions API
        • Analyze API (Beta)
        • Live streaming API
        • Player profiles API
        • Video config API
        • Cloudinary CLI
        • SDK references
          • Transformation Builder reference
          • React SDK reference
          • Vue.js SDK reference
          • JavaScript SDK reference
          • Angular SDK reference
          • PHP SDK reference
          • Go SDK reference
          • Dart SDK reference
          • Flutter SDK reference
        • Postman collections
        • Upload Widget API
        • Product Gallery API
        • Media Editor API
        • Video Player API
        • Media Library Widget API
      • SDKs
        • Backend SDKs
          • Node.js SDK
            • Node.js introduction
            • Node.js quick start
            • Node.js image and video upload
            • Node.js image transformations
            • Node.js video transformations
            • Node.js asset management
            • Node.js sample projects
            • Node.js video tutorials
          • Python SDK
            • Python introduction
            • Python quick start
            • Python image and video upload
            • Python image transformations
            • Python video transformations
            • Python asset management
            • Python sample projects
            • Python video tutorials
          • PHP SDK
            • PHP introduction
            • PHP quick start
            • PHP image and video upload
            • PHP image transformations
            • PHP video transformations
            • PHP asset management
            • PHP sample projects
            • PHP video tutorials
            • PHP Management reference
            • PHP Transformation reference
          • Java SDK
            • Java introduction
            • Java quick start
            • Java image and video upload
            • Java image transformations
            • Java video transformations
            • Java asset management
          • Ruby/Rails SDK
            • Ruby/Rails introduction
            • Ruby/Rails quick start
            • Ruby/Rails image and video upload
            • Ruby/Rails image transformations
            • Ruby/Rails video transformations
            • Ruby/Rails asset management
            • CarrierWave integration
            • Attachinary integration
            • Active Storage integration
          • .NET SDK
            • .NET introduction
            • .NET quick start
            • .NET image and video upload
            • .NET image transformations
            • .NET video transformations
            • .NET asset management
          • Go SDK
            • Go introduction
            • Go quick start
            • Go image and video upload
            • Go media transformations
            • Go asset management
            • Go sample projects
            • Go video tutorials
            • Go SDK reference
          • Dart SDK
            • Dart introduction
            • Dart quick start
            • Dart image and video upload
            • Dart media transformations
            • Dart SDK reference
        • Frontend SDKs
          • React SDK
            • React introduction
            • React Starter Kit
            • React quick start
            • React image and video upload
            • React image transformations
            • React video transformations
            • React sample projects
            • React video tutorials
            • React SDK reference
            • Transformation Builder reference
          • Vue.js SDK
            • Vue.js introduction
            • Vue.js quick start
            • Vue.js image and video upload
            • Vue.js image transformations
            • Vue.js video transformations
            • Vue.js sample projects
            • Vue.js video tutorials
            • Vue.js SDK reference
            • Transformation Builder reference
          • Angular SDK
            • Angular introduction
            • Angular quick start
            • Angular image and video upload
            • Angular image transformations
            • Angular video transformations
            • Angular sample projects
            • Angular video tutorials
            • Angular SDK reference
            • Transformation Builder reference
          • JavaScript SDK
            • JavaScript introduction
            • JavaScript quick start
            • JavaScript image and video upload
            • JavaScript image transformations
            • JavaScript video transformations
            • JavaScript sample projects
            • JavaScript video tutorials
            • JavaScript SDK reference
            • Transformation Builder reference
          • Next.js SDK
            • Next.js introduction
            • Next.js quick start
            • Next.js image and video upload
            • Next.js image transformations
            • Next.js video transformations
            • Next.js sample projects
            • Next.js video tutorials
          • jQuery SDK
            • jQuery introduction
            • jQuery image and video upload
            • jQuery image transformations
            • jQuery video transformations
          • React SDK (Legacy)
            • React introduction
            • React image and video upload
            • React image transformations
            • React video transformations
            • React migration guide
          • Vue.js SDK (Legacy)
            • Vue.js introduction
            • Vue.js image and video upload
            • Vue.js image transformations
            • Vue.js video transformations
            • Vue.js migration guide
          • Angular SDK (Legacy)
            • Angular introduction
            • Angular image and video upload
            • Angular image transformations
            • Angular video transformations
            • Angular migration guide
          • JavaScript SDK (Legacy)
            • JavaScript introduction
            • JavaScript image and video upload
            • JavaScript image transformations
            • JavaScript video transformations
            • JavaScript migration guide
        • Mobile SDKs
          • iOS SDK
            • iOS introduction
            • iOS quick start
            • iOS image and video upload
            • iOS image transformations
            • iOS video transformations
            • iOS video player
            • iOS sample projects
          • Android SDK
            • Android introduction
            • Android quick start
            • Android image and video upload
            • Android image transformations
            • Android video transformations
            • Android video player
            • Android sample projects
          • Flutter SDK
            • Flutter introduction
            • Flutter quick start
            • Flutter image and video upload
            • Flutter media transformations
            • Flutter video player
            • Flutter video tutorials
            • Dart-based cloudinary_url_gen package reference
            • Flutter SDK reference
          • React Native SDK
            • React Native introduction
            • React Native image and video upload
            • React Native image transformations
            • React Native video transformations
            • React Native video player
          • Kotlin SDK
            • Kotlin introduction
            • Kotlin media transformations
        • Community-developed libraries
          • Astro
          • Laravel
          • NuxtJS
          • Svelte
          • Gatsby
          • Netlify
          • Drupal
      • Release Notes
        • Latest: April 7, 2026
        • February 28, 2026
        • January 30, 2026
        • Previous releases
          • December 18, 2025
          • October 31, 2025
          • September 3, 2025
          • July 09, 2025
          • May 27, 2025
          • 2024
            • November 29, 2024
            • October 9, 2024
            • August 12, 2024
            • June 27, 2024
            • May 31, 2024
            • April 16, 2024
            • February 28, 2024
            • January 03, 2024
          • 2023
            • November 13, 2023
            • October 26, 2023
            • September 21, 2023
            • August 15, 2023
            • July 13, 2023
            • June 19, 2023
            • May 16, 2023
            • Apr 04, 2023
            • Feb 21, 2023
          • 2022
            • Dec 27, 2022
      Image & Video APIs
      • Get Started
      • Guides
      • References
      • SDKs
      • Release Notes
      Assets (DAM)
      • Get Started
      • User Guides
      • Admin Guides
      • Assets APIs
      • Release Notes
      MediaFlows
      • Get Started
      • PowerFlows
      • EasyFlows
      • Release Notes
    • More Products
        More Products
        Integrations
        Add Cloudinary capabilities to your tech stack apps and platforms
        Cloudinary Moderation
        AI-powered visual quality and brand checks
        FinalTouch (Early Access)
        AI-powered virtual photoshoot and image creation for eCommerce
    • Resources
        Resources
        Blog
        Training
        Support
        Demos
        Additional Resources
    • Pricing
      sign up for free
      Image & Video APIs
      Menu
      • Get Started
        • Image & Video APIs overview
        • Developer kickstart
          • Step 1: Register and find credentials
          • Step 2: Load pages faster with optimization
          • Step 3: Your first transformations
          • Step 4: Resize transformations
          • Step 5: Set up and run your first SDK project
          • Congrats! You're ready to code!
        • SDK quick starts
        • Try it!
          • Code explorers
          • Feature demos
          • Postman collections
        • AI agent tools and MCP servers (Beta)
        • VS Code Extension (Beta)
        • Video tutorial library
          • Programmatic asset management
            • Programmatic upload
              • Upload programmatically
              • Upload with Fetch API
              • Create upload presets (Node.js)
              • Create upload presets (Console UI)
              • Auto upload
              • Moderate images with AI
              • Use AI to generate image captions
              • Upload images in Flutter
              • Upload images in Node.js
              • Auto-tag images in Node.js
              • Upload multiple files in Node.js
              • Upload videos in Node.js
              • Upload images in Python
              • Auto-tag images in Python
              • Upload videos in Python
              • Upload images in PHP
              • Upload images in Go
              • Upload assets in a React app
              • Upload assets in a Vue.js app
              • Drag-and-drop uploads in React
              • Upload assets in a Next.js app
              • Upload assets with Server Actions
              • Upload assets in Svelte
              • Upload assets in a SvelteKit app
              • Upload assets in a Remix app
              • Upload images in Astro
              • Upload images in Hono
              • Use webhooks to remove backgrounds
              • Upload images in Laravel
            • Interaction with Cloudinary APIs
              • Generate upload signature
              • Postman collections introduction
            • Cloudinary SDKs
              • Find your credentials
              • Configure the JavaScript SDK
              • Configure the React SDK
              • Configure the Angular SDK
              • Configure the Flutter SDK
              • Configure Svelte Cloudinary
              • Configure the Javascript SDK in Svelte
              • Getting started with Cloudinary in Node.js
              • Configure the Node.js SDK
              • Configure the Python SDK
              • Configure the PHP SDK
              • Install and configure Laravel SDK
              • Configure the Go SDK
              • Configure the Vue.js SDK
              • Configure the Next.js SDK
              • List images in Next.js
              • Lazy load images with Next.js
              • Image fallbacks in JavaScript
              • Captioning on upload with Node.js
              • Delete assets with Node.js
              • Manage images in a Django app
              • Image gallery with Astro
            • Cloudinary CLI
              • Get started with the CLI
              • Scripting with the CLI
              • Get creative with the CLI
              • Upload with the CLI
            • Widgets and tools
              • Upload Widget
              • Product Gallery
              • Product Gallery in React
              • Product Gallery accessibility
              • VS Code extension
          • Optimization and delivery
            • Programmatic optimization
              • Optimization tips
              • Optimize images in React
              • Optimize videos in React
              • Transform and optimize images in Svelte
              • Optimize videos in Next.js
              • Next.js image optimization
              • Optimize images with Nuxt Cloudinary
              • Optimize images in SolidJS with Cloudinary
              • Optimize images in Flutter
              • Optimize images in Laravel
            • Programmatic delivery
              • Deliver images with the Next.js Image component
              • Deliver images with the Nuxt Image component
              • Diagnosing error codes
            • Video Player
              • Video Player in React
              • Video Player in Next.js
              • ABR streaming in Next.js
              • Video Player in HTML
              • Video Player in Svelte
          • Transformations
            • Get started with transformations
              • Transformation basics
              • Transformation Builder
              • Gravity-based crops for images
              • Enhance and restore images
              • Transformation overlays
              • Content-aware image cropping
              • Content-aware video cropping
              • Convert videos to animated images
            • Advanced transformation features
              • Text overlay transformations
              • Add watermarks in JavaScript
              • Complex transformations
              • Named transformations
              • Named transformations using TX Builder
              • Advanced image components
              • Trim videos in Node.js
              • Splice videos in Node.js
              • Zoompan effect
              • Video transformations
              • Crop and resize images in React
              • Crop and resize videos in React
              • Crop and resize images in Python
              • Remove backgrounds and add drop shadows
              • AI generative fill in Next.js
              • Color accessibility in JavaScript
            • Transformations for social media
              • Social media image cards in Next.js
              • Social media image cards in Svelte
          • Dev Hints on YouTube
          • Dev Hints en Español
          • Cloudinary Café Training Sessions
        • Additional onboarding resources
          • Service introduction
          • Onboarding FAQ
            • Enterprise onboarding FAQ
              • Migration guide
              • Glossary
          • Guides
            • Cloudinary Image
              • Product overview
              • Image transformations
                • Image transformations overview
                • Resizing and cropping
                • Placing layers on images
                • Effects and enhancements
                • Background removal
                • Generative AI transformations
                • Face-detection based transformations
                • Custom focus areas
                • Transformation refiners
                • Animated images
                • Transformations on 3D models
                • Conditional transformations
                • User-defined variables and arithmetic transformations
                • Custom functions
              • Image optimization and delivery
                • Optimization overview
                • Image optimization
                  • Image optimization basics
                  • PDF optimization
                  • Optimize by default
                • Responsive images
                  • Using HTML and dynamic image transformations
                  • Using JavaScript frontend frameworks
                  • Using the cloudinary-core JS library
                  • Using client hints
                • Deliver remote media files
                  • Social media profile pictures
                • PDF and Photoshop files
                • Media access methods
                • CDN delivery options
              • Programmatic image creation
                • Animated images
                • Archives
                • Sprites
                • Image collages
                • PDF files from images
                • Images from text
              • Product Gallery widget
                • Product Gallery changelog
              • Media Editor widget
              • Image add-ons
              • Cloudinary Image troubleshooting and tips
                • Troubleshooting image transformation errors
                • 404 errors for transformed assets
                • Add a solid color overlay
                • Images delivered without gzip compression
                • Long time to first byte (TTFB) on WebPageTest.org
                • Update a named transformation
                • Cloudinary vs Imagga cropping
                • Placeholder images (LQIP)
                • Common error codes in X-Cld-Error header
                • How to detect corrupted images
                • Force specific image when sharing links on Facebook
                • Offset face-detection gravity
            • Cloudinary Video
              • Product overview
              • Cloudinary Video Player
                • Video Player features
                • Installation and setup
                • How to embed the Video Player
                • Video Player Studio
                • Video Player customization
                • Playlists and recommendations
                • HLS and MPEG-DASH
                • Video Player accessibility
                • Video Player advanced features
                  • Events and analytics
                  • Video ads and monetization
                  • Shoppable Video
                  • Interactive Video (Beta)
                • Video Player API reference
                • Player profiles API reference
                • Video config API reference
              • Adaptive bitrate streaming
              • Video transformations
                • Video transformations overview
                • Resizing and cropping
                • Trimming and concatenating
                • Placing layers on videos
                • Effects and enhancements
                • Audio transformations
                • Advanced video transformations
                  • Converting videos to animated images
                  • Conditional transformations
                  • User-defined variables and arithmetic transformations
              • Video and audio optimization
                • Video optimization
                • Adaptive bitrate streaming
                • Audio optimization
              • Video transcription
              • Video analytics
              • Live streaming
                • Live streaming API reference
                • Simulated live streaming
              • Video add-ons
              • Video best practices
              • Social media videos
              • Troubleshooting and tips
                • Troubleshooting video transformation errors
                • Video duration missing on first play
            • Upload
              • Uploading assets
              • Customizing uploads
              • Client-side uploading
              • Upload presets
              • Upload widget
                • Upload widget changelog
              • Troubleshooting and tips
                • Unsigned upload from Google Apps Script
                • Rejected file formats
                • Troubleshooting failed upload requests
                • Always upload a square image
                • Unsupported parameters in unsigned uploads
                • Uploaded image truncated
                • Upload failed - cloud_name is disabled error
            • Asset management
              • CRUD asset management APIs
                • List assets
                • Update assets
                • Delete assets
                • Rename assets
                • Relate assets
              • Media Library for developers
              • Search for assets
                • Search API method
                • Cacheable search URLs
                • Visual Search
                • Search expressions
              • Eager and incoming transformations
              • Custom metadata
                • Tags
                • Contextual metadata
                • Structured metadata
                  • Conditional metadata rules
              • Analyze assets
                • Image quality analysis
                • Accessibility analysis
                • Semantic data extraction
                • Media Inspector
                • Analyze API (Beta)
              • Moderate assets
              • Webhook notifications
              • Advanced asset management
                • Signatures
                  • Authentication signatures
                  • Notification signatures
                  • Delivery URL signatures
                  • Response signatures
                • Provenance and authenticity
                • Backups and version management
                • Invalidate cached assets
              • Add-ons
              • Troubleshooting and tips
                • Why has the public ID of my asset changed?
                • Check resource type and delivery type
                • Get image or video dimensions
                • Download account assets
                • Delete or modify original images
                • Does Cloudinary store any cookies?
                • Underscores in public IDs or folder names
            • Account management
              • Account settings
                • Folder modes
              • Product environment settings
              • User provisioning
                • SAML SSO
              • Roles and Permissions
                • Migrating to Roles and Permissions
                • Manage & assign roles in the Console
                • Roles and Permissions via API
                  • Manage roles
                  • Assign roles
                  • Define custom policies
                • System roles and policies list
              • Usage data
              • How are transformations counted?
              • Troubleshooting and tips
                • Cancel or delete Cloudinary account
                • Create account with pre-existing email
                • Credit card payments
                • Recover disabled account
                • Migrate Media Optimizer account
                • Successfully go live with Cloudinary
            • Retail and e-commerce
              • Best practices
              • Visual differentiators
              • Customize and optimize assets
              • Workflows
                • Product asset workflows
                • Non-product asset workflows
                • Multi-channel content delivery
            • User-generated content
              • Profile picture sample project
              • Video review sample project
              • Marketplace products sample project
              • Try before you buy sample project
                • Delete temporary UGC assets
            • Accessible media
              • Overview
              • Image accessibility
              • Video and audio accessibility
              • Image and video adaptability
              • Visual and audio clarity
              • Interactive content and controls
            • AI in action
            • Native mobile
            • Add-ons
              • Advanced Facial Attributes Detection
              • Amazon Rekognition AI Moderation
              • Amazon Rekognition Video Moderation
              • Amazon Rekognition Auto Tagging
              • Amazon Rekognition Celebrity Detection
              • Aspose Document Conversion
              • Cloudinary AI Background Removal
              • Cloudinary AI Content Analysis
              • Cloudinary AI Vision
              • Cloudinary Duplicate Image Detection
              • Google AI Video Moderation
              • Google AI Video Transcription
              • Google Auto Tagging
              • Google Automatic Video Tagging
              • Google Translation
              • Imagga Auto Tagging
              • Imagga Crop and Scale
              • Perception Point Malware Detection
              • Microsoft Azure Video Indexer
              • OCR Text Detection and Extraction
              • Pixelz - Remove the Background
              • URL2PNG Website Screenshots
              • VIESUS™ Automatic Image Enhancement
              • WebPurify Image Moderation
          • References
            • Transformation URL API
            • Upload API
            • Admin API
            • Provisioning API
            • Permissions API
            • Analyze API (Beta)
            • Live streaming API
            • Player profiles API
            • Video config API
            • Cloudinary CLI
            • SDK references
              • Transformation Builder reference
              • React SDK reference
              • Vue.js SDK reference
              • JavaScript SDK reference
              • Angular SDK reference
              • PHP SDK reference
              • Go SDK reference
              • Dart SDK reference
              • Flutter SDK reference
            • Postman collections
            • Upload Widget API
            • Product Gallery API
            • Media Editor API
            • Video Player API
            • Media Library Widget API
          • SDKs
            • Backend SDKs
              • Node.js SDK
                • Node.js introduction
                • Node.js quick start
                • Node.js image and video upload
                • Node.js image transformations
                • Node.js video transformations
                • Node.js asset management
                • Node.js sample projects
                • Node.js video tutorials
              • Python SDK
                • Python introduction
                • Python quick start
                • Python image and video upload
                • Python image transformations
                • Python video transformations
                • Python asset management
                • Python sample projects
                • Python video tutorials
              • PHP SDK
                • PHP introduction
                • PHP quick start
                • PHP image and video upload
                • PHP image transformations
                • PHP video transformations
                • PHP asset management
                • PHP sample projects
                • PHP video tutorials
                • PHP Management reference
                • PHP Transformation reference
              • Java SDK
                • Java introduction
                • Java quick start
                • Java image and video upload
                • Java image transformations
                • Java video transformations
                • Java asset management
              • Ruby/Rails SDK
                • Ruby/Rails introduction
                • Ruby/Rails quick start
                • Ruby/Rails image and video upload
                • Ruby/Rails image transformations
                • Ruby/Rails video transformations
                • Ruby/Rails asset management
                • CarrierWave integration
                • Attachinary integration
                • Active Storage integration
              • .NET SDK
                • .NET introduction
                • .NET quick start
                • .NET image and video upload
                • .NET image transformations
                • .NET video transformations
                • .NET asset management
              • Go SDK
                • Go introduction
                • Go quick start
                • Go image and video upload
                • Go media transformations
                • Go asset management
                • Go sample projects
                • Go video tutorials
                • Go SDK reference
              • Dart SDK
                • Dart introduction
                • Dart quick start
                • Dart image and video upload
                • Dart media transformations
                • Dart SDK reference
            • Frontend SDKs
              • React SDK
                • React introduction
                • React Starter Kit
                • React quick start
                • React image and video upload
                • React image transformations
                • React video transformations
                • React sample projects
                • React video tutorials
                • React SDK reference
                • Transformation Builder reference
              • Vue.js SDK
                • Vue.js introduction
                • Vue.js quick start
                • Vue.js image and video upload
                • Vue.js image transformations
                • Vue.js video transformations
                • Vue.js sample projects
                • Vue.js video tutorials
                • Vue.js SDK reference
                • Transformation Builder reference
              • Angular SDK
                • Angular introduction
                • Angular quick start
                • Angular image and video upload
                • Angular image transformations
                • Angular video transformations
                • Angular sample projects
                • Angular video tutorials
                • Angular SDK reference
                • Transformation Builder reference
              • JavaScript SDK
                • JavaScript introduction
                • JavaScript quick start
                • JavaScript image and video upload
                • JavaScript image transformations
                • JavaScript video transformations
                • JavaScript sample projects
                • JavaScript video tutorials
                • JavaScript SDK reference
                • Transformation Builder reference
              • Next.js SDK
                • Next.js introduction
                • Next.js quick start
                • Next.js image and video upload
                • Next.js image transformations
                • Next.js video transformations
                • Next.js sample projects
                • Next.js video tutorials
              • jQuery SDK
                • jQuery introduction
                • jQuery image and video upload
                • jQuery image transformations
                • jQuery video transformations
              • React SDK (Legacy)
                • React introduction
                • React image and video upload
                • React image transformations
                • React video transformations
                • React migration guide
              • Vue.js SDK (Legacy)
                • Vue.js introduction
                • Vue.js image and video upload
                • Vue.js image transformations
                • Vue.js video transformations
                • Vue.js migration guide
              • Angular SDK (Legacy)
                • Angular introduction
                • Angular image and video upload
                • Angular image transformations
                • Angular video transformations
                • Angular migration guide
              • JavaScript SDK (Legacy)
                • JavaScript introduction
                • JavaScript image and video upload
                • JavaScript image transformations
                • JavaScript video transformations
                • JavaScript migration guide
            • Mobile SDKs
              • iOS SDK
                • iOS introduction
                • iOS quick start
                • iOS image and video upload
                • iOS image transformations
                • iOS video transformations
                • iOS video player
                • iOS sample projects
              • Android SDK
                • Android introduction
                • Android quick start
                • Android image and video upload
                • Android image transformations
                • Android video transformations
                • Android video player
                • Android sample projects
              • Flutter SDK
                • Flutter introduction
                • Flutter quick start
                • Flutter image and video upload
                • Flutter media transformations
                • Flutter video player
                • Flutter video tutorials
                • Dart-based cloudinary_url_gen package reference
                • Flutter SDK reference
              • React Native SDK
                • React Native introduction
                • React Native image and video upload
                • React Native image transformations
                • React Native video transformations
                • React Native video player
              • Kotlin SDK
                • Kotlin introduction
                • Kotlin media transformations
            • Community-developed libraries
              • Astro
              • Laravel
              • NuxtJS
              • Svelte
              • Gatsby
              • Netlify
              • Drupal
          • Release Notes
            • Latest: April 7, 2026
            • February 28, 2026
            • January 30, 2026
            • Previous releases
              • December 18, 2025
              • October 31, 2025
              • September 3, 2025
              • July 09, 2025
              • May 27, 2025
              • 2024
                • November 29, 2024
                • October 9, 2024
                • August 12, 2024
                • June 27, 2024
                • May 31, 2024
                • April 16, 2024
                • February 28, 2024
                • January 03, 2024
              • 2023
                • November 13, 2023
                • October 26, 2023
                • September 21, 2023
                • August 15, 2023
                • July 13, 2023
                • June 19, 2023
                • May 16, 2023
                • Apr 04, 2023
                • Feb 21, 2023
              • 2022
                • Dec 27, 2022
          • Image & Video APIs
          • Get Started
          • Video tutorial library
          • Programmatic asset management
          • Cloudinary SDKs
          • Image gallery with Astro

          Image gallery with Astro and Cloudinary (video tutorial)

          Last updated: Apr-19-2026

          Overview

          Learn how to build an image gallery in Astro by sourcing assets directly from your Cloudinary Media Library using the Astro content layer. This tutorial shows how to use the cldAssetsLoader from the Astro Cloudinary community-developed library to define a Cloudinary collection, fetch assets with getCollection, and display them using the CldImage component with automatic format optimization, responsive sizing, and AI-powered smart cropping.

          On this page:

          • Overview
          • Video tutorial
          • Tutorial contents
          • Keep learning

          Video tutorial


          This video is brought to you by Cloudinary's video player - embed your own!
          Use the controls to set the playback speed, navigate to chapters of interest and select subtitles in your preferred language.

          Tutorial contents

          This tutorial presents the following topics. Click a timestamp to jump to that part of the video.

          Introduction

          Jump to this spot in the video  0:00 Astro's content layer can source content from many places, including Cloudinary. Using the cldAssetsLoader from the Astro Cloudinary community-developed library, you can define a collection that pulls images and videos directly from your Cloudinary media library.

          Defining a Cloudinary collection

          Jump to this spot in the video  0:48 In your Astro project's src/content/config.ts file, define a collection using defineCollection from astro:content. Set the loader to cldAssetsLoader(), imported from astro-cloudinary/loaders. By default, the loader fetches all assets from the root of your Cloudinary account using the Admin API. Pass a folder name in the loader options to limit results to a specific folder.

          Fetching assets in a page

          Jump to this spot in the video  2:10 In any Astro page or component, import getCollection from astro:content and call it with your collection name to fetch all assets. The returned data includes metadata for each asset from your Cloudinary account, such as public_id, secure_url, width, height, and more.

          Displaying images

          Jump to this spot in the video  2:50 Loop through the fetched assets and render each image using a standard <img> tag with asset.data.secure_url as the source. Each asset object exposes useful metadata from Cloudinary's resource response, including dimensions, format, and tags, giving you full control over how images are displayed.

          Customizing the loader

          Jump to this spot in the video  3:23 Because cldAssetsLoader uses the Admin API under the hood, you can pass a configuration object to customize what it fetches. Filter assets by folder (e.g., folder: "e-commerce/sneakers"), or request additional data such as contextual metadata, moderation status, and structured metadata fields, depending on what your project needs.

          CLD Image component and transformations

          Jump to this spot in the video  3:50 Because your assets are sourced from Cloudinary, you can go a step further and apply image transformations directly in your Astro components. Import CldImage from astro-cloudinary and replace the <img> tag with it, using asset.data.public_id as the src. Pass width and height from the asset data for the correct aspect ratio. CldImage automatically applies f_auto and q_auto optimizations, delivering the best format and quality for each browser.

          Responsive sizing

          Jump to this spot in the video  4:54 Add the sizes attribute to CldImage to define how wide the image should be at different viewport sizes. For example, a four-column grid might always display images at roughly 25% of the viewport width. Cloudinary uses this information to deliver only the pixels needed for each device, reducing bandwidth without sacrificing visual quality.

          AI-powered smart cropping

          Jump to this spot in the video  5:18 Add a crop: "auto" transformation to CldImage to enable Cloudinary's AI-powered subject-aware cropping. Every image is cropped at the server level, not hidden with CSS, so you're never sending unnecessary pixels. Cloudinary's AI detects the most important subject or region in each photo and crops to preserve it.

          Keep learning

          Related topics
          • Watch more Dev Hints videos on the Cloudinary YouTube channel.
          • Learn more about the Astro Cloudinary community-developed library for additional components and integration options.
          • Explore image optimization to understand automatic format and quality delivery.
          • See how to resize and crop images including AI-powered subject-aware cropping.
          • Discover how to apply image transformations such as overlays, effects, and color adjustments.

          If you like this, you might also like...

          Upload Images in Astro
          Upload images from an HTML form in Astro.js

          List Images in Next.js
          List images using the Next.js app router and Node.js SDK

          Using the Next.js Image Component
          Deliver images using the Next.js Image component

           

          Cloudinary Academy

           

          Check out the Cloudinary Academy for free self-paced Cloudinary courses on a variety of developer or DAM topics, or register for formal instructor-led courses, either virtual or on-site.

           

          ✔️ Feedback sent!

          ✖️  
          How helpful was this doc page?

          Thanks for submitting your rating. We got it!
          We'd love to hear more. Tell us what you liked and how we can make this page even better:

          *


          Cloudinary is committed to protecting your information security. For details, see our privacy policy.

          For additional assistance, open a support request.

          Error

          Unfortunately there's been an error sending your feedback.

          Rate this page:

          one star two stars three stars four stars five stars
          • Manage images in a Django app (video tutorial)
          • Cloudinary CLI tutorials
          Cloudinary Logo - White
          Products
          • Programmable Media
          • Image API
          • Video API
          • DAM
          • Demos
          • Pricing
          • FAQ
          Solutions
            • E-commerce
            • Retail
            • Media & Entertainment
            • Travel & Hospitality
            • Non-Profits
            • Our Customers
            • Resource Library
            Developers
            • Getting Started
            • Documentation
            • SDKs
            • Add-ons
            Company
            • About Us
            • Customers
            • Partners
            • Events
            • Careers
            • Newsroom
            • Blog
            • Trust
            Contact Us
            • Technical Support
            • Contact Sales
            • Education & Training
            • Institute of Quality & Control
            • GDPR
            • SOC
            • Best Overall Dev Portal 2024 Best Overall Dev Portal 2024
            • Terms of Use
            • Privacy Policy
            • DMCA Notice

            © 2026 Cloudinary. All rights reserved.

            A #512