Home / Egress and tunnels
localtunnel
localtunnel.github.io/www/Tunnel (hosted, shared instance)egress/localtunnelJSONcomparereport an errorprovider JSON
- Free allowance
- A unique public URL proxied to a local server, with no published limits
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- anonymousno card, no phone
- Binding limit
- noneno named constraint binds
- Evidence
- documented4 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-12-04checked 2026-11-03 (live); stale on 2026-12-04
| Free tier | a unique public URL proxied to a local server, with no published limits unit unlimited; metered on request-count |
|---|
| Price | none stated |
|---|
| Limits | - per-ip-shaping no published limit: the original author wrote 'There are no limitations - abuse happens, server goes down, comes back up sometime later' source
|
|---|
| Binding | none No byte figure exists anywhere: the author says there are no limitations and the current maintainer explains outages as CPU saturation, so the failure mode is the single volunteer instance rather than a meter. A user measured about 0.8 Mbit/s download through it in 2019, which would cap a month near 260 GB, but that is that instance on that day. |
|---|
| Identity | anonymous no account to use the shared server |
|---|
| Egress | no quota published anywhere: the project page states a URL and no limit |
|---|
| Per-object cap | not applicable: a stream |
|---|
| Retention | the assigned subdomain is random per run |
|---|
| Interface | cli npx localtunnel --port PORT against the shared localtunnel.me server |
|---|
| Tooling | the npm package, or the standalone binary |
|---|
| Composes with | composes with an origin and nothing that needs a published ceiling; the shared server is someone else's capacity and is the first thing to break. |
|---|
| Reliability | the shared server is a single volunteer-run instance with no published capacity |
|---|
| Notes | Not measured: the shared server is one instance and a throughput number from it would describe that instance on that day. The record carried an empty limits array. Replaces 'nothing binds' with the reason no byte constraint exists and the one throughput datum that stands in for it. |
|---|
| Parsed numbers | |
|---|
Evidence 4
| date | source | what it proved |
|---|
| 2026-10-22 | localtunnel.github.io/www/ | the project page states that it assigns a unique public URL and says nothing about a limit, which is a documented absence |
| 2026-10-22 | probe: https://localtunnel.me/ | the bare host answers 302 and the project docs live at localtunnel.github.io/www/, so there is no vendor pricing page to read |
| 2026-11-03 | github.com/localtunnel/localtunnel/issues/288 | a project contributor states there is no published limit on the shared server |
| 2026-11-03 | localtunnel.github.io/www/ | the project page states a public URL proxied to a local server and lists no byte or rate limit |
More fields 3
| stale after days | 180 |
|---|
| bytes transit | yes |
|---|
| transit note | the shared server proxies the origin's bytes |
|---|