Skip to content

Cloudflare Workers pricing in 2026: what it really costs

Nick Potts, who builds Ployz. Published .

TL;DR: Cloudflare Workers costs $5 a month for most small apps, because the Paid plan's minimum covers 10 million requests and 30 million milliseconds of CPU time. With KV and D1 on top, a medium API costs about $26 and a busy one about $263.

  • Pick Workers Free if your app stays under 100,000 requests a day and 10 ms of CPU per request. Past the daily limit, requests fail or skip your Worker until midnight UTC.
  • Pick Workers Paid if your app is mostly static files and short API calls. Static assets are free and unlimited, and there's no egress charge.
  • Pick something else if you need more than 128 MB of memory, a process that stays up between requests, or Postgres next to your code.
  • Pick Ployz, which I build, if your Workers bill is past about $10 and you want it flat. The busy app below, $263 a month on Workers, runs on a $19 server with git-push deploys.

Cloudflare Workers is a serverless platform that runs your JavaScript, TypeScript or WebAssembly on Cloudflare's network, close to your users. Cloudflare Workers pricing bills requests and CPU time, not wall-clock time, so a request waiting on a database costs the same as one that isn't. Storage products like KV, D1 and Durable Objects have their own meters on the same bill.

How much does Cloudflare Workers cost?

$0 on the Free plan, or $5 a month per account on the Paid plan, plus usage past what the $5 includes. The Paid plan covers Workers, Pages Functions, KV, Hyperdrive and Durable Objects "for a minimum charge of $5 USD per month for an account" (Workers pricing).

Workers FreeWorkers Paid
Monthly price$0$5 minimum per account
Requests100,000 a day10 million a month, then $0.30 per million
CPU time10 ms per request30 million ms a month, then $0.02 per million ms
Duration, egress, static assetsNot billedNot billed
Past the limitRequests fail or skip your WorkerYou pay the overage

Prices are from Cloudflare's Workers pricing docs. KV, D1 and the other storage products bill on top; their rates are further down.

What would your app cost on Cloudflare Workers?

Pick the app closest to yours: small, medium and busy are the three worked bills below. For your real numbers, open your Worker's Metrics in the Cloudflare dashboard, read requests and median CPU time, and set them under Customize. The calculator assumes one KV read per request.

Requests a day
66,667
CPU time a month
10M ms
KV reads (one per request)
2M
Workers Free plan
fits, $0
Server needed
Hetzner CX23
  • Cloudflare Workers Paid$5/mo

    $5 minimum, then $0.30 per million requests past 10M, $0.02 per million CPU ms past 30M, plus KV ($0.50 per million reads past 10M, $5 per million writes past 1M) and D1 past their included amounts.

  • Your own server + Ployz$7/mo

    Hetzner CX23 to CX43 sized for 4x your average CPU, plus $0.60 IPv4, with Postgres or Redis on the same server. Ployz is free. Servers are in Germany and Finland.

Prices checked 2026-10-08. Pick the closest app, then customize.

The server line assumes your Worker's CPU time would cost about the same CPU on a server, and sizes the server for four times the average. That's a rough match, not a benchmark. KV and D1 become Redis and Postgres or SQLite on the same server, which is why they don't add to its price.

How does CPU-time billing work on Workers?

Workers bills the milliseconds your code runs on the CPU, not the time a request takes. A request that spends 5 ms parsing JSON and 300 ms waiting for a database is billed for 5 ms. That's what keeps Workers cheap for APIs that mostly wait on other services.

Cloudflare's own examples on the pricing page:

ExampleBill
15 million requests at 7 ms of CPU each$8.00
15 million requests, 12 million of them static assets$5.00
100 million requests at 7 ms each$45.40
The same 100 million, with 80% served from cache$34.20
An hourly cron job using 180,000 ms (3 minutes) of CPU per run$6.99

Several things that cost money elsewhere are free here. A WebSocket upgrade counts as one request, and its messages aren't counted. Subrequests to other services aren't billed, and calls between Workers through service bindings don't add a request fee. A cache hit is billed as a request but not for CPU.

$0.02 per million CPU milliseconds works out to $0.072 per CPU-hour. Vercel bills its functions on more meters:

MeterCloudflare Workers PaidVercel Pro (Washington, D.C.)
CPU time$0.072 per CPU-hour$0.128 per CPU-hour
MemoryNot billed$0.0106 per GB-hour, while a request is in flight
Requests$0.30 per million$0.60 per million
SourceWorkers pricingVercel docs

