Skip to main content

Limits in ngrok's free plan

Below are the limits enforced in the ngrok free plan. For more details on increasing or removing these limits, refer to the ngrok paid plans.

What are ngrok's limits?

This table shows ngrok's plan and overall platform limits. For pricing for on-demand resources or specific development plan features, check out our pricing.

FeatureFree UsersDevelopment Plans (Personal, Pro, Enterprise)Production Pay-as-You-Go Plans
Domains1 static domain1 per licenseNo limit, priced on-demand
Endpoints33 per licenseNo limit, priced on-demand
Edges120 per licensePriced on-demand, platform limit of 100. Contact us to increase.
TCP Addresses1 with verification1 per licensePriced on-demand, platform limit of 100. Contact us to increase.
Endpoint HoursNo limitNo limitNo limit, can be priced on-demand, contact us
HTTP Requests20,000Count of requests used (no limits)100,000 and then on-demand pricing
TCP Connections2,000 connectionsNo limit10,000 and then on-demand pricing
TLS ConnectionsNot AvailableCount of conns used (no limit)10,000 and then on-demand pricing
Data Transfer InNo limitNo limitNo limit
Data Transfer Out1 GBRefer to our pricing page for limits by plan10 GB and then on-demand pricing
Request Rate limit HTTP4k per min20k per min20k per Min. Contact us to increase.
TCP Connection Rate Limit120 per min20k per min20k per Min. Contact us to increase.
Requests with basic policy actions2,0002,0002,000 then an add-on is required
TCP Connections with basic policy actions500500500 then an add-on is required
TLS Connections with basic policy actionsNot Available500500 then an add-on is required
Requests with advanced policy actions2,0002,0002,000 then an add-on is required
TCP Connections with adv policy actions500500500 then an add-on is required
TLS Connections with adv policy actionsNot Available500500 then an add-on is required
Requests with ent policy actions2,0002,0002,000 then an add-on is required
TCP Connections with ent policy actions500500500 then an add-on is required
TLS Connections with ent policy actionsNot Available500500 then an add-on is required
Agents11 per licensePlatform limit of 1000. Contact us to increase.
Users11 per licensePlatform limit of 100. Contact us to increase.
Tunnel Authtokens10Platform limit of 100. Contact us to increase.Platform limit of 100. Contact us to increase.
API Keys10Platform limit of 20. Contact us to increase.Platform limit of 20. Contact us to increase.

To see current pricing, click here ngrok pricing

How can I see how my account stacks up against my limits?

The ngrok usage page at dashboard.ngrok.com/usage

How often do limits refresh?

Your count of resources against a limit refreshes on the first day of each month.

How does ngrok calculate endpoints for limits?

ngrok uses a combination of unique host:port combinations to calculate endpoints. You cannot have one of more than one of these in use at a time. Unlike other limits, this limit does not refresh at the end of each calendar month, you must simply stop using one endpoint in order to get another.

Need to Increase your ngrok limits?

Request adjustments to limits that conflict with your project by contacting ngrok. To request an increase to a limit, complete the Limit Increase Request Form and we will reach out with next steps.

Why is there an interstitial in front of my HTML content?

ngrok is committed to combating internet abuse. One common abuse of tools like ngrok is the hosting of phishing pages to steal user credentials. To counteract phishing on the platform, we inject an interstitial page in front of all HTML browser traffic on the free tier. Once a user agrees to the page, we set a cookie valid for 7 days for that domain.

If the interstitial interferes with your project, you can bypass it in a few ways.

  • From the client accessing the ngrok endpoint, add a header value of ngrok-skip-browser-warning and set it to any value. These requests will bypass the interstitial.
  • Change your user agent by setting the User-Agent header to something non-standard, such as MyApp/0.0.1, to bypass the warning.
  • Upgrading to any of our paid plans will also bypass the warning.

Code Examples

Axios

axios.get(url, { 'headers': { 'ngrok-skip-browser-warning': '1' } })
.then((response => {
console.log(response.data);
})
.catch((error) => {
console.log(error);
});

Fetch

const response = await fetch(URL, {
headers: {
"ngrok-skip-browser-warning": "1",
},
// ...
});

SuperAgent

 request
.get('/endpoint')
.set('ngrok-skip-browser-warning', '1')
.then(callback);

JQuery

 request
.get('/endpoint')
.set('ngrok-skip-browser-warning', '1')
.then(callback);

If you are a developer trying to access your own endpoint, you can use a browser extension to customize your browser's user agent value. Here is an example for Chrome.