fshy

fshy / Compute / Crawling / Databases and KV / Domains and DNS / Egress and tunnels / Email / Inference / Storage

Cloudflare

cloudflare.com · Compute, Crawling, Databases and KV, Domains and DNS, Egress and tunnels, Email, Inference, Storage · 38 records · JSON

Cloudflare D1 Databases and KV

★ qualifiesemailno cardDrequest-rate

developers.cloudflare.com/d1/platform/limits/ · serverless SQLite · databases-kv/cloudflare-d1 · JSON · compare

Free tier10 databases; 500 MB per database; 5 GB per account; 5 million rows read per day; 100,000 rows written per day
unit mixed; metered on request-count
PriceUSD 0.75/GB-month beyond 5 GB on Workers Paid
Per-object cap2,000,000 bytes per row, BLOB or string; 500 MB per database (2000000 bytes)
Retentionstorage persists; Time Travel point-in-time recovery covers 7 days on Free
Egressno egress charge; rows read and rows written are the metered quantities
Identityemail a Cloudflare account
Limits
  • request-rate 100,000 rows written per day on Free source
  • request-rate 5 million rows read per day on Free source
  • per-object-cap 500 MB per database and 5 GB per account; a 2,000,000-byte row ceiling source
  • request-rate 50 queries per Worker invocation on Free; a 30-second maximum query duration source
Bindingrequest-rate
Interfacerest, cli a Worker binding, a REST API and the wrangler CLI
Toolingwrangler d1; the Cloudflare API; better-sqlite3 style calls inside a Worker
Composes withper-tenant SQLite in a Worker with a free Postgres as the system of record; 500 MB per database and 10 databases is 5 GB of free relational state
Reliabilityat the daily read or write limit the D1 API returns errors; at the storage limit you must delete data before you can insert, alter a table or create an index
NotesThe 100,000 rows written a day is the binding number for any ingest, and it is small: 1.16 rows a second sustained. A full table scan counts every row it scans as a row read, so an unindexed query spends the read budget fast.
Evidence rungdocumented the limits and pricing pages were read today; nothing was provisioned.
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.limits[2].value limit:per-object-cap 500.0 MB
  • $.price_per_tb_month price-per-tb USD0.75 GB / month
Evidence (2)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/d1/platform/limits/Free: 10 databases, 500 MB maximum database size, 5 GB per account, Time Travel 7 days, 50 queries per Worker invocation; 2,000,000-byte row maximum; 100,000-byte SQL statement; 30-second query maximum
2026-10-22developers.cloudflare.com/d1/platform/pricing/Free: 5 million rows read/day, 100,000 rows written/day, 5 GB total storage; 'Free limits reset daily at 00:00 UTC'; at the storage limit you must delete data before inserting

Cloudflare DNS Domains and DNS

★ qualifiesemailno cardMper-object-cap

developers.cloudflare.com/dns/manage-dns-records/ · managed authoritative DNS · domains-dns/cloudflare-dns · JSON · compare

Free tierfree zone on any plan with anycast resolution, an API, DNSSEC and 200 records per zone on zones created on or after 2024-09-01
unit objects; metered on object-count; 1,000 records per zone on zones created before 2024-09-01
Pricenone stated
Per-object cap200 DNS records per zone on a zone created on or after 2024-09-01; 1,000 on an older free zone; 3,500 on Pro and Business
Retentionthe zone persists while it is active; a zone whose nameservers stop pointing at Cloudflare moves to a Moved state and is deleted after a long enough period
EgressDNS queries are never limited or capped on any plan
Identityemail a Cloudflare account, and the domain must use Cloudflare nameservers
Limits
  • per-object-cap 200 records per zone on a free zone created on or after 2024-09-01 source
  • request-rate the API is rate limited per account; the published DNS limit is on queries, and there are none source
the dashboard warns at 85% of the record quota and the current quota and usage are readable per zone through the API
Bindingper-object-cap
Interfacerest, cli a REST API for zones and records; a DoH and DoT resolver at cloudflare-dns.com; flarectl and the Cloudflare Terraform provider
Toolingthe Cloudflare API, flarectl, Terraform, certbot with a DNS-01 plugin, acme.sh
Composes withthe only free DNS in this set that also gives a free CDN, a free tunnel, free Universal SSL and free Email Routing on the same zone
Reliabilityno reliability event recorded
Notes200 records is the number a per-tenant subdomain scheme meets, and it is shared with the records Cloudflare adds for Email Routing. The absence of a query cap is what makes it the default choice.
Evidence rungmeasured the keyless DoH resolver answered a real query today, and the record quota and the apex CNAME behaviour are both first-party pages. No zone was created.
Checked2026-10-23 (live); stale on 2027-01-21
Evidence (4)
datesourcewhat it proved
2026-10-22probe:https://cloudflare-dns.com/dns-query?name=example.com&type=A200, 251 bytes of JSON with Status 0 and two A records, so the keyless DoH endpoint answers programmatically without an account
2026-10-22developers.cloudflare.com/dns/manage-dns-records/Per-zone quota: Free zones created before 2024-09-01 00:00:00 UTC 1,000; Free zones created on or after 2024-09-01 200; Pro 3,500; Business 3,500; Enterprise per-account. Records created by other Cloudflare services count toward the quota
2026-10-22developers.cloudflare.com/dns/manage-dns-records/how-to/crea'Cloudflare's CNAME flattening allows you to create CNAME records at your zone apex'; an ANAME or ALIAS at a previous provider can be recreated as a CNAME at @
2026-10-22developers.cloudflare.com/dns/faq/'Cloudflare never limits or caps DNS queries'; a zone in a Moved state for long enough is deleted
Unknown or withheld values (1)
  • $.reliability_note none-observed

Cloudflare Quick Tunnel Egress and tunnels

★ qualifiesanonymousno cardMretention-clamped

developers.cloudflare.com/tunnel/setup/ · tunnel (hosted, ephemeral) · egress/cloudflare-quick-tunnel · JSON · compare

Free tierone ephemeral trycloudflare.com hostname per cloudflared run; no account, no card
unit unlimited; metered on request-count
Pricenone stated
Per-object capno proxy body cap observed: a 400 MiB POST body traversed byte-identically
Retentionthe hostname dies with the process; a new run gets a new random name
Egressnot metered; no byte quota published or observed
Identityanonymous no account, no card; measured by running cloudflared with no login
Limits
  • retention-clamped hostname lifetime equals process lifetime; a restart invalidates every URL
  • request-rate 400 concurrent GETs of a 3-byte object all returned 200; no 429 seen
  • per-object-cap no proxy body cap: a 400 MiB POST body was accepted
Bindingretention-clamped the hostname's lifetime binds the shape of the workload; the 522 rate under concurrency binds its throughput, but a new run restores a fresh hostname and cannot restore a stable one.
Interfacerest, cli cloudflared tunnel --url, then https://<random>.trycloudflare.com
Toolingcloudflared 2026.10.3
Composes withthe front half of the free public-endpoint chain: origin -> cloudflared -> a random trycloudflare hostname, with no account and no domain. The chain's scarce link is the hostname's lifetime, so it serves a test or a handover, not a stable address.
Reliabilityat 32 concurrent 100 MiB ranged GETs, 8 returned 522 and aggregate throughput fell to 3.79 MiB/s, below the 6.27 MiB/s single-stream baseline
NotesThe census named the 100 MB body cap as this product's binding constraint and that is wrong: the cap is a zone-proxy limit and a trycloudflare hostname is not a zone. Measured 6.27 MiB/s single stream (104,857,600 bytes in 15.948 s), which is 0.52 TiB/day. The earlier figure of 0.55 TiB/day here was the egress topic's row for a different host at 6.72 MiB/s. The concurrency ceiling is real and the 522s are the honest number.
Evidence rungmeasured
Checked2026-10-23 (live); stale on 2026-12-22
Parsed numbers
  • $.limits[2].value limit:per-object-cap 400.0 MiB
Evidence (5)
datesourcewhat it proved
2026-10-22probe:https://ace-wheel-basement-participated.trycloudflare.com/blob100m.bin100 MiB read back: 200, 104,857,600 bytes in 15.948 s, which is 6.27 MiB/s; 3 earlier sequential runs logged 9.32, 7.87 and 10.64 with no unit, byte count or elapsed time kept, so the divisor is unrecoverable and none of the three is used in any arithmetic
2026-10-22probe:https://favors-davis-charges-epic.trycloudflare.com/400 MiB POST: 200, got=419,430,400 bytes, sha256 d491a95d...1839 matched the source
2026-10-22probe:https://numbers-bras-calculator-quebec.trycloudflare.com/small.txt400 concurrent GETs of a 3-byte object: 400 x 200 in 6.5 s
2026-10-22probe:https://ace-wheel-basement-participated.trycloudflare.com/blob100m.bin8 and 32 concurrent 100 MiB ranged GETs: 6/8 and 24/32 returned 206, the rest 522; 3.72 and 3.79 MiB/s aggregate
2026-10-22developers.cloudflare.com/workers/platform/limits/the 100 MB request-body cap is stated for a request through the Cloudflare proxy on a zone plan, not for a tunnel transport
More fields (3)
{
 "stale_after_days": 180,
 "bytes_transit": "yes",
 "transit_note": "the tunnel carries the origin's bytes both ways; a 400 MiB POST traversed it byte-identically"
}

Corrections

Cloudflare Pages (Direct Upload / Wrangler) Storage

★ qualifiesemail?card?Dper-object-cap

pages.cloudflare.com · paas · storage/cloudflare-pages · JSON · compare

Free tier20,000 files per site on Free; 25 MiB max per file; 100 projects per account => ~488 GiB per project, ~48.8 TiB per account. No stated total-bytes cap.
unit objects; metered on unstated
Pricenone stated
Per-object cap25 MiB max per file (26214400 bytes)
Retentionnot stated
EgressUnlimited requests and unlimited bandwidth: 'Static asset requests ... are free and unlimited' (pages/functions/pricing) and 'Unlimited bandwidth ... no extra cost to you' (blog.cloudflare.com/big-ideas-on-pages).
Identityemail (placeholder) not published
Limits
  • per-object-cap 25 MiB max per file source
25 MiB hard per file (no override on Free); 20,000 files per site on Free; 500 builds/month and 20-min build timeout if Git-driven; new-project creation throttled for the first 48h of a new account ('Cloudflare limits the number of new Pages projects you can create within your first 48 hours'); Functions requests draw from the 100k/day Workers quota, but pure static requests do not.
Bindingper-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
Interfacerest, git, rclone, cli rest
Toolingwrangler pages deploy (official CLI, direct upload of a folder, no Git required); Cloudflare API v4 /accounts/:id/pages/projects/:name/deployments does multipart upload; rclone has no native 'pages' backend but can be driven via 'rclone serve http' + wrangler or a custom remote.
Composes with100 projects per account (docs: 'limit of 100 projects per account. This limit is not routinely increased') x 20,000 files x 25 MiB. Unlimited free Cloudflare accounts x 100 projects. Workers Static Assets (100 Workers free, 20,000 files each) is a second, independent pool on the same account. Sharding is by file: any 10 TiB working set = ~420k shards of 25 MiB spread over ~21 projects.
ReliabilityAssets stay cached on the CDN until the next deployment, so re-upload churn is the only real risk; no data-vanishing mechanism observed, and static serving is not rate-limited or billed.
Notes20,000 files per site on Free; 25 MiB max per file; 100 projects per account => ~488 GiB per project, ~48.8 TiB per account. No stated total-bytes cap.
Evidence rungdocumented re-read from read-broker on 2026-10-22 (HTTP 200, 3777 bytes, sha256 c163cd6d9d46f7fd). The page states the number in the record; the claim is documented, not measured. | re-read from read-broker on 2026-10-22 (HTTP 200, 7360 bytes, sha256 77e09b369ce18a37). The page states the number in the record; the claim is documented, not measured.
Checked2026-10-21 (inherited); stale on 2026-11-20
Parsed numbers
  • $.limits[0].value limit:per-object-cap 25.0 MiB
