Skip to content

Commit

Permalink
almost done with pricing-limits index page
Browse files Browse the repository at this point in the history
  • Loading branch information
S3Prototype committed Jan 17, 2025
1 parent 17de491 commit 87a61dd
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 142 deletions.
157 changes: 66 additions & 91 deletions docs/pricing-limits/free-plan-limits.mdx
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
title: Free Plan Limits
title: Free Plan Limits and Resources
---

import TabItem from "@theme/TabItem";
import Tabs from "@theme/Tabs";
import FreeResources from "@site/shared/limits/free-resources.mdx";

# Limits in ngrok's free plan
# Limits for ngrok's free plan

Learn about the limits enforced in the ngrok free plan.

:::tip
See [the pricing page](https://ngrok.com/pricing?ref=docs) for more details on increasing or removing these limits.
:::

## Free plan limit table

| Resource | Limit on Free | Limit on Development Plans | Limit on Production Plans |
| ----------------- | ------------- | -------------------------- | ------------------------- |
| Data Transfer Out | 1 GB | [See pricing](https://ngrok.com/pricing?ref=limits-docs) | [See pricing](https://ngrok.com/pricing?ref=limits-docs) |
Expand All @@ -21,106 +24,78 @@ See [the pricing page](https://ngrok.com/pricing?ref=docs) for more details on i
| TCP Connections | 5,000 | No limit | 10,000 then usage-based |
| TLS Connections | 5,000 | No limit | 10,000 then usage-based |

:::note
You can check your current usage [in the dashboard](https://dashboard.ngrok.com/usage).
:::

# 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?
## Free plan resources

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.
<FreeResources />

## Need to Increase your ngrok limits?
## Learn more about 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](https://tally.so/r/mKlYOK) and we will reach out with next steps.
See the [Pricing and Limits](/docs/pricing-limits#general-limits) page for more details on ngrok's pricing, limits, and licensing model.

## Removing the interstitial warning in front of your HTML content
## Removing the interstitial page

To prevent bad actors from using ngrok to create phishing pages to steal user credentials, ngrok [injects an interstitial page](https://ngrok.com/blog-post/fighting-abuse-on-the-ngrok-platform) in front of all HTML browser traffic on the free tier. Once the user acknowledges that the site is being served by ngrok, a cookie is set that is valid for 7 days for that domain.
To prevent bad actors from using ngrok to create [phishing pages](https://en.wikipedia.org/wiki/Phishing), ngrok [injects an interstitial page](https://ngrok.com/blog-post/fighting-abuse-on-the-ngrok-platform) in front of all HTML browser traffic on the free tier. Once the user acknowledges that the site is being served by ngrok, a cookie is set that is valid for 7 days for that domain.

:::note
This does not impact users serving APIs or accessing ngrok endpoints programmatically.
:::

You can remove the interstitial in one of the following ways:
You can remove the interstitial by upgrading to [any paid plan](https://ngrok.com/pricing?ref=docs-interstitial-removal) or using one of the following mehtods:

- 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.
<Tabs groupId="headers" queryString="library">
<TabItem value="axios" label="Axios">
```js
axios.get(url, { 'headers': { 'ngrok-skip-browser-warning': '1' } })
.then((response => {
console.log(response.data);
})
.catch((error) => {
console.log(error);
});
```
</TabItem>
<TabItem value="fetch" label="Fetch" default>
```js
const response = await fetch(URL, {
headers: {
"ngrok-skip-browser-warning": "1",
},
// ...
});
```
</TabItem>
<TabItem value="superagent" label="Super Agent" default>
```js
request
.get('/endpoint')
.set('ngrok-skip-browser-warning', '1')
.then(callback);
```
</TabItem>
<TabItem value="jquery" label="JQuery">
```js
request
.get('/endpoint')
.set('ngrok-skip-browser-warning', '1')
.then(callback);
```
</TabItem>
</Tabs>
- Change your user agent by setting the `User-Agent` header to something non-standard, such as `MyApp/0.0.1`, to bypass the warning.
- Upgrade to [any paid plan](https://ngrok.com/pricing?ref=docs).

### Code Examples


<Tabs groupId="connectivity" queryString="cty">
<TabItem value="agent-cli" label="Agent CLI">
<CustomIngressAgentCliExample />
</TabItem>
<TabItem value="agent-config" label="Agent Config" default>
<CustomIngressAgentConfigExample />
</TabItem>
<TabItem value="ssh" label="SSH" default>
<CustomIngressSshExample />
</TabItem>
<TabItem value="go-sdk" label="Go">
<CustomIngressGoSdkExample />
</TabItem>
<TabItem value="javascript-sdk" label="Javascript">
<CustomIngressJavascriptSdkExample />
</TabItem>
<TabItem value="python-sdk" label="Python">
<CustomIngressPythonSdkExample />
</TabItem>
<TabItem value="rust-sdk" label="Rust">
<CustomIngressRustSdkExample />
</TabItem>
<TabItem value="k8s" label="Kubernetes Controller">
<CustomIngressKubernetesExample />
</TabItem>
</Tabs>

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](https://chromewebstore.google.com/detail/requestly-intercept-modif/mdnleldcmiljblolnjhpnblkcekpdkpa?hl=en-US).
:::tip
You can also use a browser extension to customize your browser's user agent value. Here is an [example for Chrome](https://chromewebstore.google.com/detail/requestly-intercept-modif/mdnleldcmiljblolnjhpnblkcekpdkpa?hl=en-US).
:::
## I hit a limit on my plan. What are my options?
If you run into a limit, you have two options:
- You can wait for your cycle to refresh (limits refresh every 30 days per account)
- Upgrade to a plan with higher limits. If you're using ngrok for testing webhooks, the Pro plan is probably the best fit. If you're using ngrok for production, try the Pay-as-you-go plan.
[^1]: Endpoints are the public URLs that ngrok creates for your tunnels.
74 changes: 23 additions & 51 deletions docs/pricing-limits/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
title: Pricing and Limits
---

import FreeResources from "@site/shared/limits/free-resources.mdx";

# Pricing and Limits

Learn about ngrok's, pricing, limits, and licensing model.
Expand Down Expand Up @@ -31,67 +33,37 @@ Learn about ngrok's, pricing, limits, and licensing model.
| **Agents** | 1 | 1 per license | Platform limit of 1000. Contact us to increase. |
| **Users** | 1 | 1 per license | Platform limit of 100. Contact us to increase. |

# 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 it works

ngrok’s plans are designed to suit the use cases of individuals, teams, and organizations using ngrok to create secure ingress for development and production workloads. Each license at ngrok roughly represents a developer using an ngrok agent for building an application. It includes the ability to run an ngrok agent (or use the agent SDKs or ngrok Kubernetes Operator) with a custom domain or TCP Address.

## What's the difference between the usage-based and seat-based plans?
:::note
You can check your current usage [in the dashboard](https://dashboard.ngrok.com/usage).
:::

ngrok services are and will always be offered on a limited free tier to the broader community.
:::tip
Need to increase your limits? Complete the [Limit Increase Request Form](https://tally.so/r/mKlYOK), and support will reach out to you with the next steps.
:::

Seat-based plans are intended for developers, teams, and organizations using ngrok to test and share their apps publicly.
## General limits

Usage-based plans are intended for developers who have production workloads and services that they choose to front with ngrok.
ngrok's plans are designed to suit the use cases of individuals, teams, and organizations using ngrok to create secure ingress for development and production workloads. Each license at ngrok roughly represents a developer using an ngrok agent for building an application. It includes the ability to run an ngrok agent (or use the agent SDKs or ngrok Kubernetes Operator) with a custom domain or TCP Address.

For details and to select a different plan, see [ngrok pricing](https://ngrok.com/pricing?ref=docs).
### Resetting limits

## What do I get for free on ngrok?
Your usage resets on the first day of each month.

Resources included for free:
### How ngrok calculates endpoints for limits?

| Resource | Limit on Free |
| --------------------- | ---------------------- |
| Users | 1 |
| Active Endpoints[^1] | 1 |
| 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 |
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.

Features included for free on all plans
## Usage-based vs seat-based 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
- **Seat-based plans** (ngrok for developers) — best for teams, organizations, and developers using ngrok to test and share their apps publicly.
- **Usage-based plans** (ngrok for production) — best for developers who have production workloads and services that they choose to front with ngrok.

## I hit a limit on my plan. What are my options?
For details and to select a plan, see [the pricing page](https://ngrok.com/pricing?ref=docs).

ngrok's [free plans](/guides/other-guides/licensing) are generous, but some users on Free and Personal plans will find that they run into limits.
## ngrok's Free plan

If you run into a limit, you have two options:
:::tip
See [Free Plan Limits and Resources](/docs/pricing-limits/free-plan-limits) for more details on the free plan.
:::

- You can wait for your cycle to refresh (limits refresh every 30 days per account)
- Upgrade to a plan with higher limits. If you're using ngrok for testing webhooks, the Pro plan is probably the best fit. If you're using ngrok for production, try the Pay-as-you-go plan.
<FreeResources />
29 changes: 29 additions & 0 deletions shared/limits/free-resources.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
| Resource | Limit on Free |
| --------------------- | ---------------------- |
| Users | 1 |
| Active Endpoints[^1] | 1 |
| 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 |

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

0 comments on commit 87a61dd

Please sign in to comment.