Direct answer: for one account, 5–10 ms of CPU per request, excluding CDN bandwidth, storage and logs, 2026 edge-function costs are roughly: 10M requests / 100M CPU ms, Fastly Compute 0 (within free allowance), Bunny Edge Scripting 4.00, Cloudflare Workers 6.40; 100M requests / 700M CPU ms, Bunny 34.00, Cloudflare 45.40, Fastly 75.00; 500M requests / 2.5B CPU ms, Bunny 150, Cloudflare 201.40, Fastly 365; 1B requests / 5B CPU ms, Bunny 300, Cloudflare 401.40, Fastly 735. Bunny has the lowest usage rates; Cloudflare’s 5 USD floor + free egress fit small teams; Fastly includes 10M requests/100M vCPU ms free each month, and the 500 USD Starter is an optional package with 500M requests/5B vCPU ms, not the minimum entry.
This guide is for engineering, platform and procurement teams choosing an edge runtime or moving APIs/middleware from a central cloud to the edge. Data cut-off: 5 November 2026; prices are the three vendors’ public US list prices from official pricing pages/billing docs, in USD, excluding tax, with no FX conversion; the TCO is an editorial calculation, not a vendor quote. A CDN sells caching and bandwidth; an edge function sells code execution per request. The two bills must not be mixed.
Edge-function cost = requests + CPU time, not bandwidth or seats. Cloudflare Paid starts at 5/month with 10M requests and 30M CPU ms; Bunny is 0.20 per million requests + 0.02 per 1,000 seconds of CPU with a 1 monthly minimum; Fastly includes 10M requests/100M vCPU ms free each month, then 0.50 per million requests + 0.05 per million vCPU ms, with an optional 500/month Starter package. Low volume looks at free allowances; high volume looks at unit rates.
Three models: subscription + overage, pure usage, free allowance + usage/package
Cloudflare Workers is “5 USD subscription + request/CPU overage”: the Paid plan has a 5/month per-account minimum with 10M requests and 30M CPU ms included per month; extra requests are 0.30 per million and extra CPU is 0.02 per million ms; there is no data-egress charge, and static-asset requests are free and unlimited. Bunny Edge Scripting is pure usage: 0.20 per million requests, 0.02 per 1,000 seconds of CPU (0.02 per million ms), a 1 monthly minimum; the official smallest monthly charge is 0.22 (first CPU increment 0.02 + first request increment 0.20), with CDN bandwidth separate. Fastly Compute is “free allowance + usage”: 10M requests and 100M vCPU ms free each month; then requests 0.50 per million (10M–500M), 0.49 per million (500M–5B), and vCPU 0.05 per million ms (100M–5B); an optional Starter package is 500/month with 500M requests, 5B vCPU ms, 20 services, 5 config stores and 1TB KV; the 2B/5B request tiers are contact-sales.
| Platform | Billing unit | Floor | Included requests | Included CPU | Main boundary |
|---|---|---|---|---|---|
| Cloudflare Workers | Subscription + request/CPU overage | 5/month/account | 10M/month | 30M ms/month | Static assets free; no egress charge |
| Bunny Edge Scripting | Pure usage | 1/month minimum; 0.22 smallest | None | None | CDN bandwidth separate; 119 PoPs |
| Fastly Compute | Free allowance + usage; optional package | Free 10M requests/100M vCPU ms | 10M/month | 100M vCPU ms/month | Starter 500/month optional; higher tiers contact sales |
Sources: Cloudflare Workers Pricing, Bunny Edge Scripting Pricing and Fastly Pricing (all accessed 5 November 2026). This is editorial grouping, not a vendor taxonomy; “included requests/CPU” covers only public package/allowance terms and does not judge runtime limits, cold starts, concurrency or support response.
The official 2026 prices: requests, CPU, minimums
Cloudflare: Paid 5/month/account with 10M requests and 30M CPU ms; request overage 0.30 per million and CPU overage 0.02 per million ms; Free plan 100k requests/day and 10 ms CPU per invocation; static-asset requests are free and unlimited, and egress is not charged. Bunny: 0.20 per million requests, 0.02 per 1,000 seconds of CPU, 1 monthly minimum; official examples: 10M requests × 10 ms = 4.00 (2.00 requests + 2.00 CPU), 100M × 7 ms = 34.00 (20 + 14). Fastly: 10M requests and 100M vCPU ms free each month; 10M–500M requests 0.50 per million, 500M–5B 0.49 per million; 100M–5B vCPU 0.05 per million ms; optional Starter 500/month with 500M requests/5B vCPU ms; higher tiers contact sales.
| Item | Cloudflare Workers | Bunny Edge Scripting | Fastly Compute |
|---|---|---|---|
| Floor/minimum | Paid 5/month/account | 1/month minimum; 0.22 smallest | Free allowance; Starter 500/month optional |
| Included requests | 10M/month | None | 10M/month (Starter 500M) |
| Included CPU | 30M ms/month | None | 100M vCPU ms/month (Starter 5B) |
| Request overage | 0.30 per million | 0.20 per million | 0.50 per million (10M–500M); 0.49 (500M–5B) |
| CPU overage | 0.02 per million ms | 0.02 per 1,000 seconds | 0.05 per million vCPU ms (100M–5B) |
| Free/trial | Free 100k requests/day; static assets free | 14-day trial; no long-term free tier | 10M requests/100M vCPU ms free each month |
Sources: Cloudflare Workers Pricing (5/month, 10M requests, 30M CPU ms, 0.30/0.02, Free 100k/day, static assets free, no egress charge), Bunny Edge Scripting Pricing/Docs (0.20/million, 0.02/1,000 seconds, 1/month minimum, 0.22 smallest charge, 14-day trial, CDN bandwidth separate) and Fastly Pricing (10M requests/100M vCPU ms free, 0.50/0.49, 0.05, optional Starter 500/month). Accessed 5 November 2026; USD, excluding tax; Fastly’s higher tiers have no public price.
10M / 100M / 500M / 1B requests: monthly TCO
Using the vendors’ CPU intensities (10M × 10 ms, 100M × 7 ms, 500M × 5 ms, 1B × 5 ms): 10M/100M ms, Fastly 0, Bunny 4.00, Cloudflare 6.40; 100M/700M ms, Bunny 34.00, Cloudflare 45.40, Fastly 75; 500M/2.5B ms, Bunny 150, Cloudflare 201.40, Fastly 365; 1B/5B ms, Bunny 300, Cloudflare 401.40, Fastly 735. Fastly’s free allowance wins at low volume, with Bunny only 4 more; at 1B Bunny is still lowest, and Fastly is 2.45x Bunny.
| Monthly requests / CPU ms | Cloudflare Workers | Bunny Edge Scripting | Fastly usage | Fastly Starter package | Lowest |
|---|---|---|---|---|---|
| 10M / 100M | 6.40 | 4.00 | 0 | 500 | Fastly usage |
| 100M / 700M | 45.40 | 34.00 | 75.00 | 500 | Bunny |
| 500M / 2.5B | 201.40 | 150.00 | 365.00 | 500 | Bunny |
| 1B / 5B | 401.40 | 300.00 | 735.00 | Advantage/quote | Bunny |
Editorial calculation, not a quote. Formulas: Cloudflare = 5 + max(0, requests−10M)/1M×0.30 + max(0, CPU ms−30M)/1M×0.02; Bunny = max(0.22, requests/1M×0.20 + CPU ms/1M×0.02); Fastly usage = tiered requests + tiered vCPU (first 10M/100M free, then 0.50/0.49 and 0.05); Fastly Starter = 500 (includes 500M requests/5B vCPU ms). Assumes one account, 5–10 ms CPU per request, Fastly vCPU ms ≈ CPU ms at 1:1; excludes CDN bandwidth, storage, logs, support, tax and migration.
Annualized: free allowance only affects low volume, high volume multiplies by 12
Multiplying by 12: 10M requests/month, Fastly 0, Bunny 48, Cloudflare 76.80; 100M/month, Bunny 408, Cloudflare 544.80, Fastly 900; 500M/month, Bunny 1,800, Cloudflare 2,416.80, Fastly 4,380; 1B/month, Bunny 3,600, Cloudflare 4,816.80, Fastly 8,820. Fastly’s 500 USD Starter package costs 135 more than usage at 500M/2.5B; at 1B the Starter allowance is insufficient and needs a higher-tier contract.
| Annual scenario | Cloudflare Workers | Bunny Edge Scripting | Fastly usage | Fastly Starter package | Lowest |
|---|---|---|---|---|---|
| 10M requests/month | 76.80 | 48.00 | 0 | 6,000 | Fastly usage |
| 100M requests/month | 544.80 | 408.00 | 900.00 | 6,000 | Bunny |
| 500M requests/month | 2,416.80 | 1,800.00 | 4,380.00 | 6,000 | Bunny |
| 1B requests/month | 4,816.80 | 3,600.00 | 8,820.00 | Contract | Bunny |
Editorial calculation, monthly table ×12; excludes tax, discounts, CDN bandwidth, storage/KV, logs, support, migration and training. Fastly’s 500/month Starter only covers 500M requests/5B vCPU ms; overage requires a contract, so 500 is not an unlimited price.
Hidden costs: bandwidth, KV/storage, logs, egress
Edge-function bills usually exclude CDN bandwidth, KV/object storage, logs, builds and egress. Cloudflare’s Workers Paid has no egress charge and static assets are free, but KV reads are 0.50 per million, writes 5 per million, storage 0.50/GB/month, and D1/R2/Durable Objects are separate; Workers Logs Paid includes 20M events/month, then 0.60 per million. Bunny’s script fee excludes CDN bandwidth, which starts at 0.01/GB in Europe/North America; storage uses Bunny Storage separately. Fastly’s Starter includes 1TB KV and 20M Class A/1B Class B operations; TLS domains, image optimization and logging/observability are separate products. All three exclude tax, support, migration and CI/CD.
| Item | Cloudflare | Bunny | Fastly |
|---|---|---|---|
| CDN/bandwidth | No Workers egress charge; static assets free | Separate; Europe/North America from 0.01/GB | CDN/bandwidth outside Compute by product/contract |
| KV/storage | KV 0.50/million reads, 5/million writes, 0.50/GB/month; D1/R2 separate | Bunny Storage separate | Starter includes 1TB KV, 20M Class A/1B Class B |
| Logs/observability | Paid includes 20M events/month, then 0.60/million | Not listed | Logging/observability packages separate |
| Tax/support/migration | Excluded | Excluded | Excluded |
Sources: Cloudflare Workers Pricing (KV, logs, static assets, egress), Bunny Edge Scripting Pricing (CDN bandwidth separate, storage separate) and Fastly Pricing (Compute Starter includes 1TB KV/operation allowances). Accessed 5 November 2026; USD, excluding tax; “separate/not listed” means confirm on the product page or contract and is not guessed here.
Capabilities and boundaries: network, runtime, integrations
Cloudflare is strong on 335+ cities, Workers with KV/D1/R2/Durable Objects, free static assets and no egress charge; Bunny is strong on 119 PoPs, Deno/TypeScript/JavaScript/WASM, a 0.22 smallest charge and low unit rates; Fastly is strong on free allowance/usage, the 500 Starter package, 500M requests/5B vCPU ms, 20 services/1TB KV and delivery integration. For “low-volume free + free egress”: Fastly/Cloudflare; for “lowest usage rate + Deno”: Bunny; for “enterprise package/large allowance + delivery”: Fastly.
| Capability | Cloudflare Workers | Bunny Edge Scripting | Fastly Compute |
|---|---|---|---|
| Network | 335+ cities | 119 PoPs | Global edge network |
| Runtime | JS/Rust/C++/WASM | Deno/TypeScript/JS/WASM | Multiple languages; see docs |
| Floor | 5/month | 1 minimum; 0.22 smallest | Free 10M requests/100M vCPU ms; Starter 500/month |
| Integrations | KV/D1/R2/DO/logs | CDN/Storage/Deno ecosystem | 20 services/1TB KV/TLS/images/logs |
| Best fit | Low volume + free egress + integrated storage | Lowest usage rate + Deno | Free allowance/enterprise package/delivery |
Sources: Cloudflare Workers Pricing, Bunny Edge Scripting and Fastly Pricing (accessed 5 November 2026). This is an editorial comparison, not a full feature list; actual cold starts, P95, concurrency, runtime limits, log latency and support response were not tested.
Which option fits which scenario?
10M requests/month: Fastly 0 (free allowance), Bunny 4.00, Cloudflare 6.40; choose Fastly for zero-cost trials, Bunny for the lowest predictable usage rate, Cloudflare for free egress/KV/D1. 100M/month: Bunny 34, Cloudflare 45.40, Fastly 75. 500M/month: Bunny 150, Cloudflare 201.40, Fastly 365. 1B/month: Bunny 300, Cloudflare 401.40, Fastly 735. Fastly’s 500 Starter only makes sense for predictable capacity/enterprise features, not as the low-volume lowest price.
- Up to 10M requests/month: Fastly 0 within the free allowance; Bunny 4.00; Cloudflare 6.40. Pick Fastly for zero-cost trials and Bunny for the lowest usage rate.
- 100M requests/month: Bunny 34.00; Cloudflare 45.40; Fastly 75.00.
- 500M requests/month: Bunny 150; Cloudflare 201.40; Fastly 365 (Starter 500 is 135 more than usage).
- 1B requests/month: Bunny 300; Cloudflare 401.40; Fastly 735 (Starter allowance is insufficient; higher tier/contract).
- Deno/TypeScript: Bunny; Workers ecosystem/KV/D1/R2: Cloudflare; free allowance/enterprise package/delivery: Fastly.
- CPU-heavy: recalculate at 0.02 per million ms; 10 ms/request doubles CPU versus 5 ms and widens the gap at high volume.
- Bandwidth/storage: Bunny CDN separate, Cloudflare KV/D1/R2 separate, Fastly outside package; do not compare script fees alone.
What should procurement and acceptance specify?
At least eight things: monthly/peak requests, average and P95 CPU ms, cold start/concurrency, runtime limits, KV/storage/bandwidth, logs/observability, egress/regions and contract minimum/overage/exit. Use a 2–4 week POC with real traffic and record P50/P95/P99, cold starts, error rate, CPU time and the bill; do not compare all workloads by “per million requests”.
- Requests: monthly/peak; whether cache hits, static assets and WebSockets are billed as requests.
- CPU: average/P95 ms; CPU time is execution, excluding I/O wait; CPU-heavy tasks amplify cost.
- Cold start/concurrency: runtime limits, concurrency, timeout; test P95/P99 with real traffic.
- Storage/bandwidth: KV/object storage/CDN bandwidth/egress; usually outside the script fee.
- Logs: event volume, retention, export; Cloudflare/Fastly have separate packages.
- Contract: minimum, overage, tier upgrade, support, exit; Fastly Starter starts at 500.
- Regions: user distribution, PoPs, data residency/compliance; coverage quality was not tested.
- POC: 2–4 weeks of real traffic; record P50/P95/P99, cold starts, errors, CPU and the bill.
FAQ
10M requests/month: what is cheapest?
Fastly 0 (within 10M requests/100M vCPU ms free), Bunny 4.00 (2.00 requests + 2.00 CPU at 10 ms/request), Cloudflare 6.40. Pick Fastly for a zero-cost trial, Bunny for the lowest usage rate, Cloudflare for free egress/KV/D1/R2.
What about 100M requests/month?
Bunny 34.00 (20 requests + 14 CPU at 7 ms/request), Cloudflare 45.40, Fastly 75.00 (45 requests + 30 vCPU). Bunny is 11.40 lower than Cloudflare; Fastly’s free allowance is used up and its usage price is higher than the other two.
What about 500M requests/month?
Bunny 150 (100 requests + 50 CPU at 5 ms/request), Cloudflare 201.40, Fastly 365 (245 requests + 120 vCPU). Fastly’s 500/month Starter covers 500M requests/5B vCPU ms, but costs 135 more than usage; only predictable capacity/package features justify it.
What about 1B requests/month?
Bunny 300, Cloudflare 401.40, Fastly 735 (490 requests + 245 vCPU at 5 ms/request). Fastly’s Starter only includes 500M requests; 1B needs an Advantage/higher tier and a quote.
Is Fastly really 500 USD minimum?
No. Fastly’s public Compute usage includes 10M requests/100M vCPU ms free each month, then 0.50/0.49 and 0.05; the 500/month Starter is an optional package with 500M requests/5B vCPU ms. Low volume can use usage pricing; high volume can compare package/contract.
Is Cloudflare’s 5 USD enough?
Paid 5/month includes 10M requests and 30M CPU ms; 10M requests × 10 ms = 100M ms, so 70M ms overage costs 1.40, total 6.40. Static-asset requests are free and unlimited, and egress is not charged; KV/D1/R2/logs are separate.
How is CPU time calculated?
Actual execution time, excluding fetch/I/O wait; Cloudflare/Bunny bill in milliseconds, Fastly in vCPU ms. 10 ms/request × 10M = 100M ms; 5 ms/request halves it. Use real P95 rather than an average.
What other hidden costs exist?
CDN bandwidth (Bunny separate), KV/object storage (Cloudflare/Fastly), logs/observability (Cloudflare 0.60/million above 20M events; Fastly separate), builds/CI, tax, support, migration and self-hosted operations. All three exclude these.
Research method and limitations
This article separates “official facts” from “editorial modelling”: floor prices, included requests/CPU, overage, KV/log prices come from the three official pricing pages/billing docs; the 10M/100M/500M/1B TCO is arithmetic for one account, 5–10 ms CPU/request and the stated CPU intensity, not a vendor quote. It does not compare actual cold starts, P95/P99, concurrency, runtime limits, log latency or support response.
Eight limitations: (1) only US public list prices are used, excluding tax, discounts, support and migration; (2) it assumes one account and 5–10 ms CPU/request, while CPU-heavy/light workloads change the result; (3) it excludes CDN bandwidth, KV/object storage, logs, builds and egress; (4) Fastly’s public Compute has a free allowance/usage price and an optional 500/month Starter, while 1B needs a higher-tier contract and cannot be extrapolated from 500; (5) Cloudflare’s 10M requests/30M ms are Paid-plan allowances, while Free limits differ; (6) Bunny’s CDN bandwidth is separate and only script fees are modelled; (7) real cold starts, P95/P99, concurrency, runtime limits and regional coverage were not tested; (8) enterprise contracts, commitments/discounts and self-hosted alternatives were not compared. Treat this as a unit-alignment template and replace assumptions with a 2–4 week real-traffic POC.
Sources and basis
- Cloudflare, Workers Pricing: developers.cloudflare.com/workers/platform/pricing. Paid 5/month/account; 10M requests and 30M CPU ms included; requests 0.30/million, CPU 0.02/million ms; Free 100k requests/day; static assets free; no egress charge; KV 0.50/million reads, 5/million writes, 0.50/GB/month; Workers Logs 20M events/month, then 0.60/million. Accessed 5 November 2026.
- Bunny, Edge Scripting Pricing: bunny.net/edge-scripting and bunny.net/docs/scripting/pricing. 0.20/million requests, 0.02/1,000 seconds CPU, 1 monthly minimum, 0.22 smallest charge; official examples 10M × 10 ms = 4.00 and 100M × 7 ms = 34.00; CDN bandwidth separate. Accessed 5 November 2026.
- Fastly, Pricing: fastly.com/pricing. Compute 10M requests/100M vCPU ms free each month; requests 0.50/million (10M–500M), 0.49 (500M–5B); vCPU 0.05/million ms (100M–5B); optional Starter 500/month with 500M requests/5B vCPU ms, 20 services, 5 config stores, 1TB KV. Accessed 5 November 2026.
Data cut-off 5 November 2026; prices are public list prices excluding tax; all models are editorial calculations. This is not procurement advice.