ngrok Free Tier in 2026: Real Limits, Workarounds, Alternatives

ngrok Free Tier in 2026: Real Limits, Workarounds, Alternatives

Developer Utilities🛠 ngrok

The ngrok free tier is usable for side projects, but its quotas and interstitial page require real workarounds; this guide compares the free alternatives.

free-tierngrokcloudflare-tunneltailscale-funnellocaltunnel

ngrok’s free plan is shaped like a production product. You get HTTPS tunnels, one stable assigned development domain, a web inspection agent that replays requests, and — because free endpoints now have no session timeout — tunnels that simply stay online. Then you read the quota sheet and find 1 GB of monthly data transfer, 20,000 HTTP requests, and a browser interstitial standing in front of every human visitor. That gap between how the product feels and what the numbers permit is the whole story of running on ngrok free in 2026. This guide maps the real quotas, the workarounds the documentation actually supports, and how ngrok free compares with Cloudflare Tunnel, Tailscale Funnel, and localtunnel once a side project starts to grow.

How This Guide Was Built

This guide was assembled from primary vendor documentation, not from a lab bench. Every limit below comes from ngrok’s, Cloudflare’s, and Tailscale’s official docs and pricing pages as published on 2026-09-23, plus localtunnel’s public package metadata. No secondhand summaries or vendor marketing copy were used as sources here.

This guide is based on official documentation, pricing pages, and public package metadata — we did not run any of these tunnels hands-on. No ngrok account was created, no tunnel was started, and no traffic was measured. Every number you see is a published quota or a documented configuration pattern, not a measured result.

What ngrok Free Actually Gives You in 2026

ngrok’s free plan includes monthly quotas of 1 GB data transfer out, 20,000 HTTP requests, 5,000 TCP connections, 10,000 logs and events, 500 webhook verifications, and 3 OAuth/OIDC monthly active users, plus sustained rate limits of 4,000 HTTP requests per minute and 100 TCP connections per minute [1]. ngrok’s free plan limits

Those monthly quotas reset each billing cycle, and they are separate from the rate limits, which cap throughput at any given moment rather than over a month. ngrok’s free plan limits Account-level concurrency caps apply regardless of usage: up to 3 online endpoints, 3 concurrent agents, 1 user, 1 development domain, and 5 traffic policy rules per policy. TLS endpoints are not available on the free plan at all. ngrok’s free plan limits

In practice, free gives you exactly one automatically assigned development domain — something like your-assigned-name.ngrok-free.app — tied to your account, and you can point up to 3 online endpoints at that single domain. ngrok’s free plan limits Getting started is two commands:

ngrok config add-authtoken <token>
ngrok http 8080

On the plus side, free endpoints have no timeout, so a tunnel can stay online indefinitely if you run ngrok as a background service. ngrok’s free plan limits What free does not include matters just as much: no TLS endpoints, no custom domain names, no reserved static domains, no randomly generated URLs, no wildcard domains, no more than 3 online endpoints, and no more than 1 user. Paid plans are what make those available. ngrok’s free plan limits

The Interstitial Page: Why You See It and How to Bypass It

The interstitial page appears only in front of HTML browser traffic on free endpoints, where it exists to deter phishing; a visitor who clicks “Visit to continue” gets a cookie that suppresses it for that domain for 7 days. API traffic and programmatic access are not affected by it. ngrok’s free plan limits

If you control the client, the documented bypass is a header. The value is irrelevant — any value works:

curl -H "ngrok-skip-browser-warning: 1" \
  -H "Authorization: Bearer <API_TOKEN>" \
  https://your-assigned-name.ngrok-free.app/webhook

The second documented option is to send a non-standard User-Agent, for example MyApp/0.0.1, from whatever client is calling the tunnel. ngrok’s free plan limits The third is to move to any paid plan, which removes the interstitial entirely. ngrok’s free plan limits

One caveat worth stating plainly: these bypasses exist so automated clients can reach your legitimate endpoints. They are not a way to disguise phishing or deceptive pages — that is precisely what the interstitial is designed to prevent, so do not use them for that.

