Skip to main content

What are Public Endpoints?

A Domain's primary responsibility is to enable you to create public endpoints with a hostname matching the domain. These are called "matching endpoints". For example, after you create the Domain app.example.com, you can create the Endpoint https://app.example.com.

When you create a Domain, you may create matching public endpoints with the following constraints:

Endpoint ProtocolAllowed Endpoints
httpMatching endpoints on port 80 of the Domain.
httpsMatching endpoints on port 443 of the Domain.
tlsMatching endpoints on port 443 of the Domain.
tcpNot allowed. Public TCP endpoints must match a TCP Address.

If you configure your Domain to use dedicated IPs, these restrictions are removed and you may create matching endpoints on any ports.

Wildcard Domains

You may create a Domain with a wildcard name, e.g. *.example.com. A wildcard domain enables you to:

  • Create an endpoint which receives traffic for all of its subdomains, e.g. https://*.example.com. Consult the documentation for wildcard endpoints to understand the rules for matching and precedence.

  • Create an endpoint on any subdomain which matches the wildcard, e.g. https://foo.example.com or https://foo.bar.baz.example.com

The wildcard * character may only be used as the first part of a domain, you may not create domains like app.*.example.com or *-app.example.com.

Ownership

Your account exclusively owns its Domains and all of their nested subdomains within ngrok. That means:

  • No account may create a Domain with a name that is a subdomain of your Domains.
  • No other account may create endpoints with a hostname matching your Domain or any of its nested subdomains.

For example, if you create a Domain with the name foo.ngrok.app:

  • No other account create the Domains foo.ngrok.app or bar.foo.ngrok.app.
  • No other account may create the endpoints https://foo.ngrok.app or https://bar.foo.ngrok.app.