fshy

Home / Cloudflare

Cloudflare Workers

developers.cloudflare.com/workers/platform/limits/Serverless runtimecompute/cloudflare-workersJSONcomparereport an errorprovider JSON

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 tierWorkers 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
Pricenone stated
Limits
  • request-rate (binding) 100,000 requests a day on Free source
  • pull-count 50 subrequests per request on Free, 1,000 on Paid source
  • per-ip-shaping 6 simultaneous outgoing connections per request on both plans source
there is no duration limit for an HTTP-triggered Worker while a user stays connected; cron and queue handlers are capped at 15 minutes
Bindingrequest-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
Identityemail a Cloudflare account; no card for the Free plan
Egressresponse bodies are served from the edge with no per-byte charge stated on the limits page
free allowance: no byte cap stated
Retentiona Worker holds no disk; state lives in KV, D1, R2 or a Durable Object
Interfacerest, cli a JavaScript or WASM module; fetch handler, cron triggers, queue consumers
ToolingWrangler; the runtime API; ctx.waitUntil for work after the response
Composes withthe only free tier here that answers 100,000 HTTP requests a day and can hold a WebSocket
Reliabilityno reliability event recorded
Notes10 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
  • price USD 0 / month
  • price USD 0 / month
  • request-rate 100000 requests / day
Evidence 3
datesourcewhat it proved
2026-10-22developers.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-22developers.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-22developers.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.stated the field does not apply to this kind of offer
  • $.reliability_note nothing of this kind was observed