Workers doesn't bill memory or waiting time at all, so for the same code it's usually the cheaper of the two. Vercel's plan fees and the rest of its bill are in my Vercel pricing breakdown.

What are the limits of the Workers Free plan?

100,000 requests a day across your account, and 10 ms of CPU time per request. The daily count resets at midnight UTC. Past it, each route either fails open and bypasses your Worker, or fails closed and returns Cloudflare's error 1027, depending on how you set the route (Workers limits).

That's a hard stop, not a bill. On a launch day with 150,000 requests on Free, the last 50,000 requests, a third of the day's traffic, fail or skip your Worker. Cloudflare doesn't charge you for them.

The storage products have daily limits on Free too:

ProductFree plan, per day
KV reads100,000
KV writes, deletes and lists (each)1,000
D1 rows read5 million
D1 rows written100,000
Durable Objects requests100,000
Queues operations10,000
Hyperdrive queries100,000
Workers AI10,000 Neurons

KV storage on Free is 1 GB and D1 storage is 5 GB. On Free, KV operations over the limit fail. 1,000 KV writes a day is the limit people hit first: a session store that writes on every login runs out at about 40 logins an hour.

Requests to static assets don't count against any of this. Cloudflare's static assets docs say they're free and unlimited, with no storage cost. Only requests that run your Worker script, like server-side rendering, are billed.

What do KV, D1, Durable Objects and R2 cost?

Each storage product has its own meter, and on the Paid plan each includes a monthly amount before it bills. The rate that surprises people is KV writes, at $5.00 per million, ten times the price of a read.

ProductIncluded on Paid, per monthThen
KV reads10 million$0.50 per million
KV writes, deletes and lists (each)1 million$5.00 per million
KV storage1 GB$0.50 per GB-month
D1 rows read25 billion$0.001 per million
D1 rows written50 million$1.00 per million
D1 storage5 GB$0.75 per GB-month
Durable Objects requests1 million$0.15 per million
Durable Objects duration400,000 GB-s$12.50 per million GB-s
Queues operations1 million$0.40 per million
R2 storage (standard)10 GB-month$0.015 per GB-month
R2 Class A operations (writes)1 million$4.50 per million
R2 Class B operations (reads)10 million$0.36 per million
Workers AI10,000 Neurons a day$0.011 per 1,000 Neurons
Hyperdrive queriesUnlimited

Sources: Workers pricing for KV, D1, Queues and Hyperdrive; Durable Objects pricing; R2 pricing; Workers AI pricing.

KV, D1, Queues and R2 don't charge for egress. R2 says "there are no charges for egress bandwidth for any storage class," which is the main reason people store files there.

What do real apps cost on Cloudflare Workers?

With my assumptions, a small app costs $0 on Free or $5 on Paid, a medium one $26.40 and a busy one $262.65 a month. The busy bill is mostly storage: KV reads alone are $95, about as much as requests and CPU time together ($96.40).

LineSmallMediumBusy
Paid plan minimum$5.00$5.00$5.00
Requests$0$6.00$57.00
CPU time$0$5.40$39.40
KV reads$0$10.00$95.00
KV writes$0$0$5.00
D1 rows written$0$0$50.00
D1 storage$0$0$11.25
Monthly bill on Paid$5.00$26.40$262.65
Fits on Free?Yes, $0NoNo

The three apps, per 30-day month:

  • Small: a side-project API. 2 million requests at 5 ms of CPU, one KV read per request, 10,000 KV writes, 500,000 D1 rows written, 0.5 GB in D1.
  • Medium: a small SaaS. 30 million requests at 10 ms, one KV read per request, 500,000 KV writes, 10 million D1 rows written, 2 GB in D1.
  • Busy: a busy API. 200 million requests at 10 ms, one KV read per request, 2 million KV writes, 100 million D1 rows written, 20 GB in D1.

These are assumptions, not measurements. The small app averages about 67,000 requests a day, which fits under Free's 100,000, but one busy day takes it over. I'd pay the $5 for any app people depend on.

The busy bill has the shape mine had on Railway. I paid $500+ a month there, and it climbed every month. Most of it came from the database, which was hit hard and kept growing. On Workers, the storage meters grow with your data the same way. Today one dedicated server at €80 a month runs everything, far more than I ever ran on Railway.

