Cloudflare Workers
- Free allowance
- Workers Free: 100,000 requests a day, 10 ms of CPU time per request, 128 MB memory, 50 subrequests per request
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- emailno card, no phone
- Binding limit
- request-rate100,000 requests a day on Free
- Evidence
- documented3 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-11-22checked 2026-10-22 (live); stale on 2026-11-22
| Free tier | Workers Free: 100,000 requests a day, 10 ms of CPU time per request, 128 MB memory, 50 subrequests per request unit requests; metered on request-count; no request-per-second cap; the free wall is CPU time and the daily request count |
|---|---|
| Price | none stated |
| Limits |
there is no duration limit for an HTTP-triggered Worker while a user stays connected; cron and queue handlers are capped at 15 minutes |
| Binding | request-rate 10 ms of CPU per request is the wall: the 100,000-request allowance is generous and a JSON parse meets the CPU limit in the first request |
| Identity | email a Cloudflare account; no card for the Free plan |
| Egress | response bodies are served from the edge with no per-byte charge stated on the limits page free allowance: no byte cap stated |
| Retention | a Worker holds no disk; state lives in KV, D1, R2 or a Durable Object |
| Interface | rest, cli a JavaScript or WASM module; fetch handler, cron triggers, queue consumers |
| Tooling | Wrangler; the runtime API; ctx.waitUntil for work after the response |
| Composes with | the only free tier here that answers 100,000 HTTP requests a day and can hold a WebSocket |
| Reliability | no reliability event recorded |
| Notes | 10 ms of CPU is the wall, not the 100,000 requests. A Worker can hold a connection open for hours and stream a response, which is why this is the only free runtime here that can serve. It cannot run a shell. |
| Parsed numbers |
|
Evidence 3
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | developers.cloudflare.com/workers/platform/limits/ | Free: 100,000 requests a day, 10 ms CPU, 128 MB memory, 50 subrequests, 6 simultaneous outgoing connections |
| 2026-10-22 | developers.cloudflare.com/workers/platform/limits/ | there is no hard duration limit for HTTP-triggered Workers; cron triggers and queue consumers are capped at 15 minutes |
| 2026-10-22 | developers.cloudflare.com/workers/platform/limits/ | Paid raises CPU time to 5 minutes and subrequests to 1,000 per request |
More fields 11
{
"shape": {
"vcpu": null,
"ram_gib": null,
"disk_gib": null,
"gpu_class": null,
"gpu_count": null
},
"billing_model": "per-request",
"granularity": {
"min_billed_s": null,
"rounding_s": null
},
"session_cap": {
"wall_clock_min": null,
"idle_reap_s": null,
"restart_required": false,
"note": "no duration limit while a user is connected; 10 ms of CPU per request on Free"
},
"keep_rate": {
"value": 0.0,
"basis": "an isolate is not billed between requests",
"source": "https://developers.cloudflare.com/workers/platform/limits/"
},
"persistent_storage": {
"included_gib": 0,
"price_gib_month": "R2 and D1 are separate products",
"durability": "isolate has no disk",
"survives_stop": false,
"survives_destroy": false,
"max_retention": "none"
},
"network_out": {
"allow_outbound": true,
"allow_inbound_listen": true,
"ports": "HTTP and WebSocket through the edge",
"static_ip": false,
"ipv6": true,
"per_session_bytes": null
},
"free_tier_kind": "allowance",
"m10h_usd": 0.0,
"m24h_usd": 0.0,
"price_arithmetic": "free at 100,000 requests a day; Paid is USD 5 a month with no request cap"
}Unknown values 2
$.per_object_cap.statedthe field does not apply to this kind of offer$.reliability_notenothing of this kind was observed