Cloudinary Pricing 2026: Free Tier Limits, Transformation Costs & When to Upgrade

By Nayan Kyada · · 6 min read

Part of Next.js Performance

Cloudinary is the default image and video CDN recommendation you'll see across headless CMS tutorials — including Sanity setups where teams want more transformation control than the Sanity image pipeline offers. The pricing model looks simple until you hit your first billing surprise. Here's what the tiers actually cost and where the thresholds are.

How Cloudinary pricing works in 2026

Cloudinary bills on credits, not on individual resource units. One credit equals one of the following: 1 GB of managed storage, 1 GB of net viewing bandwidth, or 1,000 transformations. That normalisation sounds clean, but in practice transformation usage is almost always the first limit you hit — not storage or bandwidth — because every resize, crop, format conversion, or overlay counts as a separate transformation.

The free plan includes 25 credits per month. For a small marketing site serving pre-sized images in one or two formats, 25 credits is enough. For a Next.js site pulling Sanity assets and using Cloudinary's f_auto,q_auto auto-format pipeline with multiple breakpoints, you can drain 25 credits in a day if a page gets indexed and crawled hard.

Cloudinary plan tiers and real costs

PlanMonthly priceCredits includedOverage per creditKey limits
Free$025Not available — upgrade requiredNo video transcoding API, basic support
Plus$89225~$1.00Unlimited transformations (within credits), webhooks
Advanced$224600~$0.90Background removal AI, video, priority support
EnterpriseCustomCustomNegotiatedSLA, SSO, custom domains, dedicated infra

Overage on the free plan is not charged — you're cut off and assets stop transforming or delivering until the next billing cycle. That's a production outage risk that most teams don't realise until it happens. Upgrading to Plus is the first credible option for any site with real traffic.

The $89/month Plus plan is where most small-to-medium Next.js agencies land their client sites. 225 credits is roughly 225,000 transformations per month, which handles a typical content site with 50–100 pages, next/image serving three breakpoints, and both WebP and AVIF variants if you're using Cloudinary for format negotiation rather than Sanity's own auto=format parameter.

What actually eats your credits

Three patterns drain credits faster than teams expect:

1. Eager transformations on upload. If you configure Cloudinary to pre-generate multiple sizes and formats on asset upload — which the dashboard encourages — you're spending transformation credits immediately for every new image, regardless of whether those variants are ever served.

2. Named transformations not caching. Cloudinary caches transformed URLs, but cache keys are based on the full URL including transformation parameters. If your CMS generates slightly different crop parameters per image (common with Sanity hotspot data translated into Cloudinary g_auto gravity), each unique combination counts as a new transformation.

3. Video auto-quality. Any video transcoding via the q_auto or f_auto parameter on video assets counts against your transformation budget at a much higher weight than image transformations. The Advanced plan is essentially required the moment video enters the workflow.

Cloudinary vs Sanity image pipeline: cost comparison

For teams already on Sanity, the most common question is whether Cloudinary is worth adding at all. Sanity's own image CDN — accessed via @sanity/image-url — handles format negotiation (auto=format), quality, and width resizing with no per-transformation charge. The Sanity Growth plan at $15/month includes enough bandwidth for most sites. You only pay separately for Cloudinary if you need capabilities Sanity's pipeline doesn't have: AI background removal, overlays and text rendering, video transcoding, or face-detection cropping.

CapabilitySanity image pipelineCloudinary Plus ($89/mo)
WebP / AVIF auto-formatYes (auto=format)Yes (f_auto)
Width / quality paramsYesYes
Hotspot / focal cropYes (native)Yes (g_auto or manual)
AI background removalNoYes (Advanced only)
Video transcodingNoYes (Advanced only)
Text / overlay compositingNoYes
Per-transformation billingNoYes

For pure image delivery on a Sanity-backed Next.js site, there's rarely a cost justification for adding Cloudinary. The Sanity pipeline covers 95% of what next/image needs. Where Cloudinary earns its fee is when the design calls for generated social share images, AI-cropped headshots, or video that needs adaptive bitrate variants without standing up your own FFmpeg pipeline.

The upgrade triggers to watch

Free → Plus: You hit the 25-credit ceiling in any month, or you need webhooks for cache invalidation coordination with Next.js ISR revalidation routes.

Plus → Advanced: You add video to the project, need background removal for product images, or your credit usage consistently exceeds 200/month. The jump from $89 to $224 is steep — model your transformation counts before committing.

Advanced → Enterprise: You need a contractual uptime SLA, SAML SSO for the media library, or your bandwidth alone exceeds several TB per month. Enterprise pricing is negotiated; most teams report landing between $500 and $2,000/month depending on volume.

What Cloudinary's pricing model hides

The credit system obscures the real cost structure: you're paying for transformations as a proxy for compute. Teams that cache aggressively at the CDN layer (Vercel Edge Cache, Cloudflare) and avoid redundant transformation variants can stay on the Plus plan indefinitely. Teams that let every page request trigger a new transformation — because they're passing dynamic width parameters rather than a fixed set — burn through credits at 10× the expected rate.

One practical rule: define a fixed breakpoint set (e.g. 640, 960, 1280, 1920) and use Cloudinary named transformations for your site's image variants. Pre-generate on upload for predictable cost. Avoid passing arbitrary w_ parameters derived from viewport width at request time.

If you're choosing between Cloudinary and Sanity's native pipeline for a greenfield Next.js site, start with Sanity's pipeline — it's included in what you're already paying — and add Cloudinary only when a specific capability gap forces the decision.