Development Choices

What a hosted media automation costs to run

Author
Joseph TrasattiMember of technical staff
Published
Section
No-Code
Length
7 min read4 sources cited

A hosted media automation is free to run; the work it does is not. Every transformation, gigabyte stored or delivered that a flow performs draws the base plan's credits, add-on features it calls bill as separate invoice lines, and per-asset triggers over bulk imports multiply operations. Price it against a developer, a deployment target and someone carrying a pager.

What a hosted media automation costs to run

A hosted media automation — a MediaFlows flow, in Cloudinary’s case — has no price of its own. Its running cost is the sum of three things: the base-plan credits its operations draw from the product environment, any add-on feature it calls, and the infrastructure the platform carries so that you do not. Each lands in a different place, and pricing the automation means pricing all three, not the first one.

The platform absorbs the recurring cost

The part of the bill that is easiest to forget is the part that never appears on it. A small internal service that resizes uploads, tags them and files them into folders is cheap to write — an afternoon, perhaps a day. It stops being cheap the following quarter. Something has to run it, so it needs a deployment target and a way to deploy to it. Its dependencies age, so someone has to bump them and rerun whatever tests exist. Traffic grows, so the queue that was fine at a hundred assets an hour needs attention at ten thousand. And when it fails at two in the morning, a person is on the hook.

A hosted automation moves all of that onto the vendor. MediaFlows runs inside Cloudinary: the runtime, the scaling, the upgrades to the blocks a flow is built from and the security patching of the environment they execute in are Cloudinary’s problem, on Cloudinary’s schedule. That is the mechanism by which a flow that does the same job as the internal service ends up cheaper over a year even if the service was free to write — the recurring engineering cost is what makes small services expensive, and it is exactly the cost the platform takes on. If the same logic would have to be built and then carried by a team, the comparison in visual automation against a hand-written webhook handler is the one to read.

The flow is free; the operations are not

What a flow costs to have and what it costs to do are separate questions. There is no charge for the flow existing. There is a charge for the work it performs, because every operation the flow triggers is metered exactly as it would be if a developer had called the API directly.

Cloudinary’s Image & Video API bills in credits. Per Cloudinary’s credits FAQ (checked 2026-08-18), one credit is 1,000 image or video transformations, or 1 GB of managed storage, or 1 GB of delivered bandwidth; video processing consumes roughly 500 seconds of SD or 250 seconds of HD per credit. A flow that generates three renditions of every incoming image is three transformations per asset. A flow that copies assets between folders or ingests from a CSV adds to storage. A flow that publishes assets to a public URL adds bandwidth once anyone requests them. None of that is billed as automation — it is billed as transformations, storage and bandwidth, against the base plan the product environment sits on.

The self-serve plan ladder as shown on the pricing page on 2026-08-18:

Plan Monthly Annual (per month) Credits per month Users Product environments
Free $0 $0 25 3 1
Plus $99 $89 225 3 2
Advanced $249 $224 600 5 3

Annual billing saves roughly 10%. The ladder continues above Advanced into higher self-serve tiers and Enterprise on custom terms. Two details of the metering matter for an automation specifically. Transformations and bandwidth are counted over a rolling 30-day window, not a calendar month, so a one-off spike — a migration flow that reprocesses an archive — ages out of the count 30 days later without any action. Storage is a current total, so a flow that deletes assets reduces it immediately, and a flow that duplicates them raises it just as immediately. The Free plan is usable in production and needs no card, which makes it a reasonable place to run a flow long enough to read its real consumption before choosing a tier.

Add-ons bill separately

A flow can call features that are not part of the base plan — content moderation, AI-generated tags, and the other capabilities Cloudinary sells as add-ons. These do not draw base credits. They bill separately and appear as their own lines on the invoice, each with its own free tier and its own paid tiers, and a paid base plan does not lift the add-on limits: on Free, only the free add-on tiers are reachable. Cloudinary’s free-plan FAQ sets this out (checked 2026-08-18).

The consequence for cost modelling is that a flow’s price is not one number. A moderation flow such as the one described in automating moderation of user-generated media spends base credits on the transformations it produces and add-on units on every image it sends for moderation, and those two consumptions grow at different rates and run out at different points. Read a flow block by block and note which blocks touch an add-on; those are the lines to watch when the volume changes.

Per-asset triggers over bulk imports

The cost pattern that catches people is not a flow doing something expensive; it is a cheap flow being run far more often than intended. A flow triggered on upload runs once per asset. That is the right shape for a trickle of user uploads. Point the same trigger at a bulk import — a migration of fifty thousand assets, a CSV ingest, a folder sync from a PIM — and it fires fifty thousand times, each run performing its full set of transformations, metadata calls and add-on requests, in the same hour.

The same logic expressed as a scheduled batch touches a fraction of the operations. It can query for what changed since it last ran, skip assets that already have the derived versions, and process only the delta — where a per-asset trigger has no view beyond the one asset in front of it and no way to know that the previous 49,999 runs already did the work. The trigger types a hosted flow can use are covered in automation trigger types; the general rule is that anything reacting to individual events should be paired with a bulk path that is disabled during imports, or with a scheduled reconciliation flow that does the same job in one pass. The rolling 30-day window softens an accidental spike — it ages out — but it does not refund it.

Compare against the fully loaded alternative

The fair comparison is not the flow’s credit consumption against the lines of code it replaces. The code was never the cost. The alternative to a hosted flow is a developer’s time to build it, a deployment target to run it on, a dependency-upgrade cadence, and someone carrying a pager when it stops — for as long as the automation is needed, which is usually longer than anyone planned. When the flow’s operations would have been called by that service anyway, the credits are a wash and the difference is entirely the carrying cost on the code side. When the flow’s operations would not have happened at all — because the internal service was never built and the work was done by hand — the credits are the whole marginal cost, and the comparison is against a person’s hours.

What to check next

Before committing a flow to a plan tier, three things are worth looking up. The current credit consumption of the product environment, to see how much headroom the base plan has for the operations the flow will add. Which blocks in the flow call an add-on, and where that add-on’s free tier ends. And what triggers the flow — because a per-asset trigger with a bulk import upstream is the one configuration that turns a cheap flow into an expensive month, and it is a configuration decision, not a pricing one.

Sources

  1. MediaFlowscloudinary.com
  2. credits FAQcloudinary.com
  3. pricing pagecloudinary.com
  4. free-plan FAQcloudinary.com

See also