Evidence (7)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/pages/platform/limits/Pages Free plan allows 20,000 files per site, 25 MiB per file. Re-read https://developers.cloudflare.com/pages/platform/limits/: HTTP 200, 7360 bytes, sha256 77e09b369ce18a37. Quoted: ch file on your site to Cloudflare's globally distributed network to deliver a low latency experience to every user that visits your site. Cloudflare Pages sites can contain up to 20,000 files on the Free plan. Paid plans (such as Pro, Business, and Enterprise plans) can have up to 100,000 files per site. To enable this increased limit, set the environment variable PAGES_WRANGLER_MAJOR_VERSION=4 in your Pages project settings. ## File size The
2026-10-22developers.cloudflare.com/pages/functions/pricing/requests to static assets are free and unlimited on Free and paid plans. Re-read https://developers.cloudflare.com/pages/functions/pricing/: HTTP 200, 3777 bytes, sha256 c163cd6d9d46f7fd. Quoted: [change usage models](https://developers.cloudflare.com/workers/platform/pricing/#how-to-switch-usage-models). ### Static asset requests On both free and paid plans, requests to static assets are free and unlimited. A request is considered static when it does not invoke Functions. Refer to [Functions invocation routes](https://developers.cloudflare.com/pages/functions/routing/#functions-invocation-routes) to learn more about when Functions are invoked. ## Free Plan Re
2026-10-21developers.cloudflare.com/pages/platform/limits/'Cloudflare Pages sites can contain up to 20,000 files on the Free plan', 'maximum file size for a single Cloudflare Pages site asset is 25 MiB', 'limit of 100 projects per account' (page last updated Sep 5, 2026)
2026-10-21developers.cloudflare.com/pages/functions/pricing/'On both free and paid plans, requests to static assets are free and unlimited'
2026-10-21blog.cloudflare.com/big-ideas-on-pages/'Unlimited requests ... Unlimited bandwidth ... for free'
2026-10-21vite.pages.dev/probe: curl -D - -> HTTP/1.1 200, Server: cloudflare, x-server: Cloudflare Pages
2026-10-21vite.pages.dev/assets/index.37d2ad0a.jsprobe: curl -D - -> 200, Content-Type: application/javascript, Content-Length: 1555, Cache-Control: public, max-age=0, must-revalidate (direct binary asset served off pages.dev)
More fields (1)
{
 "verified_in_pass": [
  {
   "url": "https://developers.cloudflare.com/pages/functions/pricing/",
   "date": "2026-10-22",
   "via": "read-broker",
   "http_status": 200,
   "bytes": 3777,
   "sha256": "c163cd6d9d46f7fd46095c5a8ce78102090d9cb7a37c9e9b215f35f8e7615727",
   "pattern_found": true,
   "what_changed": "no change: the page still states the claim",
   "capture": "captures\\cloudflare-pages-developers-cloudflare-com-pages-functions-pricing-.txt"
  },
  {
   "url": "https://developers.cloudflare.com/pages/platform/limits/",
   "date": "2026-10-22",
   "via": "read-broker",
   "http_status": 200,
   "bytes": 7360,
   "sha256": "77e09b369ce18a373420038b357e2d023518e2c8875292ac8291036c5f68dd2a",
   "pattern_found": true,
   "what_changed": "no change: the page still states the claim",
   "capture": "captures\\cloudflare-pages-developers-cloudflare-com-pages-platform-limits-.txt"
  }
 ]
}
Unknown or withheld values (6)
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted

Cloudflare Workers Static Assets Storage

★ qualifiesemail?card?Dper-object-cap

developers.cloudflare.com/workers/static-assets/ · paas · storage/cloudflare-workers-static-assets · JSON · compare

Free tier20,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
Pricenone stated
Per-object cap25 MiB per file (26214400 bytes)
Retentionnot stated
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.
Identityemail (placeholder) not published
Limits
  • per-object-cap 25 MiB per file source
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.
Bindingper-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
Interfacerest, cli rest
Toolingwrangler 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 with100 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.
ReliabilityFree-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.
Notes20,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.'
Evidence rungdocumented re-read from read-broker on 2026-10-22 (HTTP 200, 27086 bytes, sha256 574d5088a914872b). The page states the number in the record; the claim is documented, not measured.
Checked2026-10-21 (inherited); stale on 2026-11-20
Parsed numbers
  • $.limits[0].value limit:per-object-cap 25.0 MiB