Which Limits You’ll Hit First, and What “$5 of Included Usage” Really Means

For most side projects the practical ceilings are the 1 GB of monthly data transfer and the 20,000 HTTP requests, because both scale with real user traffic. The 500 webhook verifications and 3 OAuth/OIDC monthly active users bite specific workloads instead: webhook-heavy integrations and any app with more than three signed-in users. ngrok’s free plan limits

The data transfer quota is the one you cannot buy your way past on free. The free plan is advertised as “$5 of one-time included usage,” with no usage beyond that credit, and that credit lasts for a year after being granted, can only be spent while you are on the Free plan, and cannot be used on data transfer out. ngrok pricing So when 1 GB of egress is gone, the credit does not rescue you.

The 20,000-request ceiling is the other wall indie projects hit. A page that fires three API calls per visit burns 20,000 requests in roughly 6,600 visits, which is a healthy month for a Show HN side project and a slow morning for anything real. ngrok’s free plan limits

Hobbyist is $10/month on annual billing (saving $24) and raises the included usage to $10 of monthly credit, 5 GB of data transfer, and 100,000 HTTP/S requests, and it removes the interstitial page. ngrok pricing The catch on Hobbyist is what happens at the ceiling: when the usage credit runs out, endpoints stop working until the end of the billing cycle, when the credit resets. ngrok pricing Pay-as-you-go at $20/month is the tier with unlimited endpoints, unlimited HTTP/S requests and data transfer (5 GB and 100k included), bring-your-own-domain, and unlimited team members with 3 included. ngrok pricing

ngrok Free vs Cloudflare Tunnel vs Tailscale Funnel vs localtunnel

The four tools differ in what they ask up front and what they cap afterwards: ngrok free gives a stable assigned domain with tight monthly quotas, Cloudflare Quick Tunnels need no account but carry no SLA and a 200-request concurrency cap, Tailscale Funnel is bounded by ports and bandwidth, and localtunnel assigns a random URL. localtunnel on GitHub

Dimension ngrok Free Cloudflare Tunnel / TryCloudflare Tailscale Funnel localtunnel
Account & URL Free account, 1 assigned dev domain like your-assigned-name.ngrok-free.app Quick Tunnels: no account, random trycloudflare.com subdomain. Named tunnels: domain on Cloudflare DNS Free Personal plan, public name on tailnet-name.ts.net plus a unique Funnel URL No account, random localtunnel.me subdomain, optional requested --subdomain
Monthly / usage caps 1 GB egress, 20k HTTP requests, 5k TCP connections, 10k logs, 500 webhook verifications, 3 OAuth/OIDC MAU None published for Quick Tunnels, but no SLA or uptime guarantee 6 users, unlimited user devices, 3 ACL groups, 50 tagged resources, 1,000 mins/month ephemeral resources None published; URL lives as long as the process
Rate & concurrency limits 4,000 HTTP req/min, 100 TCP conn/min, 3 online endpoints, 3 concurrent agents 200 concurrent in-flight requests, HTTP 429 beyond that Funnel is beta; traffic is subject to non-configurable bandwidth limits None documented
Domains, TLS & certs 1 dev domain; no custom, reserved, or wildcard domains; TLS endpoints unavailable Public hostnames on your own domain via named tunnels; path routing matches but does not strip the path Only your tailnet DNS name; only ports 443, 8443, 10000; TLS only, valid certs required Random or requested subdomain over HTTPS
Browser interstitial Yes, on HTML browser traffic only; 7-day cookie after a click None documented None documented None documented
Hard limits to know No timeout on free endpoints; the $5 one-time credit cannot pay for data transfer out No Server-Sent Events; deleted tunnels cannot be restored; video/large files over public hostname routes need a specific paid service on Free/Pro/Business Requires v1.38.3+, MagicDNS, HTTPS, a funnel node attribute, and a platform that runs the Tailscale CLI (macOS needs the open-source variant) Package is at 2.0.2 and has not been updated in years; requested subdomains may not be granted