Why is my Cloudflare Workers bill higher than expected?

Usually because of a storage meter, not Workers itself. Requests and CPU time are cheap; KV writes, Durable Object duration and logs are where bills jump.

  • KV writes. At $5.00 per million, writing on every request costs ten times what reading does. A counter or session store that writes 10 million times a month is $45 in KV writes alone.
  • Durable Objects holding WebSockets. A Durable Object is billed for duration while it's active, at 128 MB whatever it uses. Cloudflare's own example of 100 objects with 50 standard WebSocket connections each costs $142.95 a month. Its Hibernation API example, 100 objects with 100 connections each, costs $20.65, because a hibernating object isn't billed for duration.
  • Workers Logs, from 1 December 2026. Logs move to Cloudflare Observability pricing: 50 GB of ingestion a month included on Paid, then $0.25 per GB, and 10 GB-month of storage, then $0.10 per GB-month (Observability pricing). Until then, Paid includes 20 million log events a month, then $0.60 per million.
  • run_worker_first. Static assets are free until you route them through your Worker. Requests matched by run_worker_first run your script and are billed (static assets docs).
  • Heavy cron jobs. Cron runs are billed CPU like any request. Cloudflare's example hourly job at 3 minutes of CPU adds $1.99 a month, so the bill is $6.99 with the $5 minimum.
  • Workers AI. Past 10,000 Neurons a day, it's $0.011 per 1,000 Neurons, billed per model by Neurons, not by request.

For the fees other platforms add (seats, egress, minimums per service), see the hidden costs of PaaS pricing.

What can't you do on Cloudflare Workers?

Run anything that needs more than 128 MB of memory, or a process that stays up. A Worker starts per request and stops when it's done, with no server you can keep a connection pool, a background job or a large in-memory cache in. Cloudflare sells Containers for that, priced separately by memory, CPU, disk and egress (Containers pricing).

LimitWorkers FreeWorkers Paid
CPU time per request10 ms30 seconds by default, up to 5 minutes
Memory per isolate128 MB128 MB
Subrequests per request5010,000
Workers per account100500
Cron triggers per account5250

Limits are from Cloudflare's Workers limits. On Paid, queue consumers and Cron Triggers that run hourly or less often can use up to 15 minutes of CPU per run.

The other limits that shape what fits:

  • No Postgres next to your code. D1 is SQLite with its own meters. For Postgres, Hyperdrive connects your Worker to a database you host somewhere else.
  • Size limits. A Worker can be up to 64 MiB uncompressed, and a static asset up to 25 MiB per file (Workers limits).
  • Cloudflare-specific APIs. Code that uses KV, D1 or Durable Objects bindings doesn't run anywhere else as-is. Moving off Workers means swapping them for Redis, Postgres or SQLite.

Netlify and Fly.io draw these lines differently. Netlify bills credits per request and bandwidth (Netlify pricing), and Fly.io runs full machines billed per second they run (Fly.io pricing).

Is Cloudflare Workers cheaper than your own server?

For a small app, Workers wins. The small app is $0 or $5 on Workers and $7.09 on a Hetzner CX23. Past that, the server wins: the medium app is $26.40 against $7.09, and the busy one is $262.65 against $19.09 on a CX43.

ServerSpecsMonthly priceSource
Hetzner CX232 vCPU, 4 GB RAM, 40 GB NVMe, 20 TB traffic$6.49Price list, specs
Hetzner CX334 vCPU, 8 GB RAM, 80 GB NVMe, 20 TB traffic$9.99Same
Hetzner CX438 vCPU, 16 GB RAM, 160 GB NVMe, 20 TB traffic$18.49Same
Hetzner primary IPv4about $0.60 (€0.50)Hetzner docs
DigitalOcean Basic droplet2 vCPU, 4 GiB RAM, 80 GiB SSD, 4,000 GiB transfer$24DigitalOcean pricing

Hetzner prices are after its 15 June 2026 adjustment, before VAT, and the CX line is only in Germany and Finland. In the US, the DigitalOcean droplet above costs $24, which is about the medium Workers bill.

SmallMediumBusy
Cloudflare Workers$0 (Free) or $5 (Paid)$26.40$262.65
Hetzner server + Ployz$7.09 (CX23)$7.09 (CX23)$19.09 (CX43)

