The free tier does NOT have timeouts on tunnels. If you’d like to run your endpoint all the time, you can do so, on the free tier, as a background service.
See Pricing and Limits to learn how to increase or remove these limits.
Limits and licensing
Resource | Limit on Free |
---|---|
Data Transfer Out | 1 GB |
Endpoints | 1 |
Requests | 20,000 |
TCP Connections | 5,000 |
TLS Connections | Not Available |
You can check your usage in the Usage page in the dashboard.
Free plan resources
Resource | Limit on Free |
---|---|
Users | 1 |
Active Endpoints | 1 |
Traffic Policy Rules per Policy | 5 |
ngrok static domain | 1 |
Tunnels per agent | up to 3 |
Bandwidth | 1 GB Outgoing/month |
TCP Connection Rate | 120/min |
Agents | 1 |
Edges | 1 |
Logs/Events | Up to 10,000 per month |
OAuth/OIDC MAU | Up to 5 per month |
HTTP Requests | Up to 20,000/month |
TCP Connections | Up to 5,000/month |
TLS Connections | Up to 5,000/month |
Webhook verifications | Up to 500/month |
- HTTPS Tunnels
- HTTPS Edges
- Web Inspection Agent
- Replay Requests
- ngrok SDKs
- ngrok Kubernetes Operator
- Remote Agent Management
- Circuit Breaking
- Automatic Certificates and Encryption
- Email Support
Increasing your limits
If you run into a limit, you can upgrade to a plan with higher limits. If you always want your endpoints online and available, select the Pay-as-you-go plan. See the Pricing and Limits page for more information.Removing the interstitial page
To prevent bad actors from using ngrok to execute phishing attacks, ngrok injects an interstitial page in front of all HTML browser traffic on the free tier.- This page informs visitors that they’re accessing a site served by ngrok.
- Once the visitor selects the “Visit” button to continue to the site, a cookie is set which prevents the interstitial from appearing for that domain for 7 days.
This does not impact users serving APIs or accessing ngrok endpoints programmatically.
Using headers
From the client accessing the ngrok endpoint, add a header value ofngrok-skip-browser-warning
and set it to any value. These requests will bypass the interstitial.
Using a custom user agent
Change your user agent by setting theUser-Agent
header to something non-standard to bypass the warning, such as MyApp/0.0.1
.
You can also use a browser extension to customize your browser’s user agent value. Here is an example for Chrome.