Skip to main content
Learn about the limits enforced in the free ngrok for developers plan.
The free tier does NOT have timeouts on endpoints. 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

ResourceLimit on Free
Data Transfer Out1 GB
Online EndpointsUp to 3
Requests20,000
TCP Connections5,000
TLS ConnectionsNot Available
You can check your usage in the Usage page in the dashboard.

Free plan resources

ResourceLimit on Free
Users1
Online EndpointsUp to 3
Traffic Policy Rules per Policy5
Development domain1
Concurrent Agents3
Bandwidth1 GB Outgoing/month
TCP Connection Rate100/min
HTTP Request Rate4,000/min
Edges1
Logs/EventsUp to 10,000 per month
Traffic Identities (OAuth/OIDC MAU)Up to 3 per month
HTTP RequestsUp to 20,000/month
TCP ConnectionsUp to 5,000/month
TLS ConnectionsNot available
Webhook verificationsUp to 500/month
Features included for free on all plans:
  • 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

Domain limitations on free plan

The free plan includes one automatically assigned dev domain (for example, your-assigned-name.ngrok-free.app) that you can use for public endpoints. What you CAN do on the free plan:
  • Use your assigned dev domain with commands like: ngrok http 8080
  • Create up to 3 online endpoints using your dev domain
What you CANNOT do on the free plan:
  • Choose or customize your domain name (for example, --url https://my-custom-name.ngrok.app will not work)
  • Reserve or create custom static domains
  • Use random domain generation (for example, --url 'https://' will not work)
  • Use your own custom domain (for example, app.yourdomain.com)
  • Create wildcard domains
To choose custom domain names, use random domain generation, or bring your own domain, you need to upgrade to a paid plan.

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.
You can remove the interstitial by upgrading to any paid plan or using one of the following methods.

Using headers

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

Using a custom user agent

Change your user agent by setting the User-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’s an example for Chrome.

I hit a limit on my plan or ran out of credit. What are my options?

Upgrade to a plan with higher limits. If you want to ensure your endpoints are always online, choose the Pay-as-you-go plan.