The busy app's 2 billion CPU milliseconds a month average under one vCPU, so the CX43 has plenty of headroom. A V8 isolate and a Node process don't use CPU one-to-one, so treat the server column as a rough match.

What you give up on a server:

Workers gives youOn your own server
Code running close to every userOne location, so users far away wait longer
Scaling with traffic, no capacity planningOne server has a ceiling until you add another
$0 for a quiet appYou pay for the server whether it's busy or not

Workers or your own server?

Stay on Workers if your app is stateless or light on storage, your bill is under $10, or your users are spread around the world and latency matters. Static sites with a few API routes cost $5 or nothing, and nothing self-hosted beats that.

Pick your own server if your bill is past $10 and growing with KV or D1, you need more than 128 MB of memory or a process that stays up, or you want Postgres next to your app. A $7 to $19 server covers what costs $26 to $263 on Workers.

Where Ployz fits

Ployz turns a server you rent into something that deploys like a hosted platform. Push to GitHub and it builds on your server, with no Dockerfile needed for Node, Python, Ruby, PHP, Go, Rust, Java and Elixir.

ployz up --server root@your-server

That installs Ployz on a Linux server, builds the current directory and gives it an HTTPS address. Connect a GitHub repo and every pull request gets a preview environment on the servers you already pay for. Deploys have zero downtime once you set a health check. Postgres, MySQL, Redis and MongoDB are one click each, so the KV and D1 lines of a Workers bill become services on the same server.

You needPloyzDo instead
Git-push deploys and preview environmentsYes
Postgres or Redis next to your appYes, one click
More servers when one fills upYes, over WireGuard
A copy of your database on another serverYes, a mirror synced when you ask
Code at the edge, close to every userNoStay on Workers
A CDNNoPut a CDN in front of your server

Ployz is free on your own servers, custom domains included. Start free on your own server.

FAQ

Is Cloudflare Workers free?

Yes, up to 100,000 requests a day and 10 ms of CPU per request. Past the daily limit, requests fail with error 1027 or bypass your Worker until midnight UTC. You aren't billed for them.

How much does the Workers Paid plan cost?

$5 a month per account, with 10 million requests and 30 million CPU milliseconds included. After that, it's $0.30 per million requests and $0.02 per million CPU milliseconds.

What are the limitations of Cloudflare Workers?

128 MB of memory per isolate, a CPU cap per request (10 ms on Free, up to 5 minutes on Paid) and no process that stays up between requests. Free also caps you at 100,000 requests and 1,000 KV writes a day.

Does Cloudflare charge for bandwidth on Workers?

No. Workers, KV, D1 and R2 have no egress or bandwidth charge, and requests to static assets are free and unlimited.

How much does Cloudflare Workers AI cost?

10,000 Neurons a day are free on both plans, then $0.011 per 1,000 Neurons. Neurons per request depend on the model, so check the model's rate on the Workers AI pricing page.

What are the limits of the D1 free tier?

5 million rows read and 100,000 rows written a day, and 5 GB of storage. On Paid, 25 billion rows read and 50 million written a month are included.

Is Cloudflare Workers cheaper than Vercel?

Usually, for the same code. Workers CPU time works out to $0.072 per CPU-hour with no memory charge, while Vercel Pro bills $0.128 per CPU-hour in Washington, D.C., plus memory while a request is in flight and $0.60 per million invocations.

Is Cloudflare Workers good?

For stateless APIs, redirects, auth checks and sites that are mostly static, yes: it's cheap and close to users. For apps that need a big in-memory working set, long jobs or Postgres next to the code, a server fits better.

How I checked

Prices were checked on 8 October 2026 on Cloudflare's Workers pricing, Workers limits, static assets billing, Durable Objects pricing, R2 pricing, Observability pricing, KV pricing, D1 pricing, Containers pricing and Workers AI pricing docs, and on Hetzner's, DigitalOcean's and Vercel's own pages, linked next to each number. Cloudflare's marketing plans page didn't show prices when I fetched it, so every Cloudflare number is from the docs. The three apps are assumptions, not measurements, and the server sizing is a rough match. I build Ployz, which competes with hosted platforms like Workers, so the maths is all here to check.

Deploy this on your own server with Ployz, free: get started.

Run the same app on a server you rent. Ployz is free on your own servers.

Deploy your app