Home / Cloudflare
Cloudflare Quick Tunnel
developers.cloudflare.com/tunnel/setup/Tunnel (hosted, ephemeral)egress/cloudflare-quick-tunnelJSONcomparereport an errorprovider JSON
- Free allowance
- One ephemeral trycloudflare.com hostname per cloudflared run; no account, no card
- Verdict
- ★ qualifiesusable as stated; the read path was probed
- Cost
- free tier
- Identity
- anonymousno card, no phone
- Binding limit
- retention-clampedhostname lifetime equals process lifetime; a restart invalidates every URL
- Evidence
- measured5 sources; a live request was made and its output kept
- Freshness
- stale on 2026-12-23checked 2026-10-23 (live); stale on 2026-12-23
| Free tier | one ephemeral trycloudflare.com hostname per cloudflared run; no account, no card unit unlimited; metered on request-count |
|---|
| Price | none stated |
|---|
| Limits | - retention-clamped (binding) 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
|
|---|
| Binding | retention-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. |
|---|
| Identity | anonymous no account, no card; measured by running cloudflared with no login |
|---|
| Egress | not metered; no byte quota published or observed |
|---|
| Per-object cap | no proxy body cap observed: a 400 MiB POST body traversed byte-identically |
|---|
| Retention | the hostname dies with the process; a new run gets a new random name |
|---|
| Interface | rest, cli cloudflared tunnel --url, then https://<random>.trycloudflare.com |
|---|
| Tooling | cloudflared 2026.10.3 |
|---|
| Composes with | the 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. |
|---|
| Reliability | at 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 |
|---|
| Notes | 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. |
|---|
| Parsed numbers | |
|---|
Evidence 5
| date | source | what it proved |
|---|
| 2026-10-22 | probe: https://ace-wheel-basement-participated.trycloudflare.com/blob100m.bin | 100 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-22 | probe: https://favors-davis-charges-epic.trycloudflare.com/ | 400 MiB POST: 200, got=419,430,400 bytes, sha256 d491a95d...1839 matched the source |
| 2026-10-22 | probe: https://numbers-bras-calculator-quebec.trycloudflare.com/small.txt | 400 concurrent GETs of a 3-byte object: 400 x 200 in 6.5 s |
| 2026-10-22 | probe: https://ace-wheel-basement-participated.trycloudflare.com/blob100m.bin | 8 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-22 | developers.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
- 2026-10-22 The 100 MB body cap is not a tunnel limit, and a 400 MiB body traversed a Quick Tunnel