Read that table as a set of trade-offs rather than a ranking. ngrok free hands you a stable URL and the best request-level tooling, and charges for it in egress and request quotas. Cloudflare’s quick tunnels ask for nothing but explicitly guarantee nothing — 200 concurrent in-flight requests and no SSE make them a demo tool, not a public beta. Cloudflare Quick Tunnels Tailscale Funnel is strongest when the audience is your own devices or a small team. localtunnel is the smallest commitment and the least maintained. Tailscale pricing

Workarounds That Actually Work on ngrok Free

These are documented configuration patterns, not performance tricks: run ngrok as a background service so the no-timeout endpoint survives, reuse the single assigned dev domain across all 3 endpoints, send the ngrok-skip-browser-warning header from your webhook consumer, and keep payloads small. None were measured here — they follow from the published limits. ngrok’s free plan limits

  • Survive reboots. Free endpoints have no timeout, so a background service keeps the tunnel online indefinitely instead of dying with your terminal session. ngrok’s free plan limits
  • Spend your one domain carefully. You get 1 development domain and 3 online endpoints, so run multiple services as separate endpoints pointed at the same hostname and route by path or port in your app. ngrok’s free plan limits
  • Skip the interstitial in code, not in the browser. A webhook consumer that sends ngrok-skip-browser-warning: 1 never sees the page, which matters because 500 webhook verifications are already tight. ngrok’s free plan limits
  • Protect the egress budget. 1 GB/month is the quota most likely to disappear first, so trim responses and avoid proxying large file downloads through the tunnel. ngrok’s free plan limits
  • Reconnect fast. If a machine is rebuilt, ngrok config add-authtoken <token> restores your identity and your assigned domain in one command. ngrok’s free plan limits
ngrok http 8080 --url https://baz.ngrok.dev
ngrok tcp 22

When to Pick Which Free Tunnel

Pick by the constraint you cannot break, not by which tool looks nicest: ngrok free wins when you need a stable public URL and request replay, Cloudflare wins when you need your own domain and can accept no SLA, Tailscale Funnel wins for private devices and small teams, and localtunnel wins only when you need a throwaway link right now. ngrok pricing

Concretely: a payment provider that must POST webhooks to you for a week is ngrok free’s best case — the dev domain stays stable, and the skip header keeps those POSTs clean, until you exhaust 500 webhook verifications. A public beta with real visitors is not ngrok free’s case, because 1 GB and 20,000 requests arrive quickly. If you need a custom domain and path routing, a remote-managed Cloudflare tunnel with your own domain is the fit, but remember that deleted tunnels cannot be restored and video or large files need a specific paid service on Free/Pro/Business plans. Cloudflare remote tunnels

For internal dashboards, SSH, or a team of up to 6 people on unlimited user devices, Tailscale Funnel is the better-shaped free tool — but only on ports 443, 8443, and 10000, and only with non-configurable bandwidth limits you cannot raise. Tailscale Funnel For a one-off demo link you will delete in an hour, cloudflared tunnel --url http://localhost:8080 or npx localtunnel --port 3000 costs you nothing and commits you to nothing. Cloudflare Quick Tunnels localtunnel on GitHub

FAQ

Is the ngrok free tier good enough for production?

It can carry a small production workload as long as you stay under 1 GB of monthly egress and 20,000 HTTP requests, and your users tolerate one interstitial click. Above those quotas you need a paid plan, and free never includes custom domains or TLS endpoints. ngrok pricing

Can I remove the interstitial page without paying?

Not permanently for browser traffic. The documented options are the 7-day click-through cookie, the ngrok-skip-browser-warning header, or a non-standard User-Agent from clients you control. Any paid plan removes it entirely. ngrok’s free plan limits

What happens when I hit the 1 GB data transfer limit?

The free plan’s $5 one-time credit cannot be spent on data transfer out, so that credit will not extend your egress. On Hobbyist, when the included usage credit runs out, endpoints stop working until the end of the billing cycle, when the credit resets. ngrok pricing

Sources

[1] ngrok Free Plan Limits — https://ngrok.com/docs/pricing-limits/free-plan-limits