Evidence (4)
datesourcewhat it proved
2026-10-22developers.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-21developers.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-21developers.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-21withheldprobe: 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_in_pass": [
  {
   "url": "https://developers.cloudflare.com/workers/platform/limits/",
   "date": "2026-10-22",
   "via": "read-broker",
   "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 or withheld values (7)
  • $.evidence[3].url private-url
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted

Cloudflare Browser Run / Kitesurf Compute

caveatemail?card?Drequest-rate

developers.cloudflare.com/browser-run/pricing/ · browser host · compute/cloudflare-browser · JSON · compare

Free tierWorkers Free includes 10 minutes of browser time a day and 3 concurrent browsers, shared across Quick Actions and Browser Sessions. Workers Paid includes 10 hours a month, then USD 0.09 an hour
unit minutes; metered on wall-clock; browser hours are shared across all methods and rounded to the nearest whole hour per billing cycle
Pricenone stated
Per-object capnot stated
Retentionnot stated
Egressnot stated
Identityemail (placeholder) not published
Limits
  • request-rate 10 minutes of browser time a day on Workers Free source
  • retention-clamped 3 concurrent browsers on Free; browser hours round to the nearest whole hour per cycle source
not stated
Bindingrequest-rate ten minutes a day is the wall: the concurrency limit of three browsers is never reached inside a ten-minute day
Interfaceunknown
Toolingnot stated
Composes withnot stated
Reliabilityno reliability event recorded
NotesRe-read on 2026-10-22. the pricing page publishes the figure.
Evidence rungdocumented One page read moves it to documented. identity_cost is a guess by analogy, not a finding: the record marks it unverified in that field and no signup was performed.
Checked2026-10-22 (inherited); stale on 2026-11-21
Parsed numbers
  • $.limits[0].value limit:request-rate 10.0 minutes
Evidence (1)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/browser-run/pricing/'Browser hours: 10 minutes per day' on Workers Free and '10 hours per month, then $0.09 per additional hour' on Workers Paid; 'Concurrent browsers: 3 browsers' on Free
More fields (13)
{
 "talaria_m10h_usd": null,
 "talaria_m24h_usd": null,
 "nemo_m10h_usd": 31.1,
 "keep_rate": null,
 "keep_rate_basis": "no field in the source",
 "billing_model": "unclassified",
 "shape": null,
 "session_cap": null,
 "persistent_storage": null,
 "network_out": null,
 "price_note": null,
 "free_tier_kind": "allowance",
 "burst_x": 1.0
}
Unknown or withheld values (15)
  • $.chaining not-stated
  • $.egress.metered egress-unknown
  • $.egress.terms not-stated
  • $.extras.price_note process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note not-stated
  • $.per_object_cap.notes process
  • $.per_object_cap.stated not-stated
  • $.reliability_note none-observed
  • $.retention.notes not-extracted
  • $.retention.stated not-stated
  • $.tooling not-stated

Cloudflare Durable Objects Compute

caveatemailno cardDrequest-rate

developers.cloudflare.com/workers/platform/limits/ · serverless runtime · compute/cloudflare-durable-objects · JSON · compare

Free tier13,000 GB-seconds of Durable Object duration a day on the free plan. That is a Durable Object allowance; Workers Free separately carries 100,000 requests a day
unit mixed; metered on wall-clock; an object that is idle and eligible for hibernation is not billed for duration; duration is billed for the 128 MB allocation regardless of actual use
Pricenone stated
Per-object capnot applicable
RetentionSQLite-backed storage persists; hibernation disconnects clients without destroying state
Egressserved from the edge; no per-byte charge on the limits page
Identityemail a Cloudflare account; no card for the Free plan
Limits
  • request-rate 13,000 GB-s of duration a day; a WebSocket held open on the non-hibernation API bills for the whole connection source
  • per-object-cap 128 MB of memory per object, billed as a full 128 MB regardless of use source
a Durable Object stays active while a request, response stream, WebSocket or pending I/O is in flight
Bindingrequest-rate the daily duration allocation binds before the 128 MB ceiling, and a non-hibernating WebSocket spends it at wall-clock rate
Interfacessh a Worker binding; RPC and WebSocket to the object
ToolingWrangler, the Workers runtime, SQLite storage per object
Composes witha stateful coordination point with a WebSocket, which is a relay substrate and not a general machine
Reliabilityno reliability event recorded
NotesIt is a Durable Object allowance and attributing it to Workers was a category error.
Evidence rungdocumented
Checked2026-10-22 (live); stale on 2026-11-21
Parsed numbers
  • $.limits[0].value limit:request-rate 13000.0 GB
  • $.limits[1].value limit:per-object-cap 128.0 MB
Evidence (3)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/durable-objects/platform/pricing/the included allocation table reads 'Duration | 13,000 GB-s / day | 400,000 GB-s / month, + $12.50/million GB-s'
2026-10-22developers.cloudflare.com/durable-objects/platform/pricing/'Durable Objects that are idle and eligible for hibernation are not billed for duration'; duration is billed for the 128 MB allocation regardless of actual usage
2026-10-22developers.cloudflare.com/workers/platform/limits/Workers Free carries 100,000 requests a day; the page does not carry the 13,000 GB-s figure
More fields (8)
{
 "shape": null,
 "billing_model": "wall-clock",
 "session_cap": {
  "wall_clock_min": null,
  "idle_reap_s": null,
  "restart_required": false,
  "note": "no idle kill while connected; duration billed only while active"
 },
 "keep_rate": {
  "value": 0.0,
  "basis": "duration is billed only while active",
  "source": "https://developers.cloudflare.com/workers/platform/limits/"
 },
 "persistent_storage": {
  "included_gib": null,
  "price_gib_month": "SQLite-backed storage billed separately",
  "durability": "survives hibernation",
  "survives_stop": true,
  "survives_destroy": false,
  "max_retention": "while the object exists"
 },
 "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",
 "census_rows": [
  "cloudflare-do"
 ]
}
Unknown or withheld values (4)
  • $.notes partly-held
  • $.per_object_cap.notes process
  • $.per_object_cap.stated not-applicable
  • $.reliability_note none-observed

Cloudflare Project Alexandria Compute

caveatcardcardDwrite-gated

www.cloudflare.com/lp/project-alexandria/ · cloud VM · compute/cloudflare-project-alexandria · JSON · compare

Free tierQuoted: 'Project Alexandria, our open source credits program, offers flexibility to suit your varying needs' with 'Upgrade to Cloudflare Pro, Business, or Enterprise plan', 'Increased requests to Cloudflare Workers and Pages', 'Increased R2 storage for builds and artifacts', and 'Enhanced Zero Trust access, including Remote Browser Isolation'. Credits are 'recurring annual' and 'Acceptance into Project Alexandria and determination of benefits is at Cloudflare's sole discretion'.
unit none; metered on wall-clock; recurring-credit
Pricenone stated
Per-object capnot applicable
Retentionnot applicable
Egressnot stated
Identitycard a Cloudflare account plus a valid payment method on file before any credit exists: the programme page states 'You will be required to create a Cloudflare account and upload a valid payment method on file'. The authorisation amount is not stated; whether debit or prepaid is accepted is not stated; no phone or ID step is stated
Limits
  • write-gated No amount, no cap and no deadline are published: benefits are set case by case at Cloudflare's sole discretion, and acceptance requires a payment method on file before any credit exists. source
No amount, no cap and no deadline are published: benefits are set case by case at Cloudflare's sole discretion, and acceptance requires a payment method on file before any credit exists.
Bindingwrite-gated No amount, no cap and no deadline are published: benefits are set case by case at Cloudflare's sole discretion, and acceptance requires a payment method on file before any credit exists.
Interfaceunknown inferred from the tooling the provider documents; not probed
Toolingnot stated
Composes withIf the allocation includes Workers Paid, this is the only programme here that can put a Python or TypeScript workload on an edge network with no server, which composes with the Cloudflare containers and sandbox records the corpus already holds.
Reliabilityno reliability event recorded
NotesThe honest gap is the number: Cloudflare publishes no credit amount, and the terms let it change or withdraw the programme 'at any time without notice'. A reader needs the payment method on file, so this is a card-gated lane, and the credits are non-transferable and not redeemable for cash. Somebody with an OSS project should ask for a number in the contact form rather than assume a tier.
Evidence rungdocumented
Checked2026-10-22 (live); stale on 2026-11-21
Evidence (3)
datesourcewhat it proved
2026-10-22www.cloudflare.com/lp/project-alexandria/quoted the benefit list, the recurring annual cadence, the sole-discretion sentence, and 'You will be required to create a Cloudflare account and upload a valid payment method on file'
2026-10-22blog.cloudflare.com/expanding-our-support-for-oss-projects-wthe programme launch post, 2024-09-27, describing it as the expanded open source programme; it states no dollar or credit figure, which is why the amount is null here
2026-10-22www.cloudflare.com/press-releases/2024/cloudflare-publishes-reported 'recurring annual credits and an expanded range of free services' and that Cloudflare gave 'more than $15 million in donated products and services in 2024' across its impact programmes, which is the aggregate and not a per-project figure
More fields (1)
{
 "wave2": {
  "class": "vendor-oss-credits",
  "free_tier_kind": "recurring-credit",
  "shape": null
 }
}
Unknown or withheld values (9)
  • $.egress.metered egress-unknown
  • $.egress.terms not-stated
  • $.interface interface-unknown
  • $.per_object_cap.notes process
  • $.per_object_cap.stated not-applicable
  • $.reliability_note none-observed
  • $.retention.notes process
  • $.retention.stated not-applicable
  • $.tooling not-stated

Cloudflare Workers Compute

caveatemailno cardDrequest-rate

developers.cloudflare.com/workers/platform/limits/ · serverless runtime · compute/cloudflare-workers · JSON · compare

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
Per-object capnot applicable
Retentiona Worker holds no disk; state lives in KV, D1, R2 or a Durable Object
Egressresponse bodies are served from the edge with no per-byte charge stated on the limits page
free_allowance: no byte cap stated
Identityemail a Cloudflare account; no card for the Free plan
Limits
  • request-rate 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 the client 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
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.
Evidence rungdocumented
Checked2026-10-22 (live); stale on 2026-11-21
Parsed numbers
  • $.extras.m10h_usd price USD0.0 / month
  • $.extras.m24h_usd price USD0.0 / month
  • $.limits[0].value limit:request-rate 100000.0 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 the client 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 or withheld values (3)
  • $.per_object_cap.notes process
  • $.per_object_cap.stated not-applicable
  • $.reliability_note none-observed

Cloudflare Workers AI Compute

caveatemailno cardDrequest-rate

developers.cloudflare.com/workers-ai/platform/pricing/ · inference API · compute/cloudflare-workers-ai · JSON · compare

Free tierA perpetual daily allowance of 10,000 Neurons on the Workers Free plan: 'Our free allocation allows anyone to use a total of 10,000 Neurons per day at no charge.' Limits reset daily at 00:00 UTC. Text generation runs at 300 requests a minute on the free plan, ten times Groq's 30 rpm. The model choice changes the yield by a factor of 12: on the same 10,000 Neurons, @cf/meta/llama-3.1-8b-instruct yields 133K output tokens a day at 75,147 Neurons per 1M, while @cf/qwen/qwen3-30b-a3b-fp8 yields 328K at 30,475 per 1M and @cf/meta/llama-3.2-1b-instruct yields 548K at 18,252 per 1M. Eight frontier models are excluded from the free lane because they require a paid billing method: kimi-k2.6, kimi-k2.7-code, glm-5.2, glm-5.3, glm-5.3-flash, deepseek-v4-flash-0731, deepseek-v4.1-flash-1017 and deepseek-v4-pro-0813.
unit minutes; metered on wall-clock; recurring-daily-allowance
Pricenone stated
Per-object capnot applicable
Retentionnot applicable
Egressnot stated
Identityemail not published
Limits
  • request-rate the daily Neuron pool binds long before the 300 rpm does, and the model choice sets the size of the pool: at qwen3-30b-a3b-fp8 rates 10,000 Neurons a day is about 328K output tokens, or about 9.8M a month, where the same allowance spent on llama-3.1-8b-instruct non-fp8 is 133K a day. A single request at the 30B model's context limit can spend a whole day. source
the daily Neuron pool binds long before the 300 rpm does, and the model choice sets the size of the pool: at qwen3-30b-a3b-fp8 rates 10,000 Neurons a day is about 328K output tokens, or about 9.8M a month, where the same allowance spent on llama-3.1-8b-instruct non-fp8 is 133K a day. A single request at the 30B model's context limit can spend a whole day.
Bindingrequest-rate the daily Neuron pool binds long before the 300 rpm does, and the model choice sets the size of the pool: at qwen3-30b-a3b-fp8 rates 10,000 Neurons a day is about 328K output tokens, or about 9.8M a month, where the same allowance spent on llama-3.1-8b-instruct non-fp8 is 133K a day. A single request at the 30B model's context limit can spend a whole day.
Interfacerest inferred from the tooling the provider documents; not probed
Toolingnot stated
Composes withthe only free lane here with both a perpetual daily meter and 300 rpm: it pairs with a free Cloudflare Worker as the scheduler, so a nightly batch runs inside the free tier with no machine to keep awake.
Reliabilityno reliability event recorded
NotesAll arithmetic is an estimate and not a vendor figure, but the conversion factor is checkable against the vendor's own two columns: USD 0.011 per 1,000 Neurons is USD 11 per 1M Neurons, and 34,868 Neurons per 1M output tokens for llama-3.1-8b-fp8-fast times USD 11 per 1M Neurons is USD 0.384, exactly the price printed beside it. The same check holds for qwen3-30b-a3b-fp8 (30,475 x USD 11 / 1M = USD 0.335). So Neurons are a linear repricing of GPU seconds and the free allowance has a fixed dollar value of 10,000 x USD 0.011 / 1,000 = USD 0.11 a day, or USD 3.30 a month, whatever model is chosen. The model choice therefore buys tokens, not dollars: 328K output tokens a day on qwen3-30b-a3b-fp8 is about 9.8M a month, and 548K on llama-3.2-1b is about 16.4M a month at visibly lower quality. Verdict is qualifies-with-caveat because no probe was run: the REST endpoint needs a real account id and an API token, and the keyless probe against a placeholder account id returned 404 from the origin, which establishes only that the route requires a credential.
Evidence rungdocumented
Checked2026-10-22 (live); stale on 2026-11-21
Evidence (10)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/workers-ai/platform/pricing/'Our free allocation allows anyone to use a total of 10,000 Neurons per day at no charge' and '$0.011 per 1,000 Neurons', quoted
2026-10-22developers.cloudflare.com/workers-ai/platform/pricing/@cf/qwen/qwen3-30b-a3b-fp8 at 4625 neurons per M input and 30475 per M output against $0.051 and $0.335 per M tokens; @cf/meta/llama-3.1-8b-instruct at 25608 and 75147 neurons against $0.282 and $0.827, quoted
2026-10-22developers.cloudflare.com/workers-ai/platform/pricing/'Some models require a paid billing method' listing the eight excluded models, quoted
2026-10-22developers.cloudflare.com/workers-ai/platform/limits/Text Generation 300 requests per minute; paid-plan models 20 rpm on standard Workers AI billing, quoted
2026-10-22api.cloudflare.com/client/v4/accounts/test/ai/run/@cf/meta/lnot published
2026-10-22developers.cloudflare.com/workers/platform/limits/quoted table: CPU time per HTTP request, Workers Free 10 ms, Workers Paid 5 min default 30 seconds; CPU time per Cron Trigger, Free 10 ms
2026-10-22developers.cloudflare.com/workers/platform/limits/quoted: 'The average Worker uses approximately 2.2 ms per request. Heavier workloads that handle authentication, server-side rendering, or parse large payloads typically use 10-20 ms'
2026-10-22developers.cloudflare.com/support/troubleshooting/http-statuquoted: Error 1102 means the Worker 'has exceeded its CPU time limit or memory limit'; resolution requires the Paid plan to raise the limit
2026-10-22developers.cloudflare.com/workers/platform/limits/quoted: 'Each isolate has some built-in flexibility to allow for cases where your Worker infrequently runs over the configured limit. If your Worker starts hitting the limit consistently, its execution will be terminated'
2026-10-22community.cloudflare.com/t/what-happens-when-the-cpu-time-iscommunity answer on the burst behaviour: small bursts over 10 ms are allowed, and a worker that goes beyond is shut down [date precision: year precision] [re-read 2026-10-22]
More fields (1)
{
 "wave2": {
  "class": "perpetual-free-allowance",
  "free_tier_kind": "recurring-daily-allowance",
  "shape": {
   "vcpu": null,
   "ram_gib": null,
   "gpu_class": null,
   "gpu_count": null
  }
 }
}
Unknown or withheld values (10)
  • $.egress.metered egress-unknown
  • $.egress.terms not-stated
  • $.evidence[4].proved withheld
  • $.identity_cost.detail process
  • $.per_object_cap.notes process
  • $.per_object_cap.stated not-applicable
  • $.reliability_note none-observed
  • $.retention.notes process
  • $.retention.stated not-applicable
  • $.tooling not-stated

Cloudflare Workers AI Crawling

caveatemailno cardRrequest-rate

developers.cloudflare.com/workers-ai/platform/pricing/ · model host · crawler-scraper/cfai · JSON · compare

Free tier10,000 Neurons a day per account on Workers Free
unit requests; metered on request-count
Pricenone stated
Per-object capnot applicable: the unit is a Neuron
RetentionNeurons reset daily
Egressnot applicable: JSON answers
Identityemail a Cloudflare account
Limits
  • request-rate 10,000 Neurons a day per account; this deployment reads 30,000 a day across accounts
  • request-rate 18.04 of 30,000 Neurons spent at 02:50Z
Bindingrequest-rate
Interfacerest a binding on a Worker, or REST; models for rerank, convert and generate
Toolingnot stated
Composes withReranks search and works, converts documents to Markdown, and describes an image when asked
Reliabilityno reliability event recorded
NotesThe reason a broker answer carries a rank at all: bge-reranker-base scores results, and a spent allocation silently falls back to the provider's own order.
Evidence rungreported the daily allowance is inherited; the deployment's consumption is measured
Checked2026-10-22 (inherited); stale on 2026-11-05
Evidence (1)
datesourcewhat it proved
2026-10-22withheldpool neurons: 30,000 a day, 18.038 spent, reset at 2026-10-23T00:00Z
Unknown or withheld values (5)
  • $.evidence[0].url private-url
  • $.limits[0].source private-url
  • $.limits[1].source private-url
  • $.reliability_note none-observed
  • $.tooling not-stated

Cloudflare Browser Rendering Crawling

caveatemailno cardRrequest-rate

developers.cloudflare.com/browser-rendering/ · headless browser · crawler-scraper/cfbr · JSON · compare

Free tierWorkers Free: 600 browser-seconds a day, or 10 browser-minutes; 3 concurrent browsers
unit requests; metered on request-count
Pricenone stated
Per-object capnot applicable: the unit is browser time
Retentionbrowser-seconds reset daily
Egressnot applicable: Markdown or HTML answers
Identityemail a Cloudflare account
Limits
  • request-rate 600 browser-seconds a day on Workers Free, 3 concurrent
  • request-rate this deployment reads 1,800 browser-seconds a day and 36,000 a month from a Paid plan, with 20 crawl jobs a day, measured from status.json
  • per-object-cap crawl /snapshot answers each page whole; it refuses main_content
Bindingrequest-rate
Interfacerest REST Quick Action /markdown, /snapshot and /crawl; a synchronous JSON answer per POST
Toolingnot stated
Composes withThe read ladder's rendered-DOM leg, and one of the four crawl providers; refuses main_content so it answers each page whole
Reliabilityno reliability event recorded
NotesThe two facts must not be merged: 600 browser-seconds a day is the vendor's Workers Free tier; 1,800 a day is this deployment's paid plan and says nothing about what a new account gets. It is also the only browser lane that adds no new third party to a Worker's trust domain.
Evidence rungreported the deployment numbers are measured from status.json
Checked2026-10-22 (live); stale on 2026-11-05
Evidence (1)
datesourcewhat it proved
2026-10-22withheldpool browser: 1,800 a day and 36,000 a month, 6.8 and 179.6 spent, one account excluded; pool jobs: 20 a day
Unknown or withheld values (5)
  • $.evidence[0].url private-url
  • $.limits[1].source private-url
  • $.limits[2].source private-url
  • $.reliability_note none-observed
  • $.tooling not-stated

Cloudflare URL Scanner Crawling

caveatemailno cardDretention-clamped

developers.cloudflare.com/url-scanner/ · archive · crawler-scraper/cfscan · JSON · compare

Free tierfree with a Cloudflare account; scans of the exact URL in the last 30 days
unit requests; metered on request-count
Pricenone stated
Per-object capnot applicable: the unit is a scan
Retention30 days: a scan older than that is not held, and a pinned request before it is a 400
Egressnot applicable: the archived document
Identityemail a Cloudflare account
Limits
  • request-rate 240 requests a minute on this deployment's account window, shared with read, which keeps 4 free for a read lookup
  • retention-clamped 30 days of reach; a request pinned to it outside that range is a 400 naming the reach
  • per-object-cap a listing reads the newest 100 scans of the URL; when that search is full and its oldest scan is after from, older scans are unknown
Bindingretention-clamped
Interfacerest REST; read by the broker's archive service, never submitted by it
Toolingnot stated
Composes withThe archive fallback when the Wayback Machine is slow or holds nothing; a page it answers always points on to the other archives
Reliabilityno reliability event recorded
NotesA 30-day window is not an archive. It is a recent-copy cache, and the broker's listing says so by never ending on a URL Scanner page.
Evidence rungdocumented
Checked2026-10-22 (live); stale on 2026-11-21
Parsed numbers
  • $.limits[0].value limit:request-rate 240.0 requests / minute
Evidence (2)
datesourcewhat it proved
2026-10-22withheldcfscan is the scans of the exact URL in the last 30 days; a page it answers carries skip=cfscan and more=true; provider=cfscan outside the 30 days is a 400 naming its reach
2026-10-22web.archive.org/web/*/nodeseek.com/post-918318-1200, 0 captures, more false, misses wayback none, arquivo none, commoncrawl unknown
Unknown or withheld values (6)
  • $.evidence[0].url private-url
  • $.limits[0].source private-url
  • $.limits[1].source private-url
  • $.limits[2].source private-url
  • $.reliability_note none-observed
  • $.tooling not-stated

Cloudflare Workers KV Databases and KV

caveatemailno cardDrequest-rate

developers.cloudflare.com/kv/platform/limits/ · edge key-value store · databases-kv/cloudflare-kv · JSON · compare

Free tier100,000 reads per day; 1,000 writes per day; 1 GB per account; 1,000 namespaces
unit requests; metered on request-count
Pricenone stated
Per-object cap25 MiB per value; 512 bytes per key
Retentionno expiry on a stored key unless the write sets one; the free tier does not delete
Egressreads are counted, not metered by byte; no egress charge on any plan
Identityemail a Cloudflare account
Limits
  • request-rate 1,000 writes per day to different keys source
  • request-rate 1 write per second to the same key source
  • per-object-cap 25 MiB per value; 1 GB per account source
100,000 reads per day are unlimited on the paid plan; the minimum cacheTtl is 30 seconds
Bindingrequest-rate
Interfacerest, cli a REST API and a Worker binding; access through wrangler
Toolingwrangler kv; the Cloudflare API; a Worker binding in code
Composes witha read cache in front of a free database: 100,000 reads a day is 100 times the write budget, which is the ratio that makes it a cache and not a store
Reliabilityno reliability event recorded
NotesThe asymmetry is the finding: reads are plentiful and writes are not, by two orders of magnitude. Any design that treats KV as the store hits 1,000 writes a day and stops.
Evidence rungdocumented the limits page was read today; no namespace was created.
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.limits[2].value limit:per-object-cap 25.0 MiB
Evidence (1)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/kv/platform/limits/Free column: 100,000 reads/day, 1,000 writes/day to different keys, 1 write/second to the same key, 1,000 namespaces, 1 GB/account, 1 GB/namespace, 512-byte keys, 25 MiB values, 30-second minimum cacheTtl
Unknown or withheld values (1)
  • $.reliability_note none-observed

Cloudflare Universal SSL Domains and DNS

caveatemailno cardRper-object-cap

developers.cloudflare.com/ssl/edge-certificates/universal-ss · certificate authority · domains-dns/cloudflare-universal-ssl · JSON · compare

Free tiera free certificate on every zone, covering the apex and one level of subdomain
unit unlimited; metered on none
Pricenone stated
Per-object capcovers example.com and app.example.com, not a.b.example.com; deeper names need Advanced Certificate Manager
Retentionthe certificate is issued and renewed by Cloudflare while the zone is active
Egressno charge
Identityemail a Cloudflare account and a zone on Cloudflare nameservers
Limits
  • per-object-cap one level of subdomain only; deeper names need Advanced Certificate Manager source
Bindingper-object-cap
Interfacerest automatic on a proxied zone; no client API of its own, and the zone API reports the certificate
Toolingnothing to run: the certificate appears on the zone
Composes withthe certificate half of the free endpoint, from the same account and zone as the DNS and the tunnel
Reliabilityno reliability event recorded
NotesThe one-level limit is the trap. A per-tenant scheme at tenant.app.example.com needs a paid certificate manager, or a wildcard from Let's Encrypt over DNS-01, which is free.
Evidence rungreported the one-level coverage limit is stated across Cloudflare's TLS documentation and repeated in third-party summaries; the product page was reached only as a stub, so this is reported.
Checked2026-10-23 (live); stale on 2026-11-06
Evidence (1)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/ssl/edge-certificates/universal-ssUniversal SSL is free on every plan; the one-level subdomain coverage limit and the Advanced Certificate Manager upgrade path are the substance
Unknown or withheld values (1)
  • $.reliability_note none-observed

Cloudflare Pages Egress and tunnels

caveatemailno cardDper-object-cap

developers.cloudflare.com/pages/platform/limits/ · static host · egress/cloudflare-pages-egress · JSON · compare

Free tierunlimited static requests; 100,000 Function invocations per day; 25 MiB per asset
unit unlimited; metered on request-count
Pricenone stated
Per-object cap25 MiB per static asset (26214400 bytes)
Retentionnot applicable
Egressnot metered for static assets; Functions are counted per invocation, not per byte
Identityemail a Cloudflare account
Limits
  • per-object-cap 25 MiB per static asset source
  • request-rate 100,000 Function invocations per day, shared with Workers source
Bindingper-object-cap
Interfacecli wrangler pages deploy
Toolingwrangler
Composes withserves static bytes with no meter, so it is the free front for an object set that fits the 25 MiB cap; the cap sets the shard size and the volume does not bind.
Reliabilitya build is a write gate; 500 builds per month on the free plan
NotesThis record owns the egress term only. The storage arithmetic belongs to the storage topic and is not restated here.
Evidence rungdocumented
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.limits[0].value limit:per-object-cap 25.0 MiB
Evidence (1)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/pages/platform/limits/25 MiB per static asset and 100,000 Function requests per day
More fields (3)
{
 "stale_after_days": 180,
 "bytes_transit": "yes",
 "transit_note": "static assets leave Cloudflare's edge on every request; the request count is metered, the bytes are not"
}

Cloudflare R2 Egress and tunnels

caveatemailno cardD

developers.cloudflare.com/r2/pricing/ · object storage (zero-egress) · egress/cloudflare-r2 · JSON · compare

Free tier10 GB-month storage, 1M Class A and 10M Class B operations per month, egress free
unit GB; metered on stored-bytes
Pricenone stated
Per-object capnot applicable: storage is metered by volume rather than per object
Retentionnot applicable: bytes persist while the account is in good standing
Egressfree, unconditionally, on every plan
free_allowance: none for egress: egress to the internet is free on every plan
Identityemail a Cloudflare account
Limits
  • request-rate 1M Class A and 10M Class B operations per month source
the 10 GB-month is a storage volume and not an object size, so no kind in the six-value vocabulary names it. It stays the binding term: 10 GB is 0.1% of the hot working set
Bindingnone nothing binds the egress: it is free unconditionally. The 10 GB-month storage volume caps what an origin can hold and no kind names a volume
Interfaces3 https://<account>.r2.cloudflarestorage.com
Toolingaws-cli, rclone (s3 backend)
Composes withthe origin that makes a free front free: R2 holds the bytes with zero egress and a Cloudflare front serves them, so the read path costs nothing at any volume and the 10 GB is the whole bill.
Reliabilityzero egress applies to the read path only
Evidence rungdocumented
Checked2026-10-23 (live); stale on 2026-11-22
Evidence (1)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/r2/pricing/10 GB-month storage, 1M Class A, 10M Class B, egress free; page last updated 2026-10-01
More fields (3)
{
 "stale_after_days": 180,
 "bytes_transit": "yes",
 "transit_note": "the object leaves Cloudflare's network on every read, and egress is free on every plan"
}

Cloudflare Tunnel (named) Egress and tunnels

caveatemailno cardDwrite-gated

developers.cloudflare.com/cloudflare-one/networks/connectors · tunnel (hosted, named) · egress/cloudflare-tunnel · JSON · compare

Free tierunlimited tunnels and unmetered transit; 1,000 tunnels per account
unit unlimited; metered on identity-count
Pricenone stated
Per-object cap100 MB proxied request body on Free and Pro (413), 200 MB Business
Retentionnot applicable: the tunnel and its hostname persist
Egressunmetered; no bandwidth figure appears among the account limits
Identityemail a Cloudflare account plus a domain delegated to Cloudflare nameservers
Limits
  • write-gated the hostname must be a zone on Cloudflare nameservers source
  • per-object-cap 100 MB proxied request body on Free and Pro source
  • retention-clamped 125 s proxy read timeout and 30 s proxy write timeout, both 524 source
counts of things, not rates, so no vocabulary kind names them: 1,000 cloudflared tunnels per account and 25 active replicas per tunnel; 50,000 routes per account, shared with Cloudflare Mesh
Bindingwrite-gated the domain is the only paid element and the gate; the 100 MB body cap binds writes, not reads.
Interfacecli, rest cloudflared tunnel run; the hostname is a record on a zone the client owns
Toolingcloudflared
Composes withthe serving chain for a real hostname: a domain on Cloudflare nameservers -> a named tunnel -> an origin that cannot open a port. Composes with Oracle Always Free as the origin and with R2 behind it, and the scarce link is the domain.
Reliabilitycommunity reports describe about 20 Mbit/s on tunnel transfers; not reproduced here
Notes'Unmetered' is a documented absence rather than a quota, so it is not multiplied here. The census cited the account-limits page for the 100 MB figure; that page does not contain it.
Evidence rungdocumented
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.limits[1].value limit:per-object-cap 100.0 MB
Evidence (3)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/cloudflare-one/account-limits/1,000 tunnels per account, 25 replicas per tunnel, 50,000 routes, and no bandwidth figure anywhere on the page
2026-10-22developers.cloudflare.com/fundamentals/reference/connection-Proxy Read Timeout 125 s and Proxy Write Timeout 30 s, both returning 524
2026-10-22community.cloudflare.com/t/cloudflare-tunnel-limits-and-bandCloudflare staff, 2022-06-21: 'There are no bandwidth limits'
More fields (3)
{
 "stale_after_days": 180,
 "bytes_transit": "yes",
 "transit_note": "cloudflared dials out and Cloudflare relays the request and response bytes"
}

Cloudflare WARP (consumer) Egress and tunnels

caveatemailno cardD

developers.cloudflare.com/warp-client/ · device VPN · egress/cloudflare-warp · JSON · compare

Free tiera free client with no published data cap
unit unlimited; metered on downloaded-bytes
Pricenone stated
Per-object capnot applicable
Retentionnot applicable
Egressno published cap and no published rate
Identityemail a Cloudflare account
Bindingnone
Interfacecli warp-cli connect
Toolingwarp-cli
Composes withgives a device a new exit and does not give a server one, so it composes with a client and not with a serving origin.
Reliabilitya community report describes about 1.8 MB/s on WARP; not reproduced here
NotesNothing here can be planned against: no cap and no rate.
Evidence rungdocumented
Checked2026-10-23 (live); stale on 2026-11-22
Evidence (1)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/warp-client/the consumer client is free with no published cap
More fields (3)
{
 "stale_after_days": 180,
 "bytes_transit": "yes",
 "transit_note": "the device's traffic exits through Cloudflare's network rather than its own"
}

Cloudflare Email Routing Email

caveatemailno cardD

developers.cloudflare.com/email-service/ · inbound routing · email/cloudflare-email-routing · JSON · compare

Free tierunlimited inbound email on Workers Free and Paid; 200 destination addresses, 200 rules per domain, 30 domains per zone
unit unlimited; metered on request-count
Pricenone stated
Per-object cap25 MiB inbound message; larger messages are rejected (26214400 bytes)
Retentionnot applicable: messages are forwarded, not stored
Egressnot applicable: inbound only on the free plan
Identityemail a Cloudflare account with the domain delegated to Cloudflare nameservers
Limits
  • per-object-cap 25 MiB inbound message; larger messages are rejected source
counts of things, not rates, so no vocabulary kind names them: 200 destination addresses per account, shared across every domain; 200 routing rules per domain and 30 domains per zone
Bindingnone nothing in the vocabulary binds the volume: inbound is unlimited and the 25 MiB message cap bounds a single message rather than a day. What actually caps the shape is the 200 destination addresses per account, which is a count and not one of the six kinds
Interfacerest MX records on the zone, with rules mapping a pattern to a destination or a Worker
Toolingthe Cloudflare dashboard, wrangler for Worker handlers
Composes withthe inbound half of the free mail chain and the only unmetered thing in this topic: unlimited inbound on a domain the client already holds, forwarded to a mailbox. Its scarce link is the 200 verified destinations at the account level.
Reliabilitya routing rule maps one pattern to one destination; a fan-out to several destinations needs a Worker
NotesInbound is genuinely unmetered and is the one unlimited thing in this topic. The 200-destination cap is the quiet one.
Evidence rungdocumented no probe: the inbound path could not be exercised from this host. route1, route2 and route3.mx.cloudflare.net answered 550 on the sender's IPv6 reverse lookup, and TCP 25 was reset over IPv4, so no SMTP-level evidence was obtained either way
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.limits[0].value limit:per-object-cap 25.0 MiB
Evidence (2)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/email-service/platform/pricing/'Inbound emails (Email Routing) | Unlimited | Unlimited' across Workers Free and Paid, while outbound is 'Not available' on Workers Free
2026-10-22developers.cloudflare.com/email-service/platform/limits/200 routing rules per domain, 200 destination addresses per account, and a 25 MiB inbound message limit
More fields (1)
{
 "stale_after_days": 90
}

Cloudflare Workers AI Inference

caveatemailno cardDrequest-rate

developers.cloudflare.com/workers-ai/platform/pricing/ · inference endpoint, platform allocation · inference/cloudflare-workers-ai · JSON · compare

Free tier10,000 Neurons per day at no charge on both the Free and the Paid Workers plan. The page states the daily figure; the monthly figure of 300,000 and the token equivalents below are derived arithmetic on it, not vendor statements
unit tokens; metered on request-count; billing is in Neurons. The page prints a per-token price beside each model as an equivalent, so a single USD per million tokens figure for Workers AI does not exist. The free-plan input rate runs from 1,542 to 60,000 neurons per million tokens across 31 models, a factor of 38.9, so the token count behind one allowance is model-dependent: 194.6 million a month at the cheapest and 5.0 million at the dearest Derived figures and their bases: 300,000 = 10,000 x 30 days; 122.1 million input tokens = 300,000 / 2,457 x 1,000,000; 4.07 million a day = that divided by 30
Pricenone stated
Per-object capnot applicable: an inference endpoint stores nothing for the caller
Retentionnot applicable
Egressthe response is the payload; no separate egress term is published
Identityemail a Cloudflare account; the Workers Free plan is enough for the daily allocation
Limits
  • request-rate 10,000 Neurons per day, reset at 00:00 UTC; further operations fail with an error past it source
  • request-rate 300 requests a minute for text generation on the documented tier, unless the model requires the Workers Paid plan; the 3,000-a-minute figure on the same page belongs to image classification, object detection and text embeddings source
  • request-rate 20 requests a minute per account per model on standard billing for the eight paid-only models, 50 requests a minute with prepaid AI Gateway credits source
Bindingrequest-rate
Interfacerest
Toolingany OpenAI-compatible client; curl against POST {base}/chat/completions
Composes withpairs with a Cloudflare Worker already deployed; the 300,000-neuron monthly allowance is the scarce link, and it covers 42 per cent of the target workload
Reliabilityeight named models require a paid billing method and fail on a Free plan
Notes300,000 Neurons a month, not 375 million: 10,000 a day times 30. At 2,457 neurons per million input tokens that is 122.1 million input tokens a month and 4.07 million a day. The client's target of 15 million input and 37.5 million output tokens a month on llama-3.2-1b-instruct needs 15 x 2,457 + 37.5 x 18,252 = 721,305 neurons, which is 2.4 times the whole free allowance; the output half alone is 2.3 times it. The allocation is real, it is model-dependent, and it cannot carry the target workload, which is why the row is a fallback. Every figure beyond the page's own 10,000 a day is arithmetic on it and is labelled as such in free_tier.stated.
Evidence rungdocumented the allocation, the reset and the paid-only model list are quoted from the vendor pages read today. No call was made, because that needs an account.
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.limits[1].value limit:request-rate 300.0 requests / minute
  • $.limits[2].value limit:request-rate 20.0 requests / minute
Evidence (3)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/workers-ai/platform/pricing/10,000 Neurons per day free, USD 0.011 per 1,000 Neurons above it on Workers Paid, all limits reset daily at 00:00 UTC, and eight named models require a paid billing method including @cf/moonshotai/kimi-k2.6 and @cf/zai-org/glm-5.3-flash
2026-10-22developers.cloudflare.com/workers-ai/platform/pricing/per-model neuron rates over 39 text-generation models, of which 31 are reachable on the free plan; input runs from 1,542 neurons per million tokens on @cf/ibm-granite/granite-4.0-h-micro to 60,000 on @cf/qwen/qwq-32b, and the eight paid-only ids run to 127,273 on @cf/zai-org/glm-5.3
2026-10-22developers.cloudflare.com/workers-ai/platform/limits/Text Generation is 300 requests per minute, 'unless the model requires the Workers Paid plan'; Image Classification, Object Detection and Text Embeddings are 3000; Summarization 1500; Text Classification 2000; and the eight paid models are 20 requests per minute on standard billing or 50 with prepaid AI Gateway credits
Unknown or withheld values (1)
  • $.retention.stated not-applicable

Corrections

Cloudflare for Startups — nonprofit / civil-society track Storage

caveatinstitutionno cardRwrite-gated

www.cloudflare.com/forstartups/ · paas · storage/cloudflare-for-startups-nonprofit-civil-society-track · JSON · compare

Free tierUp to $350,000 in credits for a year on the current program page (tiered: Tier 3 $10k upward). The nonprofit track announced 2025-09-22 offers 'up to $250,000 in Cloudflare credits ... which can be used for a variety of our developer and core products, including databases & storage, compute services, AI, media, and performance and security'.
unit mixed; metered on stored-bytes
Pricenone stated
Per-object capnot stated
RetentionAward is discretionary and cohort-based (501(c)(3) or equivalent required); the announcement's application window has closed, so treat as 'reapply at next intake'. Nothing about the credits is permanent — after year one the workload reverts to paid or to the small free tier.
EgressN/A by construction — everything served through Cloudflare's edge, which is the egress-free property the client wants.
Identityinstitution derived from the record's prose, not from an identity field, and no signup was executed: TiB class) — not binding at 10 TiB. request-rate: Workers/API rate limits apply to control-plane calls; object GETs are not rate-limited at these volumes. retention: credits are for
Limits
  • write-gated application is declined source
  • write-gated application window has closed, so treat as 'reapply at next intake' source
per-object-cap: the storage product's own object cap applies (single-part 315 MB / multipart ~5 TiB class) — not binding at 10 TiB. request-rate: Workers/API rate limits apply to control-plane calls; object GETs are not rate-limited at these volumes. retention: credits are for 'a year'; the free-tier storage allowance that exists without credits is small (10 GB-class) and is where data lands if the application is declined.
Bindingwrite-gated the write is a queue with a person or a rule in it, so the upload rate is set by somebody else
Interfaces3-compatible, rest, rclone, cli rest
ToolingCloudflare API + Wrangler; Workers bindings; rclone backend 's3' works against Cloudflare's S3-compatible object storage endpoints, and the S3 API is the documented path for the storage product.
Composes withCredit grant per organisation, applied for in cohorts ('The application period ... runs until December 1', then Cloudflare selects a cohort) — so it is a gated annual intake, not an open self-serve tier. $250k of usage-based credit at storage-class rates is a very large number of GB-months; the constraint is the one-year credit window and the cohort gate.
ReliabilityAward is discretionary and cohort-based (501(c)(3) or equivalent required); the announcement's application window has closed, so treat as 'reapply at next intake'. Nothing about the credits is permanent — after year one the workload reverts to paid or to the small free tier.
NotesUp to $350,000 in credits for a year on the current program page (tiered: Tier 3 $10k upward). The nonprofit track announced 2025-09-22 offers 'up to $250,000 in Cloudflare credits ... which can be used for a variety of our developer and core products, including databases & storage, compute services, AI, media, and performance and security'.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (3)
datesourcewhat it proved
2026-10-21www.cloudflare.com/forstartups/'up to $350k in credits'; tier cards starting at Tier 3 $10k
2026-10-21blog.cloudflare.com/expanding-startups-for-nonprofits/'up to $250,000 in Cloudflare credits ... including databases & storage'; 'registered 501(c)(3) non-profit'; window closed 2025-12-01
2026-10-21withheldprobe: GET www.cloudflare.com/forstartups/ -> 200; GET blog.cloudflare.com/expanding-startups-for-nonprofits/ -> 200
Unknown or withheld values (5)
  • $.evidence[2].url private-url
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.per_object_cap.stated not-extracted
  • $.retention.notes not-extracted

Project Alexandria - Cloudflare's recurring OSS credit programme Storage

caveatcardcardR

www.cloudflare.com/lp/project-alexandria/ · paas · storage/project-alexandria-cloudflare-s-recurring-oss-credit-pro · JSON · compare

Free tierRecurring annual credits, amount set per project. Explicitly includes 'Increased R2 storage for builds and artifacts' and 'Increased requests to Cloudflare Workers and Pages'.
unit mixed; metered on stored-bytes
Pricenone stated
Per-object capnot stated
Retentionnot stated
EgressR2 egress is free to the internet; Workers/Pages requests are included in the credit.
Identitycard derived from the record's prose, not from an identity field, and no signup was executed: nse' and 'operate solely on a non-profit basis'. Requires a payment method on file. Acceptance and amount are at Cloudflare's sole discretion; programme can be discontinued at any time. paas
Bindingnone no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names
Interfaces3-compatible, git, rclone, cli s3
ToolingR2 is S3-compatible (rclone 's3' with Cloudflare provider, aws CLI, wrangler). Pages via git/wrangler deploy.
Composes withAnnual renewal is the whole point: unlike the one-shot startup credits, this is stated as 'recurring annual credits'. A maintainer with several OSS projects can plausibly hold several grants; credits are per project, non-transferable.
ReliabilityCredits can be revised or withdrawn; no SLA on the grant. The R2 component is the part the client already rejected on cost grounds, so the practical value is Pages/Workers request headroom, not bytes.
NotesRecurring annual credits, amount set per project. Explicitly includes 'Increased R2 storage for builds and artifacts' and 'Increased requests to Cloudflare Workers and Pages'.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (2)
datesourcewhat it proved
2026-10-21www.cloudflare.com/lp/project-alexandria/'Apply to receive recurring annual credits with Project Alexandria'; 'Increased R2 storage for builds and artifacts'
2026-10-21blog.cloudflare.com/expanding-our-support-for-oss-projects-w'recurring annual credits to even more open source projects'; criteria: non-profit basis + recognised OSS licence
Unknown or withheld values (5)
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.per_object_cap.stated not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted

Cloudflare Containers Compute

paidcardcardDvolume-quota

developers.cloudflare.com/containers/platform/pricing/ · platform host · compute/cloudflare-containers · JSON · compare

Free tierno free plan: the pricing table's Free row reads 'N/A' for memory, CPU and disk; Containers are included only with the USD 5 a month Workers Paid plan
unit none; metered on none
Pricenone stated
Per-object caplargest instance type standard-4: 4 vCPU, 12 GiB memory, 20 GB disk
Retentionbilling stops when the container instance goes to sleep; the disk is per instance, not a persistent volume
Egress1 TB included a month in North America and Europe at USD 0.025 per GB after; 500 GB included in Oceania, Korea and Taiwan at USD 0.05, and 500 GB everywhere else at USD 0.04
free_allowance: 1 TB (NA/EU)
price_per_tb: USD 25
Identitycard the Workers Paid subscription at USD 5 a month is a paid plan; no free-tier route to Containers is published
Limits
  • volume-quota 375 vCPU-minutes, 25 GiB-hours of memory and 200 GB-hours of disk a month on Workers Paid, then per-10 ms charges source
  • per-object-cap standard-4 is the largest instance: 4 vCPU / 12 GiB / 20 GB source
  • per-ip-shaping egress USD 0.025 per GB in NA and EU after 1 TB source
memory and disk bill on provisioned resources while CPU bills on active use only
Bindingvolume-quota 25 GiB-hours of memory a month at the 4 GiB standard-1 shape is 6.25 hours of runtime, so a container that stays up is gone in a day.
Interfacerest, cli Workers binding plus a REST control plane; each container has its own Durable Object
ToolingWrangler and the Workers runtime; the container is called from a Worker
Composes with1 TB of included egress in NA and EU is the largest free traffic allowance in this class
Reliabilitycharges start when a request reaches the container or it is started manually and stop when it sleeps; a cold container is billed from its start, not from its first byte
NotesArithmetic from the published rates: 25 GiB-hours a month at the 4 GiB standard-1 shape is 6.25 hours of a single container; at the 256 MiB lite shape it is 100 hours. The free Workers plan does not include Containers at all, which answers the corpus open question.
Evidence rungdocumented the Free row, the three Workers Paid allotments, the instance table and the egress table were all read on the pricing page today
Checked2026-10-25 (live); stale on 2026-11-24
Parsed numbers
  • $.extras.m10h_usd price USD0.0 / month
  • $.extras.m24h_usd price USD0.0 / month
  • $.limits[0].value limit:volume-quota 25.0 GiB
  • $.limits[1].value limit:per-object-cap 12.0 GiB
  • $.limits[2].value limit:per-ip-shaping 1.0 TB
Evidence (7)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/containers/platform/pricing/included on Workers Paid: 25 GiB-hours memory, 375 vCPU-minutes, 200 GB-hours disk a month
2026-10-22developers.cloudflare.com/containers/platform/pricing/instance types run from lite (1/16 vCPU, 256 MiB, 2 GB) to standard-4 (4 vCPU, 12 GiB, 20 GB)
2026-10-22developers.cloudflare.com/containers/platform/pricing/egress USD 0.025/GB in NA and EU with a 1 TB monthly allotment
2026-10-24developers.cloudflare.com/containers/platform/pricing/quoted: 'Free | N/A | N/A |' in the vCPU/Memory/Disk table, against 'Workers Paid | 25 GiB-hours/month included ... 375 vCPU-minutes/month ... 200 GB-hours/month'
2026-10-24developers.cloudflare.com/containers/platform/pricing/quoted: 'charges start when a request is sent to the container or when it is manually started. Charges stop after the container instance goes to sleep, which can happen automatically after a timeout.'
2026-10-24developers.cloudflare.com/containers/platform/pricing/quoted instance table: 'standard-4 | 4 | 12 GiB | 20 GB' and egress 'North America & Europe | $0.025 | 1 TB'
2026-10-24developers.cloudflare.com/containers/platform/pricing/the rate table's Free row reads 'N/A' for Memory, CPU and Disk, and the included usage is described as 'part of the $5 USD per month Workers Paid plan'
More fields (12)
{
 "shape": {
  "vcpu": 1,
  "ram_gib": 4,
  "disk_gib": 8,
  "gpu_class": null,
  "gpu_count": null
 },
 "billing_model": "per-10ms",
 "granularity": {
  "min_billed_s": 0,
  "rounding_s": 0.01
 },
 "session_cap": {
  "wall_clock_min": null,
  "idle_reap_s": null,
  "restart_required": false,
  "note": "sleeps after a configurable timeout; billing stops at sleep"
 },
 "keep_rate": {
  "value": 0.0,
  "basis": "charges stop after the instance goes to sleep",
  "source": "https://developers.cloudflare.com/containers/platform/pricing/"
 },
 "persistent_storage": {
  "included_gib": 20,
  "price_gib_month": "USD 0.00000007 per GB-second beyond 200 GB-hours",
  "durability": "the runtime disk is per instance",
  "survives_stop": null,
  "survives_destroy": false,
  "max_retention": "unpublished"
 },
 "network_out": {
  "allow_outbound": true,
  "allow_inbound_listen": true,
  "ports": "the container's port through a Worker binding; no public inbound port of its own",
  "static_ip": false,
  "ipv6": false,
  "per_session_bytes": null
 },
 "free_tier_kind": "none",
 "m10h_usd": 0.0,
 "m24h_usd": 0.0,
 "price_arithmetic": "USD 5 a month for the plan; the included 25 GiB-hours is 6.25 hours at 4 GiB provisioned, then USD 0.0000025 per GiB-second",
 "term": "monthly"
}

Cloudflare Containers (free tier question) Compute

paidcardcardDwrite-gated

developers.cloudflare.com/containers/ · platform host · compute/cloudflare-egress-only · JSON · compare

Free tierCloudflare's machine product is paid; the free Durable Object row is the substitute
unit none; metered on wall-clock; recorded separately because the census listed Containers as a free row
Pricenone stated
Per-object capnot applicable
Retentionnot applicable: no free plan
Egresspriced per GB with an included allotment on Workers Paid
Identitycard Workers Paid is a subscription
Limits
  • write-gated Containers require the USD 5 a month Workers Paid plan source
the Free column of the Containers rate table reads N/A
Bindingwrite-gated Containers require the Workers Paid plan, so the gate is at purchase and not at a quota
Interfacessh a Workers binding
ToolingWrangler
Composes withnone without Workers Paid
Reliabilityno reliability event recorded
NotesKept as its own record so the census row and the pricing fact are joined rather than argued about.
Evidence rungdocumented
Checked2026-10-22 (live); stale on 2026-11-21
Evidence (1)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/containers/platform/pricing/the Free column of the memory, CPU and disk row reads N/A; usage is included with Workers Paid
More fields (8)
{
 "shape": null,
 "billing_model": "wall-clock",
 "session_cap": null,
 "keep_rate": null,
 "persistent_storage": null,
 "network_out": null,
 "free_tier_kind": "none",
 "census_rows": [
  "cloudflare-containers"
 ]
}
Unknown or withheld values (3)
  • $.per_object_cap.notes process
  • $.per_object_cap.stated not-applicable
  • $.reliability_note none-observed

Cloudflare Sandbox SDK / Containers Compute

paidemail?card?Drequest-rate

developers.cloudflare.com/containers/platform/pricing/ · container and VM sandbox · compute/cloudflare-sandbox · JSON · compare

Free tierno free tier: the Free plan row reads N/A for memory and CPU. The included allowance is 25 GiB-hours, 375 vCPU-minutes and 200 GB-hours a month inside the $5 Workers Paid plan
unit none; metered on none
Pricenone stated
Per-object capnot stated
Retentionnot stated
Egressnot stated
Identityemail (placeholder) not published
Limits
  • request-rate 375 vCPU-minutes a month included in Workers Paid, then $0.000020 a vCPU-second source
  • per-object-cap 25 GiB-hours and 200 GB-hours a month included; memory and disk bill on provisioned size, CPU on active use only source
  • per-ip-shaping egress is $0.025 a GB past 1 TB a month in North America and Europe, and $0.04 or $0.05 a GB past 500 GB elsewhere source
not stated
Bindingrequest-rate
Interfaceunknown
Toolingnot stated
Composes withnot stated
Reliabilityno reliability event recorded
Evidence rungdocumented the Containers pricing page was read on 2026-10-22. Its Free row is N/A and the included allowance requires the $5 Workers Paid plan, so the record's free-tier claim is wrong and the verdict moves to paid-only
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.limits[1].value limit:per-object-cap 25.0 GiB
  • $.limits[2].value limit:per-ip-shaping 1.0 TB / month
Evidence (2)
datesourcewhat it proved
2026-10-02developers.cloudflare.com/containers/platform/pricing/not published
2026-10-22developers.cloudflare.com/containers/platform/pricing/'Containers are billed for every 10ms that they are actively running ... with included monthly usage as part of the $5 USD per month Workers Paid plan' and the Free row reads 'N/A / N/A', with '25 GiB-hours/month included', '375 vCPU-minutes/month' and '200 GB-hours/month' on Workers Paid, quoted
More fields (16)
{
 "talaria_m10h_usd": 59.0,
 "talaria_m24h_usd": 134.6,
 "nemo_m10h_usd": 43.59,
 "keep_rate": 1.0,
 "keep_rate_basis": null,
 "billing_model": "unclassified",
 "shape": null,
 "session_cap": {
  "wall_clock_min": null,
  "idle_reap_s": null,
  "restart_required": false,
  "note": "billing is by 10ms of active running; a container that is not handling a request costs nothing, which is the sleep behaviour"
 },
 "persistent_storage": null,
 "network_out": null,
 "price_note": null,
 "free_tier_kind": "none",
 "granularity": {
  "min_billed_s": 0,
  "rounding_s": null
 },
 "burst_x": 1.001,
 "ps": {
  "gib": null,
  "price": "$0.00000007 a GB-second past 200 GB-hours a month",
  "durability": "instance disk",
  "on_stop": true,
  "on_destroy": false,
  "retention": "while the instance exists"
 },
 "net": {
  "out": true,
  "in": true,
  "ports": "Workers and HTTP",
  "static_ip": false,
  "ipv6": null,
  "allowance": "1 TB a month in North America and Europe, 500 GB elsewhere"
 }
}
Unknown or withheld values (17)
  • $.chaining not-stated
  • $.egress.metered egress-unknown
  • $.egress.terms not-stated
  • $.evidence[0].proved process
  • $.extras.keep_rate_basis process
  • $.extras.price_note process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note not-stated
  • $.per_object_cap.notes process
  • $.per_object_cap.stated not-stated
  • $.reliability_note none-observed
  • $.retention.notes not-extracted
  • $.retention.stated not-stated
  • $.tooling not-stated

Cloudflare Workers for Platforms Compute

paidemail?card?Drequest-rate

developers.cloudflare.com/cloudflare-for-platforms/workers-f · platform host · compute/cloudflare-workers-for-platforms · JSON · compare

Free tiernot stated
unit none; metered on wall-clock
Pricenone stated
Per-object capnot stated
Retentionnot stated
Egressnot stated
Identityemail (placeholder) not published
Limits
  • request-rate $25 a month for 20 million requests and 60 million CPU-milliseconds, then $0.30 a million requests and $0.02 a million CPU-ms source
  • per-object-cap 1,000 scripts included, then $0.02 each source
not stated
Bindingrequest-rate
Interfaceunknown
Toolingnot stated
Composes withnot stated
Reliabilityno reliability event recorded
Evidence rungdocumented the pricing page was read on 2026-10-22 and states a $25 monthly plan with included request, CPU-millisecond and script allowances. There is no free plan, which confirms paid-only and gives the numbers
Checked2026-10-23 (live); stale on 2026-11-22
Evidence (2)
datesourcewhat it proved
2026-10-02developers.cloudflare.com/cloudflare-for-platforms/workers-fnot published
2026-10-22developers.cloudflare.com/cloudflare-for-platforms/workers-f'The Workers for Platforms Paid plan is $25 monthly' with '20,000,000 included requests', '60,000,000 included CPU ms' and '1,000 included scripts', quoted
More fields (14)
{
 "talaria_m10h_usd": 48.2,
 "talaria_m24h_usd": 108.68,
 "nemo_m10h_usd": null,
 "keep_rate": 1.0,
 "keep_rate_basis": null,
 "billing_model": "unclassified",
 "shape": null,
 "session_cap": {
  "wall_clock_min": null,
  "idle_reap_s": null,
  "restart_required": false,
  "note": "an isolate runs per request; there is no machine to keep alive"
 },
 "persistent_storage": null,
 "network_out": null,
 "price_note": null,
 "free_tier_kind": "none",
 "granularity": {
  "min_billed_s": 0,
  "rounding_s": null
 },
 "net": null
}
Unknown or withheld values (19)
  • $.chaining not-stated
  • $.egress.metered egress-unknown
  • $.egress.terms not-stated
  • $.evidence[0].proved process
  • $.extras.keep_rate_basis process
  • $.extras.price_note process
  • $.free_tier.notes withheld
  • $.free_tier.stated not-stated
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note not-stated
  • $.per_object_cap.notes process
  • $.per_object_cap.stated not-stated
  • $.reliability_note none-observed
  • $.retention.notes not-extracted
  • $.retention.stated not-stated
  • $.tooling not-stated

Cloudflare Registrar Domains and DNS

paidcardcardRwrite-gated

www.cloudflare.com/products/registrar/ · domain registrar · domains-dns/cloudflare-registrar · JSON · compare

Free tiernot free. Registration at cost with no markup, and the same price for registration, renewal and transfer
unit none; metered on none
PriceUSD 10.46 per .com per year, registration and renewal alike
Per-object capnot applicable: the unit is a domain name
Retentiona registration runs for its term and renews at the same price
Egressnot applicable to a registrar
Identitycard a payment method; no markup is charged but the registry fee is
Limits
  • write-gated the domain must be moved onto Cloudflare nameservers before it can be registered or renewed here source
Bindingwrite-gated
Interfacerest, cli the Cloudflare dashboard and API; the domain must use Cloudflare nameservers
Toolingthe Cloudflare API, Terraform, the dashboard
Composes withthe anchor of the cheapest complete public endpoint: registrar plus free DNS plus free Universal SSL plus a free tunnel
Reliabilityno reliability event recorded
NotesThe .com row is the finding: USD 10.46 registration and USD 10.46 renewal. Every promo registrar is cheaper in year one and more expensive in year two, and the second year is the one you pay every year after.
Evidence rungreported Cloudflare's own page proves the at-cost model and the equal registration and renewal price. The per-TLD figures come from a third-party mirror of the at-cost table, not from Cloudflare, because Cloudflare publishes prices only in the dashboard.
Checked2026-10-23 (live); stale on 2026-11-06
Parsed numbers
  • $.price_per_tb_month price-per-tb USD10.46 TB / month
Evidence (2)
datesourcewhat it proved
2026-10-22www.cloudflare.com/products/registrar/'Registration, transfer, and renewal prices are always at or below what registries and ICANN charge us'; 'does not mark up domain prices at all'
2026-10-22cfdomainpricing.com/a table headed 'Updated 2026-10-21' giving registration and renewal per TLD: .com USD 10.46 and USD 10.46, .org 8.50 and 11.20, .net 11.86 and 11.86, .xyz 12.30 and 11.20, .dev 8.20 and 12.20, .online 4.99 and 27.70, .io 32.00 and 50.00, .cc 8.00 and 8.00
Unknown or withheld values (1)
  • $.reliability_note none-observed

Cloudflare Spectrum Egress and tunnels

paidinstitutionno cardDwrite-gated

developers.cloudflare.com/spectrum/ · L4 anycast proxy (TCP/UDP) · egress/cloudflare-spectrum · JSON · compare

Free tierCustom TCP/UDP applications require an Enterprise plan with Spectrum as a paid add-on.
unit none; metered on none
Priceunpublished (Enterprise contract)
Per-object capnot applicable
Retentionnot applicable
EgressNo byte allowance is published. The plan table gives 'TCP' and 'UDP' as 'Paid add-on' on Enterprise and 'No' on Free, Pro and Business; Enterprise Spectrum is metered per GB at an unpublished rate.; ingress: tcp+udp
free_allowance: none published
Identityinstitution An Enterprise contract with Cloudflare sales, plus a domain on Cloudflare. The Pro and Business plans carry Spectrum only for 'Minecraft (one app allowed)' and 'SSH (one app allowed)'.
Limits
  • write-gated custom TCP/UDP needs an Enterprise plan with Spectrum as a paid add-on source
Bindingwrite-gated No byte count fails at 1 TiB/month; the Enterprise contract is the gate. The only sub-Enterprise route is a Pro or Business plan, where Spectrum is limited to a single Minecraft app (UDP for Bedrock) and a single SSH app.
Interfacerest, cli configured through the Cloudflare dashboard or the API; Spectrum applications are created per protocol and port
ToolingCloudflare dashboard or API; no client-side daemon
Composes withcomposes with any free VM as the origin: the VM keeps its own address private and the anycast address is the published one, which is what a WireGuard or game endpoint needs.
Reliabilitynone recorded
NotesThe benchmark. Cloudflare Magic Transit is the adjacent product and is not a substitute: it takes a /24 and BGP or GRE from the customer, where Spectrum takes an origin IP and a port. Two things stay open: the Enterprise per-GB rate, and whether the Pro-tier Minecraft slot is usable for a Bedrock (UDP) server rather than only Java (TCP) - the table names the game, not the protocol.
Evidence rungdocumented The support matrix and the Enterprise requirement are on the pages read today. The per-GB rate and the Pro add-on price are not published, so the cost side stays unverified.
Checked2026-10-23 (live); stale on 2026-11-22
Evidence (2)
datesourcewhat it proved
2026-10-23developers.cloudflare.com/spectrum/Spectrum provides security and acceleration for any TCP or UDP based application, and custom TCP/UDP applications require an Enterprise plan with Spectrum as a paid add-on
2026-10-23developers.cloudflare.com/spectrum/protocols-per-plan/Availability: No on Free, Paid add-on on Enterprise; TCP and UDP are No on Pro and Business; Minecraft (one app allowed) and SSH (one app allowed) are Yes on Pro and Business
More fields (7)
{
 "wg_path": "inside-udp",
 "wg_detail": "Spectrum forwards arbitrary UDP to an origin port, so a WireGuard listener on the origin is reachable through the anycast address; no .conf is issued.",
 "ingress": "tcp+udp",
 "volume_tib_month": null,
 "volume_stated": "No byte allowance is published. The plan table gives 'TCP' and 'UDP' as 'Paid add-on' on Enterprise and 'No' on Free, Pro and Business; Enterprise Spectrum is metered per GB at an unpublished rate.",
 "bytes_transit": "yes",
 "transit_note": "Cloudflare carries the bytes between its edge and the origin"
}
Unknown or withheld values (2)
  • $.per_object_cap.stated not-applicable
  • $.retention.stated not-applicable

Cloudflare Email Sending Email

paidcardcardDwrite-gated

developers.cloudflare.com/email-service/ · transactional sender · email/cloudflare-email-sending · JSON · compare

Free tiernot available on Workers Free; 3,000 emails/month included on Workers Paid at USD 5/month, then USD 0.35 per 1,000
unit requests; metered on request-count
Pricenone stated
Per-object cap5 MiB total message with attachments, 25 MiB to verified destinations only
Retentionnot applicable
Egressnot applicable: an outbound sender
Identitycard the Workers Paid plan at USD 5/month
Limits
  • write-gated sending to arbitrary recipients requires the Workers Paid plan source
  • request-rate 3,000 emails per month on Workers Paid, then USD 0.35 per 1,000 source
counts of things, not rates, so no vocabulary kind names them: 50 recipients per email combined across to, cc and bcc
Bindingwrite-gated
Interfacerest the Workers send_email binding and the Email Sending API
Toolingwrangler, the Cloudflare API
Composes withunlimited free sends to the account's own verified destinations on any plan, which is a notification channel and not a sender. Arbitrary recipients need the paid Workers plan.
Reliabilitysends to verified destination addresses are free and do not count against the quota, on any plan
NotesThe free escape hatch is real and narrow: unlimited free sends, but only to the account's own 200 verified destination addresses.
Evidence rungdocumented
Checked2026-10-23 (live); stale on 2026-11-22
Evidence (1)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/email-service/platform/pricing/'Outbound emails (Email Sending) | Not available | 3,000 included per month, then $0.35 per 1,000 emails', and that sends to verified destinations are free on every plan
More fields (1)
{
 "stale_after_days": 90
}

cloudflare stream — video as storage Storage

paidemail?card?Rdisagrees

developers.cloudflare.com/stream/pricing/ · rejected-provider · storage/cloudflare-stream-video-as-storage · JSON · compare

Sibling records disagree:

Free tierNo free storage at all. Storage is prepaid: 'purchased in increments of $5 per month for each 1,000 minutes of video storage capacity.' Billing is on minutes of DURATION, not bytes — 'Storag
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
ReliabilityNo free storage at all. Storage is prepaid: 'purchased in increments of $5 per month for each 1,000 minutes of video storage capacity.' Billing is on minutes of DURATION, not bytes — 'Storag
NotesNo free storage at all. Storage is prepaid: 'purchased in increments of $5 per month for each 1,000 minutes of video storage capacity.' Billing is on minutes of DURATION, not bytes — 'Storag
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (1)
datesourcewhat it proved
2026-10-21developers.cloudflare.com/stream/pricing/No free storage at all. Storage is prepaid: 'purchased in increments of $5 per month for each 1,000 minutes of video storage capacity.' Billing is on minutes of DURATION, not bytes — 'Storag
More fields (1)
{
 "dead_end": {
  "failure_class": "paid",
  "why": "No free storage at all. Storage is prepaid: 'purchased in increments of $5 per month for each 1,000 minutes of video storage capacity.' Billing is on minutes of DURATION, not bytes — 'Storag",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded

Cloudflare for Startups Egress and tunnels

fails: identityinstitutionno cardDwrite-gated

www.cloudflare.com/forstartups/ · startup credit programme · egress/cloudflare-for-startups · JSON · compare

Free tierCloudflare for Startups gives early-stage companies up to $350k in credits to build the next big idea ... Get started with $10k in credits to build and launch your product, no minimum funding required.
unit mixed; metered on downloaded-bytes
PriceUSD 10,000 to 350,000 of credit
Per-object capnot applicable
Retentionnot applicable
Egressthe $10k tier carries no byte allowance of its own because Cloudflare's developer platform has no metered egress to spend it on; ingress: http-only
free_allowance: none published
Identityinstitution early-stage companies, with the tiers set by funding stage: 'Under $1M raised' for the $10k tier and 'Under $5M raised' for the $100k tier
Limits
  • write-gated a company application, with the tier set by amount raised source
Bindingwrite-gated two things fail before volume: the applicant must be a company, and the credit spends only on Cloudflare products, which already carry no egress meter. There is nothing for 1 TiB a month to run out of.
Interfacecli, rest wrangler and the Cloudflare API
Toolingwrangler and the Cloudflare API; no VM is involved
Composes withcomposes with a free VM elsewhere rather than replacing it: the credit buys Workers and R2, not an ingress port
Reliabilitycredits are tied to programme membership and expire with it
NotesRecorded to close the route rather than open it: Cloudflare's egress is already free on R2 and on Workers, which is why a credit there is worth less than it looks for this question. The $10k tier is reachable without funding in principle but needs a company. Candidates considered: Cloudflare Tunnel and WARP, which are in the dossier already and carry the traffic without any credit at all.
Evidence rungdocumented the tier structure is first-party and read today; whether a sole founder with no entity can apply is not stated
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.price_per_tb_month price-per-tb USD10000.0 TB / month
Evidence (1)
datesourcewhat it proved
2026-10-23www.cloudflare.com/forstartups/'up to $350k in credits', 'Get started with $10k in credits ... no minimum funding required', 'Under $1M raised', 'Credits: $10k', 'Under $5M raised', 'Credits: $100k'
More fields (7)
{
 "wg_path": "none",
 "wg_detail": "Cloudflare sells no VM; the credits spend on Workers, R2 and the rest of the developer platform, none of which hands the client a UDP port on a public IPv4",
 "ingress": "http-only",
 "volume_tib_month": null,
 "volume_stated": "the $10k tier carries no byte allowance of its own because Cloudflare's developer platform has no metered egress to spend it on",
 "bytes_transit": "overlay-only",
 "transit_note": "Cloudflare carries the bytes on its own network, which is the part that is already free"
}
Unknown or withheld values (2)
  • $.per_object_cap.stated not-applicable
  • $.retention.stated not-applicable

cloudflare stream Storage

fails: egressemail?card?Rdisagrees

developers.cloudflare.com/stream/pricing/ · rejected-provider · storage/cloudflare-stream · JSON · compare

Sibling records disagree:

Free tierPaid, and metered in MINUTES not bytes: $5/month per 1,000 minutes of storage (≈16.7 h) and $1 per 1,000 minutes delivered. The inversion is interesting — because it is duration-priced, a 25
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
ReliabilityPaid, and metered in MINUTES not bytes: $5/month per 1,000 minutes of storage (≈16.7 h) and $1 per 1,000 minutes delivered. The inversion is interesting — because it is duration-priced, a 25
NotesPaid, and metered in MINUTES not bytes: $5/month per 1,000 minutes of storage (≈16.7 h) and $1 per 1,000 minutes delivered. The inversion is interesting — because it is duration-priced, a 25
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (1)
datesourcewhat it proved
2026-10-21developers.cloudflare.com/stream/pricing/Paid, and metered in MINUTES not bytes: $5/month per 1,000 minutes of storage (≈16.7 h) and $1 per 1,000 minutes delivered. The inversion is interesting — because it is duration-priced, a 25
More fields (1)
{
 "dead_end": {
  "failure_class": "egress",
  "why": "Paid, and metered in MINUTES not bytes: $5/month per 1,000 minutes of storage (≈16.7 h) and $1 per 1,000 minutes delivered. The inversion is interesting — because it is duration-priced, a 25",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded

Cloudflare Realtime TURN Egress and tunnels

fails: quotaemailno cardDvolume-quota

developers.cloudflare.com/realtime/turn/ · relay (metered, WebRTC) · egress/cloudflare-turn · JSON · compare

Free tier1,000 GB/month of Realtime egress shared with the SFU, then USD 0.05/GB
unit GB; metered on downloaded-bytes
Pricenone stated
Per-object capnot applicable: a monthly allowance
Retentionnot applicable: a monthly allowance
Egressmetered at 1,000 GB/month, which is 33.3 GB/day or 3.1% of one day's workload
free_allowance: 1,000 GB/month shared between TURN and the SFU
price_per_tb: USD 0.05/GB
Identityemail a Cloudflare account and a TURN key
Bindingvolume-quota the monthly byte allowance in egress.free_allowance is what runs out, and no kind in the six-value vocabulary names a byte volume over a period counted per account. per-ip-shaping is the closest, because it is the only kind that bounds a volume, and its subject here is the account rather than the caller's address
Interfacerest TURN over UDP, TCP or TLS with a short-lived credential
Toolingany WebRTC stack's TURN client
Composes witha NAT-traversal fallback for a WebRTC-shaped workload and nothing else. It cannot be wrapped into more because a byte quota relayed does not compound.
ReliabilityTURN and the SFU draw on one allowance, so an SFU workload spends the TURN budget
NotesReaching 1 TiB/day would need about 30 accounts at the free allowance, which is not a plan. Quoted in decimal GB because the page states decimal GB.
Evidence rungdocumented
Checked2026-10-23 (live); stale on 2026-11-22
Evidence (1)
datesourcewhat it proved
2026-10-22developers.cloudflare.com/realtime/sfu/platform/pricing/'The first 1,000 GB each month is free. SFU and TURN share this allowance', page last updated 2026-09-22
More fields (3)
{
 "stale_after_days": 180,
 "bytes_transit": "yes",
 "transit_note": "TURN relays the media stream when a direct path fails, which is what its byte quota counts"
}

cloudflare hyperdrive Storage

fails: quotaemail?card?R

developers.cloudflare.com/hyperdrive/platform/pricing/ · rejected-provider · storage/cloudflare-hyperdrive · JSON · compare

Free tierNot a store — it is a connection pooler/cache in front of YOUR origin database. It carries no storage of its own, so it adds nothing to the byte budget. Its 100,000 queries/day free quota is
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
ReliabilityNot a store — it is a connection pooler/cache in front of YOUR origin database. It carries no storage of its own, so it adds nothing to the byte budget. Its 100,000 queries/day free quota is
NotesNot a store — it is a connection pooler/cache in front of YOUR origin database. It carries no storage of its own, so it adds nothing to the byte budget. Its 100,000 queries/day free quota is
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (2)
datesourcewhat it proved
2026-10-21developers.cloudflare.com/hyperdrive/platform/pricing/Not a store — it is a connection pooler/cache in front of YOUR origin database. It carries no storage of its own, so it adds nothing to the byte budget. Its 100,000 queries/day free quota is
2026-10-21developers.cloudflare.com/hyperdrive/platform/limits/cited as the basis of the rejection: Not a store — it is a connection pooler/cache in front of YOUR origin database. It carries no storage of its own, so it adds nothing to the byte budget. Its 100,000 queries/day free quota is
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "Not a store — it is a connection pooler/cache in front of YOUR origin database. It carries no storage of its own, so it adds nothing to the byte budget. Its 100,000 queries/day free quota is",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded

cloudflare images — storage Storage

fails: quotaemail?card?R

developers.cloudflare.com/images/pricing/ · rejected-provider · storage/cloudflare-images-storage · JSON · compare

Free tierThe Free plan explicitly has NO storage: 'The Paid plan allows transformations, as well as access to storage in Images.' Free is transformations-only, 'up to 5,000 unique transformations eac
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
ReliabilityThe Free plan explicitly has NO storage: 'The Paid plan allows transformations, as well as access to storage in Images.' Free is transformations-only, 'up to 5,000 unique transformations eac
NotesThe Free plan explicitly has NO storage: 'The Paid plan allows transformations, as well as access to storage in Images.' Free is transformations-only, 'up to 5,000 unique transformations eac
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (1)
datesourcewhat it proved
2026-10-21developers.cloudflare.com/images/pricing/The Free plan explicitly has NO storage: 'The Paid plan allows transformations, as well as access to storage in Images.' Free is transformations-only, 'up to 5,000 unique transformations eac
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "The Free plan explicitly has NO storage: 'The Paid plan allows transformations, as well as access to storage in Images.' Free is transformations-only, 'up to 5,000 unique transformations eac",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded

cloudflare pages as a mutable object store Storage

fails: quotaemail?card?R

developers.cloudflare.com/pages/configuration/preview-deploy · rejected-provider · storage/cloudflare-pages-as-a-mutable-object-store · JSON · compare

Free tierRecorded as a boundary, not a provider: Pages (and Workers static assets) cannot be used as mutable storage. Uploads are whole-deployment snapshots via git or wrangler; there is no put/delet
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
ReliabilityRecorded as a boundary, not a provider: Pages (and Workers static assets) cannot be used as mutable storage. Uploads are whole-deployment snapshots via git or wrangler; there is no put/delet
NotesRecorded as a boundary, not a provider: Pages (and Workers static assets) cannot be used as mutable storage. Uploads are whole-deployment snapshots via git or wrangler; there is no put/delet
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (2)
datesourcewhat it proved
2026-10-21developers.cloudflare.com/pages/configuration/preview-deployRecorded as a boundary, not a provider: Pages (and Workers static assets) cannot be used as mutable storage. Uploads are whole-deployment snapshots via git or wrangler; there is no put/delet
2026-10-21surge.sh/docs/api/deployscited as the basis of the rejection: Recorded as a boundary, not a provider: Pages (and Workers static assets) cannot be used as mutable storage. Uploads are whole-deployment snapshots via git or wrangler; there is no put/delet
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "Recorded as a boundary, not a provider: Pages (and Workers static assets) cannot be used as mutable storage. Uploads are whole-deployment snapshots via git or wrangler; there is no put/delet",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded

cloudflare queues Storage

fails: quotaemail?card?R

developers.cloudflare.com/queues/platform/limits/ · rejected-provider · storage/cloudflare-queues · JSON · compare

Free tierTempting because per-queue backlog is 25 GB, but on Workers Free message retention is 'non-configurable at 24 hours' — everything written is deleted within a day. Charged at 1 operation per
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
ReliabilityTempting because per-queue backlog is 25 GB, but on Workers Free message retention is 'non-configurable at 24 hours' — everything written is deleted within a day. Charged at 1 operation per
NotesTempting because per-queue backlog is 25 GB, but on Workers Free message retention is 'non-configurable at 24 hours' — everything written is deleted within a day. Charged at 1 operation per
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (1)
datesourcewhat it proved
2026-10-21developers.cloudflare.com/queues/platform/limits/Tempting because per-queue backlog is 25 GB, but on Workers Free message retention is 'non-configurable at 24 hours' — everything written is deleted within a day. Charged at 1 operation per
More fields (1)
{
 "dead_end": {
  "failure_class": "retention",
  "why": "Tempting because per-queue backlog is 25 GB, but on Workers Free message retention is 'non-configurable at 24 hours' — everything written is deleted within a day. Charged at 1 operation per",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded