Cloudflare Workers Static Assets
- Free allowance
- 20,000 files per Worker version on Free; 25 MiB per file; 100 Workers per account => ~488 GiB per Worker, ~48.8 TiB per free account.
- Verdict
- ★ qualifiesusable as stated; the read path was probed
- Cost
- free tier
- Identity
- email?placeholder, not evidence; card unknown, phone unknown
- Binding limit
- per-object-cap25 MiB per file
- Evidence
- documented4 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-11-21checked 2026-10-21 (inherited); stale on 2026-11-21
| Free tier | 20,000 files per Worker version on Free; 25 MiB per file; 100 Workers per account => ~488 GiB per Worker, ~48.8 TiB per free account. 'There is no additional cost for storing Assets.' unit objects; metered on stored-bytes |
|---|---|
| Price | none stated |
| Limits |
20,000 files and 100 Workers on Free; 25 MiB per file; must stay under the Worker *request* quota only if a script runs (run_worker_first / SSR). Static-only assets do not count against that quota at all. |
| Binding | per-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota |
| Identity | email (placeholder) not published |
| Egress | 'Requests to static assets are free and unlimited' — Workers Static Assets billing doc. Only Worker-script invocations (SSR) count against the 100,000/day free request quota. |
| Per-object cap | 25 MiB per file (26214400 bytes) |
| Retention | not stated |
| Interface | rest, cli rest |
| Tooling | wrangler deploy with an assets binding (wrangler 3.78.10+); Workers REST API; static assets can be deployed with no Worker script logic, so serving is purely static. |
| Composes with | 100 Workers on the free plan x 100,000 files (paid) or 20,000 files (free) x 25 MiB. Separate bucket from Pages on the same account, so a single free account presents Pages (100x20k) + Workers (100x20k) file slots. Unlimited accounts multiply further. |
| Reliability | Free-tier 429s apply to script-invoking routes only; purely static paths keep serving. No eviction window documented for assets — they live as long as the Worker version. |
| Evidence note | documented The page states the number in the record; the claim is documented, not measured. |
| Parsed numbers |
|
Evidence 4
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | developers.cloudflare.com/workers/platform/limits/ | the CDN cache object cap is 512 MB on Free/Pro/Business. Re-read https://developers.cloudflare.com/workers/platform/limits/: HTTP 200, 27086 bytes, sha256 574d5088a914872b. Quoted: g-cloudflare-support/). Cloudflare does not enforce response body size limits. [CDN cache limits](https://developers.cloudflare.com/cache/concepts/default-cache-behavior/) apply: 512 MB for Free, Pro, and Business plans, and 5 GB for Enterprise. --- ## CPU time CPU time measures how long the CPU spends executing your Worker code. Waiting on network requests (such as fetch() calls, KV reads, or database queries) does **not** count toward |
| 2026-10-21 | developers.cloudflare.com/workers/static-assets/billing-and- | 'Requests to static assets are free and unlimited ... There is no additional cost for storing Assets.' (last updated Apr 23, 2026) |
| 2026-10-21 | developers.cloudflare.com/workers/platform/limits/ | Static Assets table: 'Files per Worker version: 20,000 (Free) / 100,000 (Paid)', 'Individual file size: 25 MiB', 'Number of Workers: 100 (Free) / 500 (Paid)' |
| 2026-10-21 | source not published | probe: Server: cloudflare + x-server: Cloudflare Pages on a live pages.dev asset confirms the same edge pipeline; range requests against pages.dev returned 200 not 206, so resume is not guaranteed on that path |
More fields 1
{
"verified": [
{
"url": "https://developers.cloudflare.com/workers/platform/limits/",
"date": "2026-10-22",
"via": null,
"http_status": 200,
"bytes": 27086,
"sha256": "574d5088a914872b338e03c727adf4ef4ef88a8f2a1bcc41bd3f7b200adfb25e",
"pattern_found": true,
"what_changed": "no change: the page still states the claim",
"capture": "captures\\cloudflare-workers-static-assets-developers-cloudflare-com-workers-platform-limits-.txt"
}
]
}Unknown values 3
$.per_object_cap.notesthe field may be stated in a source that was not read$.retention.notesthe field may be stated in a source that was not read$.retention.statedthe field may be stated in a source that was not read