
Cloudflare Workers has a genuinely useful free plan, but its limits are spread over several documentation pages and it isn't obvious which one you'll hit first. This page puts them in one place, explains what happens when you go over, and shows when the $5-a-month paid plan starts to make sense.
The short answer
- 100,000 requests per day, counted across all Workers on your account, reset at midnight UTC.
- 10 ms of CPU time per request. Time spent waiting on network calls doesn't count.
- 128 MB of memory per Worker instance.
- 50 subrequests (outgoing
fetch()calls and similar) per request. - Static assets are free and unlimited. Requests that only serve a static file don't count toward the 100,000.
All Workers Free limits
| Limit | Workers Free | Workers Paid |
|---|---|---|
| Requests | 100,000 per day | 10 million a month included, then $0.30 per million |
| CPU time per request | 10 ms | 30 s by default, up to 5 minutes |
| Memory | 128 MB | 128 MB |
| Subrequests per request | 50 | 10,000 |
| Simultaneous outgoing connections | 6 | 6 |
| Worker size (uncompressed) | 64 MiB | 64 MiB |
| Startup time | 1 second | 1 second |
| Workers per account | 100 | 500 |
| Cron Triggers per account | 5 | 250 |
| Environment variables per Worker | 64 | 128 |
| Static asset files per Worker version | 20,000 | 100,000 |
| Static asset file size | 25 MiB | 25 MiB |
The paid plan costs $5 a month minimum and includes 10 million requests and 30 million CPU milliseconds. Beyond that it's $0.30 per extra million requests and $0.02 per extra million CPU milliseconds.
Free limits for the storage products Workers use
Most real Workers read or write data somewhere. Each product has its own free allowance, and these are often hit before the request limit is.
| Product | Free allowance |
|---|---|
| Workers KV | 100,000 reads/day; 1,000 writes, 1,000 deletes and 1,000 lists/day; 1 GB stored |
| D1 (SQLite) | 5 million rows read/day; 100,000 rows written/day; 5 GB stored |
| Durable Objects (SQLite storage only) | 100,000 requests/day; 13,000 GB-s of duration/day |
| Queues | 10,000 operations/day |
| R2 | 10 GB-month stored; 1 million Class A and 10 million Class B operations a month; no egress fees |
| Workers Logs | 200,000 events/day |
The KV write limit is the one that surprises people. 1,000 writes a day is fine for configuration or a cache that rarely changes, but not for a counter or anything written on every request. Use D1 or a Durable Object for that.
What happens when you go over
On the free plan nothing is billed, so there's no surprise invoice. Instead, once the account passes 100,000 requests in a UTC day, further requests to Workers are handled according to each route's failure mode:
- Fail open: the Worker is skipped and the request goes straight to your origin as if no Worker existed. Good for a Worker that only adds headers or small tweaks.
- Fail closed: visitors get Cloudflare's Error 1027 page. Use this for Workers that do authentication or block traffic, where skipping them would be a security hole.
If the Worker is the whole app, for example an API on a workers.dev subdomain, there's nothing behind it to fall back to, so treat the limit as downtime until the counter resets at midnight UTC.
The CPU limit works differently. A request that uses more than 10 ms of CPU fails with an "exceeded CPU" error, but other requests keep working. In practice 10 ms is a lot for routing, redirects, header changes, auth checks or small API calls. It's too little for image processing, heavy JSON parsing, cryptography on large inputs or rendering big pages. Cloudflare's dashboard shows CPU time per request, so check the median and the slowest requests before you rely on the free plan.
Does Cloudflare Pages count?
Static files on Pages don't. Pages Functions, the server-side part of a Pages project, are Workers and count toward the same 100,000 requests a day. Our Cloudflare Pages free tier guide covers the rest of the Pages limits, such as 500 builds a month.
How far does 100,000 requests a day go?
It's about 3 million requests a month, or 1.2 requests a second averaged over a day. Traffic isn't even, so a site with occasional spikes is fine as long as the daily total stays under the line. Some rough examples:
- A Worker that runs on every page view, on a site with 20,000 page views a day: fine.
- A Worker on every request, including images, CSS and JavaScript, on that same site: easily 20 requests per page view, so 400,000 a day. Over the limit. Put the Worker on a narrower route, such as
/api/*, or serve assets as static assets, which are free. - An API behind a mobile app polling every 30 seconds: 2,880 requests per user per day, so about 35 active users fill the free plan.
When to pay the $5
Upgrade when any of these is true:
- You regularly pass 60,000 to 70,000 requests a day, leaving no room for a spike.
- Requests fail with the CPU limit and you can't make the code lighter.
- The Worker is part of something customers pay for, where a 1027 error page late in the UTC day is not acceptable.
- You need more than 5 cron triggers or 50 subrequests per request.
$5 a month covers 10 million requests, roughly a hundred times the free daily limit spread over a month. For most small projects the bill stays at $5.
FAQ
Is the 100,000 limit per Worker or per account?
Per account. All your Workers share it.
Will Cloudflare charge me automatically if I exceed the free plan?
No. On the free plan, requests over the limit fail or bypass the Worker. You're only charged after you subscribe to Workers Paid.
Do requests to a cached page count?
If the Worker runs on that route, yes: the Worker runs before the cache. If the route has no Worker, cached requests are plain CDN traffic and don't count.
Can I use Workers as a free VPS?
No. Workers runs short JavaScript, TypeScript, Python or WebAssembly functions, not a Linux server, so there's no shell, long-running processes or ordinary filesystem. It replaces a VPS only when the app fits that model.
Bottom line
The Workers free plan gives you 100,000 requests a day, 10 ms of CPU per request and free static assets, plus small free allowances for KV, D1, Durable Objects, Queues and R2. Going over never costs money on the free plan, but it can show visitors Error 1027. Narrow your routes, keep static files as static assets, and pay $5 once the Worker matters to customers.
Limits and prices checked on 2 November 2026 on Cloudflare's Workers limits and pricing pages and the Cloudflare plans page.
Comments 0
Be the first to comment.
Leave a comment