Reference documentation for deprecated Edges feature. Edges have been sunset as of December 31st, 2025. See migration guide for alternatives.
Edges, Routes, Modules, Backends, and Labeled Tunnels have been deprecated since December 31st, 2025. The dashboard Endpoints page no longer shows edge endpoints. If you still have edges configured, you can manage them via the Edges API (HTTPS, TCP, TLS).
Migration guide
Edges have been replaced with new features that are both simpler and more powerful than their Edges counterparts.
Use the following replacement guide to migrate off of Edges:
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ngrok documentation","colors":{"primary":"#0078C4","light":"#00BCFF","dark":"#0078C4"},"logo":{"light":"https://mintcdn.com/ngrok/_7R3hf69rnKiCshG/logo/compact-light.svg?fit=max\u0026auto=format\u0026n=_7R3hf69rnKiCshG\u0026q=85\u0026s=d79c7eb9cf2273745608b35a1b312b05","dark":"https://mintcdn.com/ngrok/_7R3hf69rnKiCshG/logo/compact-dark.svg?fit=max\u0026auto=format\u0026n=_7R3hf69rnKiCshG\u0026q=85\u0026s=fcc0cf30ebbc762df394756f6754d3bd","href":"https://ngrok.com/docs"},"favicon":"https://mintcdn.com/ngrok/BQQt-CHCs_8OwVmS/favicon.ico?fit=max\u0026auto=format\u0026n=BQQt-CHCs_8OwVmS\u0026q=85\u0026s=294907ab135b589ed607e4888e1a10a4","background":{"color":{"dark":"#121212"}},"navbar":{"links":[{"href":"https://ngrok.com/","label":"Homepage"},{"href":"https://dashboard.ngrok.com/","label":"Dashboard"},{"href":"https://ngrok.com/changelog","label":"Changelog"}],"primary":{"type":"button","label":"Sign up","href":"https://dashboard.ngrok.com/signup"}},"footer":{"socials":{"x":"https://x.com/ngrokhq","github":"https://github.com/ngrok","linkedin":"https://linkedin.com/company/ngrok","youtube":"https://www.youtube.com/@ngrokHQ"},"links":[{"header":"Product","items":[{"label":"Gateway","href":"https://ngrok.com/docs/gateway/overview"},{"label":"AI Gateway","href":"https://ngrok.ai"},{"label":"Traffic Policy","href":"https://ngrok.com/docs/traffic-policy"},{"label":"Secure Tunnels","href":"https://ngrok.com/docs/agent/overview"},{"label":"Traffic Observability","href":"https://ngrok.com/docs/obs"},{"label":"Kubernetes Operator","href":"https://ngrok.com/docs/k8s"}]},{"header":"Problems we solve","items":[{"label":"API gateway","href":"https://ngrok.com/docs/guides/api-gateway/get-started"},{"label":"AI gateway","href":"https://ngrok.ai/"},{"label":"Webhook gateway","href":"https://ngrok.com/docs/gateway/examples/webhook-gateway"},{"label":"Ephemeral workloads","href":"https://ngrok.com/docs/gateway/examples/ephemeral-workloads"},{"label":"Customer connectivity","href":"https://ngrok.com/use-cases/saas-customer-connectivity"},{"label":"Device gateway","href":"https://ngrok.com/docs/guides/device-gateway/overview"},{"label":"Remote access","href":"https://ngrok.com/docs/guides/ssh-rdp"},{"label":"Share localhost","href":"https://ngrok.com/use-cases/share-localhost"},{"label":"Connect MCPs to AI providers","href":"https://ngrok.com/docs/gateway/api-gateway/mcp-gateway"},{"label":"Test webhooks","href":"https://ngrok.com/docs/share-localhost/webhooks"},{"label":"Access remote K8s clusters","href":"https://ngrok.com/docs/k8s/guides/local-projection"},{"label":"Minecraft","href":"https://ngrok.com/docs/gateway/examples/minecraft"}]},{"header":"Resources","items":[{"label":"Docs","href":"https://ngrok.com/docs/start"},{"label":"Guides","href":"https://ngrok.com/docs/guides"},{"label":"Pricing","href":"https://ngrok.com/pricing"},{"label":"Download","href":"https://ngrok.com/download"},{"label":"Security","href":"https://ngrok.com/security"},{"label":"Trust","href":"https://trust.ngrok.com/"},{"label":"Case studies","href":"https://ngrok.com/customers"},{"label":"Integrations","href":"https://ngrok.com/docs/integrations"},{"label":"Support","href":"https://ngrok.com/support"},{"label":"Abuse","href":"https://ngrok.com/abuse"},{"label":"Status","href":"https://status.ngrok.com/"}]},{"header":"Company","items":[{"label":"About","href":"https://ngrok.com/about"},{"label":"Contact","href":"https://ngrok.com/contact"},{"label":"Blog","href":"https://ngrok.com/blog"},{"label":"Newsletter","href":"https://ngrok.com/newsletter"},{"label":"Press","href":"https://ngrok.com/press"},{"label":"Brand","href":"https://ngrok.com/brand"},{"label":"Careers","href":"https://ngrok.com/careers"}]}]},"seo":{"metatags":{"canonical":"https://ngrok.com/docs"},"indexing":"navigable"},"fonts":{"heading":{"family":"Roobert","weight":600,"source":"https://assets.ngrok.com/fonts/roobert/roobert-proportional-vf.woff2","format":"woff2"},"body":{"family":"Roobert","weight":400,"source":"https://assets.ngrok.com/fonts/roobert/roobert-proportional-vf.woff2","format":"woff2"}},"styling":{"codeblocks":{"theme":{"light":"css-variables","dark":"css-variables"}},"latex":true},"integrations":{"posthog":{"apiKey":"phc_mUGMN4JlTzthGcz0XNK0z6NKUqdeQMn7rPRAM3mifjQ","apiHost":"https://e.ngrok.com"}},"contextual":{"options":["copy","view",{"title":"Connect the ngrok MCP server","description":"Let your AI agent manage your ngrok account","icon":"plug","href":"https://ngrok.com/docs/mcp-server"},"claude",{"title":"Connect to Cursor","description":"Install the ngrok MCP server in Cursor","icon":"/img/icons/cursor.svg","href":{"base":"cursor://anysphere.cursor-deeplink/mcp/install","query":[{"key":"name","value":"ngrok"},{"key":"config","value":"eyJ1cmwiOiJodHRwczovL21jcC5uZ3Jvay5jb20vbWNwIiwiYXV0aCI6eyJDTElFTlRfSUQiOiJpYW1jbGlfM0tlSzhkOHNPNGQ5UkFyQVJ4N1JGemNUVnRPIn19"}]}},{"title":"Connect to VS Code","description":"Install the ngrok MCP server in VS Code","icon":"/img/icons/vscode.svg","href":"vscode:mcp/install?%7B%22name%22%3A%22ngrok%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.ngrok.com%2Fmcp%22%7D"},"assistant","chatgpt","perplexity","grok","aistudio","devin","download-spec"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ngrok","hasAudioNarration":false,"actualSubdomain":"ngrok","customDomains":["ngrok.com"],"gitSource":{"type":"github","owner":"ngrok","repo":"ngrok-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af7ade2f7f591b5b5b1a4d4","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"Reference","count":4349},{"language":"default","tag":"Errors","count":1906},{"language":"default","tag":"Error codes","count":1904},{"language":"default","tag":"Gateway","count":485},{"language":"default","tag":"Named error codes","count":362},{"language":"default","tag":"ERR_NGROK_0-999","count":304},{"language":"default","tag":"Integrations","count":300},{"language":"default","tag":"ERR_NGROK_1000-1999","count":271},{"language":"default","tag":"AI Gateway","count":258},{"language":"default","tag":"ERR_NGROK_10000 and above","count":257}],"searchSettings":{"isFiltersEnabled":false}},"assistantConfig":{"enableAskAiButton":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@ngrok.com","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"img{max-width:100%;height:auto}.tooltip{font-weight:bold;text-decoration:none!important;position:relative}.tooltip::after{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:1px;border-bottom:1px dotted rgba(0, 0, 0, 0.8)}:root .tooltip,[data-theme=\"light\"] .tooltip,.light .tooltip{color:rgba(0, 0, 0, 0.8)}:root .tooltip::after,[data-theme=\"light\"] .tooltip::after,.light .tooltip::after{border-bottom-color:rgba(0, 0, 0, 0.8)}[data-theme=\"dark\"] .tooltip,.dark .tooltip{color:rgba(255, 255, 255, 0.8)}[data-theme=\"dark\"] .tooltip::after,.dark .tooltip::after{border-bottom-color:rgba(255, 255, 255, 0.8)}@media (prefers-color-scheme: light){.tooltip{color:rgba(0, 0, 0, 0.8)}.tooltip::after{border-bottom-color:rgba(0, 0, 0, 0.8)}}@media (prefers-color-scheme: dark){.tooltip{color:rgba(255, 255, 255, 0.8)}.tooltip::after{border-bottom-color:rgba(255, 255, 255, 0.8)}}:root td .tooltip{font-weight:inherit;color:inherit}:root .mcp-examples .tooltip{font-weight:inherit;color:inherit}td button[data-state]{text-align:start}td button[data-state] code{white-space:nowrap;word-break:normal;overflow-wrap:normal}td:first-child:has(>button[data-state] code){width:100%}table:has(td:first-child>button[data-state] code) td,table:has(td:first-child>button[data-state] code) th{min-width:0;white-space:nowrap}td .icon{mask-size:contain;-webkit-mask-size:contain}td .tooltip:has(>.icon){text-decoration:none}td .tooltip:has(>.icon)::after{display:none}td pre,td code{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}td pre{white-space:pre-wrap}td:has(pre),td:has(code){min-width:240px;width:auto}td pre{min-width:200px}td code{min-width:150px}@font-face{font-family:\"Roobert\";src:url(\"https://assets.ngrok.com/fonts/roobert/roobert-proportional-vf.woff2\")\n format(\"woff2 supports variations\"),\n url(\"https://assets.ngrok.com/fonts/roobert/roobert-proportional-vf.woff2\")\n format(\"woff2-variations\");font-weight:300 900;font-display:swap;font-style:normal}@font-face{font-family:\"JetBrains Mono\";src:url(\"https://assets.ngrok.com/fonts/jetbrains/jetbrainsmono-wght.woff2\")\n format(\"woff2 supports variations\"),\n url(\"https://assets.ngrok.com/fonts/jetbrains/jetbrainsmono-wght.woff2\")\n format(\"woff2-variations\");font-weight:100 800;font-display:swap;font-style:normal}@font-face{font-family:\"JetBrains Mono\";src:url(\"https://assets.ngrok.com/fonts/jetbrains/jetbrainsmono-italic-wght.woff2\")\n format(\"woff2 supports variations\"),\n url(\"https://assets.ngrok.com/fonts/jetbrains/jetbrainsmono-italic-wght.woff2\")\n format(\"woff2-variations\");font-weight:100 800;font-display:swap;font-style:italic}code,pre,pre code,.hljs,.token{font-family:\"JetBrains Mono\",\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n Liberation Mono,\n Courier New,\n monospace!important}#topbar-cta-button span.bg-primary-dark{background-color:#121212!important;transition:background-color!important}#topbar-cta-button a:hover span.bg-primary-dark{background-color:#171717!important}#topbar-cta-button span.text-white{color:#fff!important}.dark #topbar-cta-button span.bg-primary-dark,[data-theme=\"dark\"] #topbar-cta-button span.bg-primary-dark{background-color:rgba(255, 255, 255, 0.85)!important;transition:background-color!important}.dark #topbar-cta-button a:hover span.bg-primary-dark,[data-theme=\"dark\"] #topbar-cta-button a:hover span.bg-primary-dark{background-color:#fff!important}.dark #topbar-cta-button span.text-white,[data-theme=\"dark\"] #topbar-cta-button span.text-white{color:#000!important}#topbar-cta-button svg{color:#fff!important}.dark #topbar-cta-button svg,[data-theme=\"dark\"] #topbar-cta-button svg{color:#000!important}footer#footer a{overflow:visible;text-overflow:clip;white-space:nowrap}@media (min-width: 768px) and (max-width: 880px){footer#footer a{white-space:normal}}.card :is([data-component-part=\"card-title\"],[data-component-part=\"card-content\"]){text-wrap:pretty}.nav-tabs-item>div.absolute.bottom-0{height:2px!important}.docs-home-updates a{display:block;padding-block:1.25rem;border-bottom:1px solid #d4d4d4;text-decoration:none}.docs-home-updates .docs-home-date{display:block;color:#666;font-size:0.8125rem;margin-bottom:0.375rem}.docs-home-updates .docs-home-title{color:#121212;font-weight:600}.docs-home-updates a:focus-visible{outline:2px solid rgb(var(--primary));outline-offset:4px}.docs-home-updates a:hover .docs-home-title{text-decoration:underline}.docs-home-updates p{margin:0.375rem 0 0;color:#525252;font-size:0.875rem;line-height:1.5}.dark .docs-home-updates .docs-home-title{color:#f5f5f5}.dark .docs-home-updates a{border-color:#404040}.dark .docs-home-updates a:focus-visible{outline-color:rgb(var(--primary-light))}.dark .docs-home-updates .docs-home-date,.dark .docs-home-updates p{color:#a3a3a3}.nav-anchor div:has(>img[src$=\"/img/icons/gateway.svg\"]){background:rgb(16 185 129 / 0.2)!important}.nav-anchor div:has(>img[src$=\"/img/icons/ai-gateway.svg\"]){background:rgb(245 158 11 / 0.2)!important}.nav-anchor div:has(>img[src$=\"/img/icons/share-localhost.svg\"]){background:rgb(168 85 247 / 0.2)!important}.nav-anchor img[src*=\"/img/icons/\"]{opacity:1;background:transparent!important}html:has(.nav-tabs-item[data-active=\"true\"]:is([href^=\"/gateway/\"],[href^=\"/docs/gateway/\"])),.product-gateway{--primary: 4 120 87;--primary-light: 52 211 153;--primary-dark: 4 120 87}html:has(.nav-tabs-item[data-active=\"true\"]:is([href^=\"/ai-gateway/\"],[href^=\"/docs/ai-gateway/\"])),.product-ai-gateway{--primary: 180 83 9;--primary-light: 251 191 36;--primary-dark: 180 83 9}html:has(.nav-tabs-item[data-active=\"true\"]:is([href^=\"/share-localhost/\"],[href^=\"/docs/share-localhost/\"])),.product-share-localhost{--primary: 147 51 234;--primary-light: 192 132 252;--primary-dark: 147 51 234}#navbar>.max-w-8xl{max-width:none}#navbar .h-16{padding-inline:0.5rem}@media (min-width: 64rem){#navbar a:has(>.nav-logo){margin-left:1.5rem}}@media (min-width: 64rem){#navbar div:has(>.nav-tabs){padding-inline:2rem 1rem}#navbar .nav-tabs{flex:1}#navbar .nav-tabs-item:is([href^=\"/for-agents\"],[href^=\"/docs/for-agents\"]){margin-left:auto}}#navbar .nav-tabs-item:focus-visible{outline:none}#navbar .nav-tabs-item:focus-visible::before{content:\"\";position:absolute;inset:0.625rem -0.5rem;border-radius:0.375rem;box-shadow:0 0 0 4px rgb(var(--primary) / 0.3);pointer-events:none}:is(html.dark,html[data-theme=\"dark\"]) #navbar .nav-tabs-item:focus-visible::before{box-shadow:0 0 0 4px rgb(var(--primary-light) / 0.35)}@media (min-width: 64rem) and (max-width: 80rem){#navbar .nav-tabs{column-gap:1rem}}@media (min-width: 100rem){:root{--topbar-tabs-height: 0rem !important;--experiment-search-width: 9rem;--experiment-actions-width: 27rem}#navbar>.max-w-8xl{position:relative}#navbar div:has(>.nav-tabs){position:absolute;top:0;left:10rem;right:calc(0.5rem + var(--experiment-actions-width) + var(--experiment-search-width) + 2.5rem);height:4rem;padding-inline:0;z-index:30}#navbar .nav-tabs{white-space:nowrap}#navbar .h-16>div>div:has(>a>.nav-logo){flex:1 1 auto}#navbar .h-16>div>div:has(>#search-bar-entry){flex:0 0 var(--experiment-search-width)}#navbar .h-16>div>div:has(>nav){flex:0 0 var(--experiment-actions-width)}#navbar .h-16>div{border-bottom:0}}@media (min-width: 106rem){:root{--experiment-search-width: 12rem}}@media (min-width: 64rem){#navbar.is-not-custom.is-not-center~div:has(>#sidebar){--experiment-sidebar-width: 18rem;--experiment-article-width: 52rem;--experiment-content-width: 74rem;max-width:none;padding-inline:1rem}#navbar.is-not-custom.is-not-center~div>#sidebar{width:var(--experiment-sidebar-width)}#navbar.is-not-custom.is-wide~div:has(>#sidebar)>#content-container{flex:none;width:min(\n var(--experiment-article-width),\n calc(100% - var(--experiment-sidebar-width) - 2rem)\n );margin-left:clamp(\n 2rem,\n calc((100% - var(--experiment-article-width)) / 2 - var(--experiment-sidebar-width)),\n max(2rem, calc(100% - var(--experiment-sidebar-width) - var(--experiment-content-width)))\n );margin-right:auto}#navbar.is-not-custom.is-not-center.is-not-wide~div:has(>#sidebar)>#content-container{flex:none;width:min(\n var(--experiment-content-width),\n calc(100% - var(--experiment-sidebar-width) - 2rem)\n );margin-left:clamp(\n 2rem,\n calc((100% - var(--experiment-article-width)) / 2 - var(--experiment-sidebar-width)),\n max(2rem, calc(100% - var(--experiment-sidebar-width) - var(--experiment-content-width)))\n );margin-right:auto}#navbar.is-not-custom.is-not-center~div #content-area{flex:1;min-width:0;width:auto;margin-inline:0;padding-inline:0}#navbar.is-not-custom.is-not-center.is-not-wide~div #content-side-layout{flex:none;width:19rem}}.ngrok-consent{--ngrok-consent-surface: #ffffff;--ngrok-consent-border: #d4d4d4;--ngrok-consent-text: #121212;--ngrok-consent-action-bg-hover: rgb(115 115 115 / 10%);--ngrok-consent-focus-ring: rgb(0 120 196 / 35%);--ngrok-consent-shadow:\n 0 1px 13px 0 rgb(0 0 0 / 5%),\n 0 4px 6px -4px rgb(0 0 0 / 10%),\n 0 10px 15px -3px rgb(0 0 0 / 10%);position:fixed;inset-inline:0;bottom:1rem;z-index:2147483000;display:flex;justify-content:center;padding-inline:1rem;pointer-events:none}:is(html.dark,html[data-theme=\"dark\"]) .ngrok-consent{--ngrok-consent-surface: #171717;--ngrok-consent-border: #404040;--ngrok-consent-text: #ffffff;--ngrok-consent-focus-ring: rgb(0 188 255 / 35%);--ngrok-consent-shadow:\n 0 1px 13px 0 rgb(0 0 0 / 15%),\n 0 4px 6px -4px rgb(0 0 0 / 30%),\n 0 10px 15px -3px rgb(0 0 0 / 30%)}@media (min-width: 640px){.ngrok-consent{bottom:2.5rem}}.ngrok-consent-panel{pointer-events:auto;display:flex;align-items:center;gap:0.75rem;width:fit-content;max-width:100%;padding:0.5rem 0.75rem;border:1px solid var(--ngrok-consent-border);border-radius:1rem;background-color:var(--ngrok-consent-surface);color:var(--ngrok-consent-text);box-shadow:var(--ngrok-consent-shadow);transition-property:opacity, translate;transition-timing-function:cubic-bezier(0, 0, 0.2, 1);transition-duration:400ms}.ngrok-consent-panel[hidden]{display:none}.ngrok-consent-panel[data-state=\"closed\"]{pointer-events:none;opacity:0;transition-duration:200ms}@media (prefers-reduced-motion: no-preference){.ngrok-consent-panel[data-state=\"closed\"]{translate:0 calc(100% + 2.5rem)}}.ngrok-consent-message{margin:0;font-size:0.875rem;line-height:1.25rem}.ngrok-consent-actions{display:flex;align-items:center;gap:0.375rem}.ngrok-consent-icon-button{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:1px solid transparent;border-radius:0.375rem;background-color:transparent;color:var(--ngrok-consent-text);cursor:pointer;outline:2px solid transparent;outline-offset:2px;text-decoration:none;transition:transform 150ms cubic-bezier(0, 0, 0.2, 1)}.ngrok-consent-icon-button:hover{background-color:var(--ngrok-consent-action-bg-hover)}.ngrok-consent-icon-button:active{transform:scale(0.97)}.ngrok-consent-icon-button:focus-visible{box-shadow:0 0 0 4px var(--ngrok-consent-focus-ring)}.ngrok-consent-icon-button svg{width:1.25rem;height:1.25rem;flex-shrink:0}img[src$=\"/img/icons/cursor.svg\"],img[src$=\"/img/icons/vscode.svg\"]{opacity:0.5}.dark img[src$=\"/img/icons/cursor.svg\"],.dark img[src$=\"/img/icons/vscode.svg\"]{filter:invert(1)}:root{--mint-foreground: oklch(18.2% 0 0);--mint-token-comment: oklch(18.2% 0 0 / 60%);--mint-token-constant: oklch(55.5% 0.163 48.998);--mint-token-string: oklch(50.8% 0.118 165.612);--mint-token-string-expression: oklch(50.8% 0.118 165.612);--mint-token-keyword: oklch(49.6% 0.265 301.924);--mint-token-function: oklch(50% 0.134 242.749);--mint-token-parameter: oklch(51.4% 0.222 16.935);--mint-token-punctuation: oklch(50% 0.134 242.749);--mint-token-link: oklch(50% 0.134 242.749);--mantle-code-bg: oklch(98.5% 0 0);--mantle-code-border: oklch(87% 0 0);--mantle-code-header-text: oklch(37.1% 0 0);--mantle-code-active-tab-bg: oklch(55.6% 0 0 / 15%)}:is(html.dark,html[data-theme=\"dark\"]){--mint-foreground: #fff;--mint-token-comment: rgb(255 255 255 / 50%);--mint-token-constant: oklch(87.9% 0.169 91.605);--mint-token-string: oklch(84.5% 0.143 164.978);--mint-token-string-expression: oklch(84.5% 0.143 164.978);--mint-token-keyword: oklch(82.7% 0.119 306.383);--mint-token-function: oklch(82.8% 0.111 230.318);--mint-token-parameter: oklch(81% 0.117 11.638);--mint-token-punctuation: oklch(82.8% 0.111 230.318);--mint-token-link: oklch(82.8% 0.111 230.318);--mantle-code-bg: oklch(18.2% 0 0);--mantle-code-border: oklch(37.1% 0 0);--mantle-code-header-text: oklch(87% 0 0)}.callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"]){--mantle-intent-500: oklch(68.5% 0.169 237.323);--mantle-intent-700: oklch(50% 0.134 242.749);--mantle-intent-900: oklch(39.1% 0.09 240.876)}.callout:is([data-callout-type=\"tip\"],[data-callout-type=\"check\"]){--mantle-intent-500: oklch(69.6% 0.17 162.48);--mantle-intent-700: oklch(50.8% 0.118 165.612);--mantle-intent-900: oklch(37.8% 0.077 168.94)}.callout[data-callout-type=\"warning\"]{--mantle-intent-500: oklch(76.9% 0.188 70.08);--mantle-intent-700: oklch(55.5% 0.163 48.998);--mantle-intent-900: oklch(41.4% 0.112 45.904)}.callout[data-callout-type=\"danger\"]{--mantle-intent-500: oklch(64.5% 0.246 16.439);--mantle-intent-700: oklch(51.4% 0.222 16.935);--mantle-intent-900: oklch(41% 0.159 10.272)}:is(html.dark,html[data-theme=\"dark\"]) .callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"]){--mantle-intent-700: oklch(82.8% 0.111 230.318);--mantle-intent-900: oklch(95.1% 0.026 236.824)}:is(html.dark,html[data-theme=\"dark\"]) .callout:is([data-callout-type=\"tip\"],[data-callout-type=\"check\"]){--mantle-intent-700: oklch(84.5% 0.143 164.978);--mantle-intent-900: oklch(95% 0.052 163.051)}:is(html.dark,html[data-theme=\"dark\"]) .callout[data-callout-type=\"warning\"]{--mantle-intent-700: oklch(87.9% 0.169 91.605);--mantle-intent-900: oklch(96.2% 0.059 95.617)}:is(html.dark,html[data-theme=\"dark\"]) .callout[data-callout-type=\"danger\"]{--mantle-intent-700: oklch(81% 0.117 11.638);--mantle-intent-900: oklch(94.1% 0.03 12.58)}.callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"],[data-callout-type=\"tip\"],[data-callout-type=\"check\"],[data-callout-type=\"warning\"],[data-callout-type=\"danger\"]){gap:0.75rem;padding:0.875rem 1rem;border-radius:0.375rem;border-color:color-mix(in oklab, var(--mantle-intent-500) 50%, transparent);background-color:color-mix(in oklab, var(--mantle-intent-500) 10%, transparent)}.callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"],[data-callout-type=\"tip\"],[data-callout-type=\"check\"],[data-callout-type=\"warning\"],[data-callout-type=\"danger\"]) :is([data-component-part=\"callout-icon\"] svg,[data-component-part=\"callout-content\"]){color:var(--mantle-intent-700)}.callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"],[data-callout-type=\"tip\"],[data-callout-type=\"check\"],[data-callout-type=\"warning\"],[data-callout-type=\"danger\"]) [data-component-part=\"callout-icon\"]{width:1.25rem;margin-top:0.25rem}.callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"],[data-callout-type=\"tip\"],[data-callout-type=\"check\"],[data-callout-type=\"warning\"],[data-callout-type=\"danger\"]) [data-component-part=\"callout-icon\"] svg{width:1.25rem;height:1.25rem}.callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"],[data-callout-type=\"tip\"],[data-callout-type=\"check\"],[data-callout-type=\"warning\"],[data-callout-type=\"danger\"]) [data-component-part=\"callout-content\"]{font-size:1rem;line-height:1.75rem}.callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"],[data-callout-type=\"tip\"],[data-callout-type=\"check\"],[data-callout-type=\"warning\"],[data-callout-type=\"danger\"]) [data-component-part=\"callout-content\"] ul>li::before{background-color:var(--mantle-intent-700)}.callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"],[data-callout-type=\"tip\"],[data-callout-type=\"check\"],[data-callout-type=\"warning\"],[data-callout-type=\"danger\"]) [data-component-part=\"callout-content\"] code{color:var(--mantle-intent-900)!important;background-color:color-mix(in oklab, var(--mantle-intent-500) 10%, transparent);border:1px solid color-mix(in oklab, var(--mantle-intent-500) 20%, transparent)}:root :is(.code-block,.code-group){--mint-background: var(--mantle-code-bg);padding:0;border:1px solid var(--mantle-code-border);border-radius:0.375rem;background-color:var(--mantle-code-bg)}:root .code-group .code-block{border:0;border-radius:0 0 0.375rem 0.375rem}.code-block [data-component-part=\"code-block-root\"]{border-radius:inherit}.code-block [data-component-part=\"code-block-root\"]{font-size:0.8125rem}:root .code-block pre{line-height:1.25rem}.code-block [data-component-part=\"scroll-area-viewport\"]{padding:1rem}.code-block [data-component-part=\"code-block-header\"],.code-group [data-component-part=\"code-group-tab-bar\"]{border-bottom:1px solid var(--mantle-code-border);border-radius:0.375rem 0.375rem 0 0}.code-block [data-component-part=\"code-block-header\"]{padding-block:0.5rem;padding-inline:1rem 0.625rem}.code-block [data-component-part=\"code-block-header-filename\"]{color:var(--mantle-code-header-text)}.code-group [data-component-part=\"code-group-tab-bar\"] [role=\"tab\"]{margin-block:0.5rem;color:var(--mantle-code-header-text)}.code-group [data-component-part=\"code-group-tab-bar\"] [role=\"tab\"][aria-selected=\"true\"]{color:var(--mint-foreground)}.code-group [data-component-part=\"code-group-tab-bar\"] [role=\"tab\"]>div:first-child{padding-block:0.125rem;border-radius:0.25rem}.code-group [data-component-part=\"code-group-tab-bar\"] [role=\"tab\"][aria-selected=\"true\"]>div:first-child{background-color:var(--mantle-code-active-tab-bg)}:root .code-group [data-component-part=\"code-group-tab-bar\"] [role=\"tab\"]:hover>div:first-child{color:var(--mint-foreground)}:root .code-group [data-component-part=\"code-group-tab-bar\"] [role=\"tab\"][aria-selected=\"false\"]:hover>div:first-child{background-color:oklch(55.6% 0 0 / 10%)}.code-group [data-component-part=\"code-group-tab-bar\"] [role=\"tab\"]>div:not(:first-child){display:none}.code-block-copy-button button{background-color:var(--mantle-code-bg)!important}.code-block-copy-button button:hover{background-color:var(--mantle-code-active-tab-bg)!important}:root .code-block-copy-button svg{color:var(--mint-token-comment)}:root{--mantle-card-border: oklch(87% 0 0);--mantle-card-bg: #fff;--mantle-card-border-muted: oklch(92.2% 0 0);--mantle-base-bg: oklch(98.5% 0 0);--mantle-separator: oklch(55.6% 0 0 / 20%);--mantle-text-body: oklch(18.2% 0 0 / 75%);--mantle-text-muted: oklch(18.2% 0 0 / 60%);--mantle-text-gray-600: oklch(43.9% 0 0)}:is(html.dark,html[data-theme=\"dark\"]){--mantle-card-border: oklch(37.1% 0 0);--mantle-card-bg: oklch(20.5% 0 0);--mantle-card-border-muted: oklch(26.9% 0 0);--mantle-base-bg: oklch(18.2% 0 0);--mantle-separator: oklch(70.8% 0 0 / 20%);--mantle-text-body: rgb(255 255 255 / 70%);--mantle-text-muted: rgb(255 255 255 / 50%);--mantle-text-gray-600: oklch(70.8% 0 0)}:root .prose :not(pre)>code{padding:0 0.25rem;border:1px solid oklch(55.6% 0 0 / 15%);border-radius:0.375rem;background-color:oklch(55.6% 0 0 / 5%);color:var(--mint-foreground);font-size:0.8em}:root .prose a>code{color:inherit}:root [data-component-part=\"tabs-list\"]{border-color:var(--mantle-separator)}:root [data-component-part=\"tab-button\"]{padding-block:0.75rem calc(0.75rem - 2px);border-bottom-width:3px;color:var(--mantle-text-gray-600);font-weight:500;line-height:1.25rem}:root [data-component-part=\"tab-button\"]:hover{border-color:transparent;color:var(--mint-foreground)}:root [data-component-part=\"tab-button\"][data-active=\"true\"]{border-color:var(--mint-foreground);color:var(--mint-foreground)}:root .tab-container>div>.prose>:last-child{margin-bottom:0}:root .prose table{border:1px solid var(--mantle-card-border);border-collapse:separate;border-spacing:0;border-radius:0.5rem;background-color:var(--mantle-card-bg)}:root .prose table th{height:2.75rem;padding:0 0.75rem;border-bottom:1px solid var(--mantle-card-border-muted);background-color:var(--mantle-base-bg);color:var(--mantle-text-muted);font-size:1rem;font-weight:500;line-height:1.75rem;vertical-align:middle}:root .prose table th:first-child{border-top-left-radius:calc(0.5rem - 1px)}:root .prose table th:last-child{border-top-right-radius:calc(0.5rem - 1px)}:root .prose table td{padding:0.75rem;border-bottom:0;color:var(--mantle-text-body);font-size:1rem;line-height:1.75rem}:root .prose table tbody tr{border-bottom:0}:root .prose table tbody tr+tr>td{border-top:1px solid var(--mantle-card-border-muted)}:root .card{border-color:var(--mantle-card-border);border-radius:0.375rem;background-color:var(--mantle-card-bg)}:root .card [data-component-part=\"card-content-container\"]{padding:1.5rem}:root .card [data-component-part=\"card-title\"]{font-weight:500}:root .accordion-group{border-width:1px 0;border-color:var(--mantle-separator);border-radius:0}:root details.accordion{border-width:0;border-radius:0;background-color:transparent}:root details.accordion:not(.accordion-group>details){border-block:1px solid var(--mantle-separator)}:root .accordion [data-component-part=\"accordion-button\"]{padding:1rem 0;gap:1rem;background-color:transparent}:root .accordion [data-component-part=\"accordion-title\"]{color:var(--mint-foreground)}:root .accordion [data-component-part=\"accordion-caret-right\"]{order:1;background-color:var(--mantle-text-muted);mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E\") center / contain no-repeat;transition:transform 200ms ease-out}:root .accordion [data-component-part=\"accordion-caret-right\"] svg{display:none}:root details.accordion[open]>summary [data-component-part=\"accordion-caret-right\"]{transform:rotate(180deg)}:root .accordion [data-component-part=\"accordion-content\"]{padding:0 0 1rem}:root #sidebar li>a{border-radius:0.375rem}"}],"page":{"pagePath":"gateway/edges","slug":"/gateway/edges","pageMetadata":{"title":"Edges (Deprecated)","sidebarTitle":"Edges","tag":"Deprecated","description":"Reference documentation for deprecated Edges feature. Edges have been sunset as of December 31st, 2025. See migration guide for alternatives.","href":"/gateway/edges"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Reference documentation for deprecated Edges feature. Edges have been sunset as of December 31st, 2025. See migration guide for alternatives.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[`Edges, Routes, Modules, Backends, and Labeled Tunnels have been deprecated since December 31st, 2025. The dashboard `,_jsx(_components.a,{href:`https://dashboard.ngrok.com/endpoints`,children:`Endpoints page`}),` no longer shows edge endpoints. If you still have edges configured, you can manage them via the Edges API (`,_jsx(_components.a,{href:`/api-reference/edgeshttps/list`,children:`HTTPS`}),`, `,_jsx(_components.a,{href:`/api-reference/edgestcp/list`,children:`TCP`}),`, `,_jsx(_components.a,{href:`/api-reference/edgestls/list`,children:`TLS`}),`).`]})}),`\n`,_jsx(Heading,{level:`2`,id:`migration-guide`,children:`Migration guide`}),`\n`,_jsx(_components.p,{children:`Edges have been replaced with new features that are both simpler and more powerful than their Edges counterparts.\nUse the following replacement guide to migrate off of Edges:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Feature`}),_jsx(_components.th,{children:`Replacement`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Edges`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/gateway/endpoints/cloud-endpoints/`,children:`Cloud Endpoints`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Modules`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/gateway/traffic-policy/actions/`,children:`Traffic Policy Actions`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Routes`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/gateway/traffic-policy/how-it-works#expressions`,children:`Traffic Policy Expressions`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Labeled Tunnels`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/gateway/endpoints/internal-endpoints/`,children:`Internal Endpoints`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Tunnel Group Backend`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/gateway/traffic-policy/actions/forward-internal/`,children:`Forward Internal Action`}),` and `,_jsx(_components.a,{href:`/gateway/endpoints/endpoint-pooling/`,children:`Endpoint Pools`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`HTTP Response Backends`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/gateway/traffic-policy/actions/custom-response`,children:`Custom Response Traffic Policy Action`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Failover Backends`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/gateway/traffic-policy/actions/forward-internal/#on-error`,children:`Forward Internal Action`}),`’s `,_jsx(_components.code,{children:`on_error`}),` property`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Weighted Backends`})}),_jsx(_components.td,{children:_jsxs(_components.a,{href:`/gateway/traffic-policy/macros/#randdouble---double`,children:[_jsx(_components.code,{children:`rand.double()`}),` Traffic Policy Macro`]})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Load Balancing`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/gateway/endpoints/endpoint-pooling/`,children:`Endpoint Pools`})})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"css-variables","dark":"css-variables"}},"config":{},"pageMetadata":{"title":"Edges (Deprecated)","sidebarTitle":"Edges","tag":"Deprecated","description":"Reference documentation for deprecated Edges feature. Edges have been sunset as of December 31st, 2025. See migration guide for alternatives.","href":"/gateway/edges"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Migration guide","slug":"migration-guide","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/ngrok/05d9da4b27f4fed8/redirect-to-ngrok.js","/docs/_mintlify/custom/ngrok/cabe0d94bdb3d370/persist-query-params.js","/docs/_mintlify/custom/ngrok/52bc6b535db9c274/definition-wrapper.js","/docs/_mintlify/custom/ngrok/6167f7a3c0c9913f/consent.js"],"subdomain":"ngrok","siteName":"ngrok documentation","title":"Edges (Deprecated) - ngrok documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T22:25:50.445Z","originalFileLocation":"gateway/edges.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Reference documentation for deprecated Edges feature. Edges have been sunset as of December 31st, 2025. See migration guide for alternatives.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ngrok documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Edges (Deprecated) - ngrok documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reference documentation for deprecated Edges feature. Edges have been sunset as of December 31st, 2025. See migration guide for alternatives.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ngrok documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://ngrok.com/docs/gateway/edges\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ngrok.mintlify.site/docs/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Edges+%28Deprecated%29\u0026amp;description=Reference+documentation+for+deprecated+Edges+feature.+Edges+have+been+sunset+as+of+December+31st%2C+2025.+See+migration+guide+for+alternatives.\u0026amp;theme=7e270833a601ca6e053d019e\u0026amp;signature=8c4673c909c25afb21914476b344f0a3fb80e4a83d6ff55fe05187de437ffc63\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Edges (Deprecated) - ngrok documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reference documentation for deprecated Edges feature. Edges have been sunset as of December 31st, 2025. See migration guide for alternatives.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ngrok.mintlify.site/docs/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Edges+%28Deprecated%29\u0026amp;description=Reference+documentation+for+deprecated+Edges+feature.+Edges+have+been+sunset+as+of+December+31st%2C+2025.+See+migration+guide+for+alternatives.\u0026amp;theme=7e270833a601ca6e053d019e\u0026amp;signature=8c4673c909c25afb21914476b344f0a3fb80e4a83d6ff55fe05187de437ffc63\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/ngrok/EDFj7szN2_Vn64sM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ngrok documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0078C4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://ngrok.com/docs/gateway/edges\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/gateway/edges.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ngrok documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"ngrok documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/gateway/edges.md","siteName":"ngrok documentation","nav":{"global":null,"tabs":[{"tab":"Start","anchors":[{"anchor":"Start","icon":"house","pages":[{"group":"Start Here","pages":[{"title":"Get Started with ngrok","mode":"wide","href":"/start"},{"title":"What is ngrok?","href":"/about/index"}]},{"group":"Help","pages":[{"title":"ngrok FAQ","sidebarTitle":"FAQ","href":"/faq/index"},{"title":"Glossary of Terms","sidebarTitle":"Glossary","href":"/glossary"}]}]},{"anchor":"Gateway","icon":"https://mintlify.s3.us-west-1.amazonaws.com/ngrok/img/icons/gateway.svg","href":"/gateway/overview"},{"anchor":"AI Gateway","icon":"https://mintlify.s3.us-west-1.amazonaws.com/ngrok/img/icons/ai-gateway.svg","href":"/ai-gateway/overview"},{"anchor":"Share Localhost","icon":"https://mintlify.s3.us-west-1.amazonaws.com/ngrok/img/icons/share-localhost.svg","href":"/share-localhost/overview"}]},{"tab":"Gateway","anchors":[{"anchor":"Gateway","icon":"https://mintlify.s3.us-west-1.amazonaws.com/ngrok/img/icons/gateway.svg","pages":[{"group":"Getting Started","pages":[{"title":"Gateway Overview","sidebarTitle":"Overview","icon":"house","href":"/gateway/overview"},{"title":"CLI Quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/gateway/endpoints/agent-cli-quickstart"},{"title":"How Does ngrok's Gateway Work?","sidebarTitle":"How It Works","icon":"gears","href":"/gateway/how-it-works"},{"title":"Points of Presence","icon":"globe","href":"/gateway/points-of-presence"}]},{"group":"Use Cases","pages":[{"group":"API Gateway","pages":[{"title":"Get Started with ngrok's API Gateway","sidebarTitle":"Get Started","href":"/gateway/api-gateway/get-started"},{"title":"Expose an MCP Server to ChatGPT, Claude, Grok, and Cursor","sidebarTitle":"Use ngrok as an MCP Gateway","href":"/gateway/api-gateway/mcp-gateway"},{"title":"Deploy a Multicloud API Gateway","href":"/gateway/api-gateway/multicloud"},{"title":"Using Datadog","href":"/gateway/api-gateway/monitor-ngrok"}]},{"group":"Device Gateway","pages":[{"title":"Device Gateway Overview","sidebarTitle":"Overview","href":"/gateway/device-gateway/overview"},{"title":"Device Gateway Quickstart","sidebarTitle":"Quickstart","href":"/gateway/device-gateway/quickstart"},{"title":"Device Gateway FAQ","sidebarTitle":"FAQ","href":"/gateway/device-gateway/faq"},{"title":"Configure Secure Access to Remote IoT Devices","sidebarTitle":"Using Remote IoT Devices","href":"/gateway/device-gateway/agent"},{"group":"Guides","pages":[{"title":"Configure Remote Connectivity to Your IoT Devices in the Field","sidebarTitle":"Cloud-to-Device","href":"/gateway/device-gateway/cloud-to-device"},{"title":"Secure Remote Access with ngrok for SSH and RDP","sidebarTitle":"Secure Remote Access","href":"/gateway/device-gateway/remote-access"},{"title":"Private Connectivity to Remote IoT Devices with ngrokd","sidebarTitle":"Private Connectivity","href":"/gateway/device-gateway/private-connectivity"},{"title":"Fleet Management","sidebarTitle":"Fleet Management","href":"/gateway/device-gateway/fleet-management"},{"title":"Connect to Devices Using the Python SDK","sidebarTitle":"Connect via SDKs","href":"/gateway/device-gateway/sdk"}]},{"group":"Concepts","pages":[{"title":"Device Security","href":"/gateway/device-gateway/security"},{"title":"Secure Tunnels for Devices","sidebarTitle":"Secure Tunnels","href":"/gateway/device-gateway/tunnels"},{"title":"Traffic Policy for Devices","sidebarTitle":"Traffic Policy","href":"/gateway/device-gateway/traffic-policy"}]},{"group":"Installation Guides","pages":[{"title":"Install ngrok on Linux","sidebarTitle":"Linux","href":"/gateway/device-gateway/linux"},{"title":"Install ngrok on Linux (ARM64)","sidebarTitle":"Linux (ARM64)","href":"/gateway/device-gateway/arm64"},{"title":"Install ngrok on Raspberry Pi","sidebarTitle":"Raspberry Pi","href":"/gateway/device-gateway/raspberry-pi"},{"title":"Install ngrok on Raspberry Pi OS (Formerly Raspbian)","sidebarTitle":"Raspberry Pi OS (Raspbian)","href":"/gateway/device-gateway/raspbian"},{"title":"Install ngrok on a Remote Windows Device","sidebarTitle":"Windows","href":"/gateway/device-gateway/windows"}]}]},{"group":"Site-to-Site Connectivity","pages":[{"title":"Site-to-Site Connectivity Overview","sidebarTitle":"Overview","href":"/gateway/site-to-site-connectivity/overview"},{"title":"Site-to-Site Connectivity Quickstart","sidebarTitle":"Quickstart","href":"/gateway/site-to-site-connectivity/quickstart"},{"title":"Connect to Your Customer's Network","sidebarTitle":"Tutorial","href":"/gateway/site-to-site-connectivity/index"},{"title":"Site-to-Site Connectivity FAQ","sidebarTitle":"FAQ","href":"/gateway/site-to-site-connectivity/faq"},{"title":"Why Your Vendor Uses ngrok","href":"/gateway/site-to-site-connectivity/end-customers"},{"group":"Security","pages":[{"title":"Agent TLS Termination","sidebarTitle":"End-to-End Encryption","href":"/gateway/site-to-site-connectivity/agent-tls-termination"},{"title":"Region and IP Resolution","sidebarTitle":"Pin Traffic to Regions","href":"/gateway/site-to-site-connectivity/region-ip-resolution"},{"title":"Authtoken ACLs","sidebarTitle":"Restrict Agent Permissions","href":"/gateway/site-to-site-connectivity/authtoken-acls"}]},{"group":"Reliability","pages":[{"title":"Install ngrok as a Background Service","sidebarTitle":"Run ngrok in the Background","href":"/gateway/site-to-site-connectivity/background-service"},{"title":"Configure Active-Active Agent Redundancy","sidebarTitle":"Eliminate Single Points of Failure","href":"/gateway/site-to-site-connectivity/redundant-agents"},{"title":"Traffic Events and Log Export","sidebarTitle":"Monitor Agent Traffic","href":"/gateway/site-to-site-connectivity/traffic-events"},{"title":"Multi-Region Failover","sidebarTitle":"Automatic Failover","href":"/gateway/site-to-site-connectivity/multi-region-failover"}]},{"group":"Private Addressability","pages":[{"title":"Securely Connect to Remote Customer Networks from Your K8s Cluster","sidebarTitle":"Connect From Kubernetes","href":"/gateway/site-to-site-connectivity/customer-networks"},{"title":"Private Connectivity to Remote Customer Networks with ngrokd","sidebarTitle":"Connect from Your Non-k8s Environment","href":"/gateway/site-to-site-connectivity/non-k8s-environment"}]},{"group":"Production Ready","pages":[{"title":"Set Up a Custom Connect URL","sidebarTitle":"White-Label Agent Connections","href":"/gateway/site-to-site-connectivity/custom-connect-url"},{"sidebarTitle":"Use the Agent in Your Apps","title":"Create Site-to-Site Connectivity Using SDKs","href":"/gateway/site-to-site-connectivity/agent-sdks"},{"sidebarTitle":"Manage With APIs \u0026 Terraform","title":"Manage ngrok Programmatically With Terraform and API Client Libraries","href":"/gateway/site-to-site-connectivity/apis-terraform"},{"sidebarTitle":"Agent Packaging \u0026 Distribution","title":"Agent Packaging and Distribution","href":"/gateway/site-to-site-connectivity/agent-packaging"}]}]},{"group":"Webhooks to On-Prem","pages":[{"title":"Webhooks to On-Prem","sidebarTitle":"Overview","href":"/gateway/webhooks-to-on-prem/overview"},{"title":"Webhooks to On-Prem Quickstart","sidebarTitle":"Quickstart","href":"/gateway/webhooks-to-on-prem/quickstart"},{"title":"Webhooks to On-Prem Full Tutorial","sidebarTitle":"Tutorial","href":"/gateway/webhooks-to-on-prem/tutorial"},{"title":"Send GitHub Webhooks to On-Prem Jenkins Securely","sidebarTitle":"GitHub to Jenkins","href":"/gateway/webhooks-to-on-prem/github-to-jenkins"},{"title":"Send GitHub Webhooks to On-Prem Argo CD Securely","sidebarTitle":"GitHub to Argo CD","href":"/gateway/webhooks-to-on-prem/github-to-argo-cd"}]},{"group":"Security Best Practices","pages":[{"title":"Best Security Practices for Developer Productivity","sidebarTitle":"Get Started","href":"/gateway/security-dev-productivity/index"},{"title":"Security Quick Wins","href":"/gateway/security-dev-productivity/securing-your-tunnels"},{"title":"Setting Up HIPAA-Compliant ngrok Services","sidebarTitle":"HIPAA Compliance","href":"/gateway/security-dev-productivity/hipaa-compliance"},{"title":"Secure Your Applications with OAuth 2.0","sidebarTitle":"Adding OAuth 2.0 to Endpoints","href":"/gateway/identity-aware-proxy/securing-with-oauth"},{"title":"Secure Remote Access with ngrok for SSH and RDP","sidebarTitle":"SSH \u0026 RDP Remote Access","href":"/gateway/ssh-rdp/index"},{"title":"Running ngrok Behind a Corporate Firewall","sidebarTitle":"Corporate Firewalls","href":"/gateway/running-behind-firewalls"}]}]},{"group":"Examples","pages":[{"title":"Gateway Examples","sidebarTitle":"Overview","href":"/gateway/examples"},{"group":"Secure and Control Access","expanded":false,"pages":[{"title":"Support Multiple Authentication Methods with Traffic Policy","sidebarTitle":"IP Restrictions or Basic Auth","href":"/gateway/examples/ip-restrictions-basic-auth"},{"title":"Secure Admin Dashboards","sidebarTitle":"Lock Down Your Admin Dashboards","href":"/gateway/examples/lock-admin-dashboards"},{"title":"Create Secure Public Developer Environments","sidebarTitle":"Secure Developer Environments","href":"/gateway/examples/secure-developer-environments"},{"title":"Validate Requests Against Identity Service","sidebarTitle":"Validate Against Identity Service","href":"/gateway/examples/validate-requests-identity"}]},{"group":"Route and Shape Traffic","expanded":false,"pages":[{"title":"Implement the 'Front Door' Pattern","sidebarTitle":"The Front Door Pattern","href":"/gateway/examples/front-door-pattern"},{"title":"Multiplex to Internal Services from a Single Domain","sidebarTitle":"Multiplex to Internal Services","href":"/gateway/examples/multiplex"},{"title":"Microservices API Gateway","href":"/gateway/examples/microservices-gateway"},{"title":"Deploy Custom Error Pages","sidebarTitle":"Custom Error Pages","href":"/gateway/examples/custom-error-pages"},{"title":"Intercept and Rewrite Headers in HTTP Redirect Responses","sidebarTitle":"Intercept and Rewrite Headers","href":"/gateway/examples/rewrite-headers-redirects"},{"title":"Route API and App Traffic by User Agent","sidebarTitle":"Route by User Agent","href":"/gateway/examples/route-api-app-traffic-user-agent"},{"title":"Route to Endpoints by Geography","href":"/gateway/examples/route-by-geography"},{"title":"Route to Services Based on OIDC Authentication","sidebarTitle":"Route by OIDC","href":"/gateway/examples/route-by-oidc"},{"title":"Offload Analytics to a Self-Hosted Service","sidebarTitle":"Offload Analytics","href":"/gateway/examples/offload-analytics"},{"title":"Pre-Tier Requests by IP Address","sidebarTitle":"Pre-Tier Requests","href":"/gateway/examples/pre-tier-requests"}]},{"group":"Connect Apps and Services","expanded":false,"pages":[{"title":"Database Gateway","href":"/gateway/examples/database-gateway"},{"title":"Webhook Gateway","href":"/gateway/examples/webhook-gateway"},{"title":"Self-Hosted PaaS Alternative Gateway","href":"/gateway/examples/paas-alternative-gateway"},{"title":"Agent-Assisted Gateway","href":"/gateway/examples/agent-assisted-gateway"},{"title":"Use a Local LLM in Cursor with Ollama","sidebarTitle":"Local LLM in Cursor","href":"/gateway/examples/cursor-local-llm"},{"title":"Secure Your Public Minecraft Server","sidebarTitle":"Secure Minecraft Server","href":"/gateway/examples/minecraft"},{"title":"Securely Put Your Self-Hosted n8n Workflows Online","sidebarTitle":"Grant Access to Your n8n Workflows","href":"/gateway/examples/n8n"},{"title":"Expose and Secure Your Self-Hosted Odoo Instance","href":"/gateway/examples/odoo"},{"title":"Ollama Remote Access: Expose and Secure Your Ollama API","sidebarTitle":"Expose Ollama API","href":"/gateway/examples/ollama"},{"title":"Accelerate and Secure Your WordPress Installation","sidebarTitle":"Secure Wordpress Installations","href":"/gateway/examples/wordpress"}]},{"group":"Ship Changes Safely","expanded":false,"pages":[{"title":"Switch Traffic Between Blue-Green Deployments","sidebarTitle":"Blue-Green Deployments","href":"/gateway/examples/blue-green-deployments"},{"title":"Distribute Traffic Between Canary Deployments","sidebarTitle":"Canary Deployments","href":"/gateway/examples/canary-deployments"},{"title":"Access CI/CD Deploy Previews on Secure URLs","sidebarTitle":"Ephemeral Workloads","href":"/gateway/examples/ephemeral-workloads"},{"title":"Deploy a Consistent Maintenance Message with Traffic Policy","sidebarTitle":"Maintenance Mode","href":"/gateway/examples/maintenance-mode"}]}]},{"group":"Connectivity","pages":[{"group":"Endpoints","pages":[{"title":"Endpoints Overview","sidebarTitle":"Overview","href":"/gateway/endpoints/index"},{"group":"Agent Endpoints","pages":[{"title":"Agent Endpoints","sidebarTitle":"Overview","href":"/gateway/endpoints/agent-endpoints"},{"title":"Agent Endpoint Protocols","sidebarTitle":"Protocols","href":"/gateway/endpoints/protocols"},{"title":"HTTP/S Agent Endpoints","sidebarTitle":"HTTP/S Endpoints","href":"/gateway/endpoints/http"},{"title":"TLS Agent Endpoints","sidebarTitle":"TLS Endpoints","href":"/gateway/endpoints/tls"},{"title":"TCP Agent Endpoints","sidebarTitle":"TCP Endpoints","href":"/gateway/endpoints/tcp"},{"title":"Endpoint Bindings","sidebarTitle":"Bindings","href":"/gateway/endpoints/bindings"},{"title":"Public Agent Endpoints","sidebarTitle":"Public Endpoints","href":"/gateway/endpoints/public-endpoints"},{"title":"Internal Agent Endpoints","sidebarTitle":"Internal Endpoints","href":"/gateway/endpoints/internal-endpoints"},{"sidebarTitle":"Kubernetes Endpoints","title":"Kubernetes Agent Endpoints","href":"/gateway/endpoints/kubernetes-endpoints"}]},{"group":"Cloud Endpoints","pages":[{"title":"Cloud Endpoints","sidebarTitle":"Overview","href":"/gateway/endpoints/cloud-endpoints/index"},{"title":"Cloud Endpoints Quickstart","sidebarTitle":"Quickstart","href":"/getting-started/cloud-endpoints-quickstart"},{"title":"Cloud Endpoint Protocols","sidebarTitle":"Protocols","href":"/gateway/endpoints/cloud-endpoints/protocols"},{"title":"HTTP/S Cloud Endpoints","sidebarTitle":"HTTP/S Endpoints","href":"/gateway/endpoints/cloud-endpoints/http"},{"title":"TLS Cloud Endpoints","sidebarTitle":"TLS Endpoints","href":"/gateway/endpoints/cloud-endpoints/tls"},{"title":"TCP Cloud Endpoints","sidebarTitle":"TCP Endpoints","href":"/gateway/endpoints/cloud-endpoints/tcp"},{"title":"Endpoint Bindings","sidebarTitle":"Bindings","href":"/gateway/endpoints/cloud-endpoints/bindings"},{"title":"Public Cloud Endpoints","sidebarTitle":"Public Endpoints","href":"/gateway/endpoints/cloud-endpoints/public-endpoints"},{"sidebarTitle":"Internal Endpoints","title":"Internal Cloud Endpoints","href":"/gateway/endpoints/cloud-endpoints/internal-endpoints"},{"sidebarTitle":"Kubernetes Endpoints","title":"Kubernetes Cloud Endpoints","href":"/gateway/endpoints/cloud-endpoints/kubernetes-endpoints"},{"title":"How to Change a Cloud Endpoint Domain","href":"/gateway/endpoints/cloud-endpoints/change-domain-endpoint"},{"title":"Forwarding Traffic to and Load Balancing Internal Endpoints with Cloud Endpoints","sidebarTitle":"Forwarding Traffic and Load Balancing","href":"/gateway/endpoints/cloud-endpoints/forwarding-and-load-balancing"},{"title":"Path-Based Routing and Policy Decentralization with Cloud Endpoints","sidebarTitle":"Path-based Routing","href":"/gateway/endpoints/cloud-endpoints/routing-and-policy-decentralization"}]},{"group":"Pooling \u0026 Load Balancing","pages":[{"title":"Endpoint Pooling","sidebarTitle":"Overview","href":"/gateway/endpoints/endpoint-pooling"},{"title":"Load Balancing Between Multiple Clouds","href":"/gateway/endpoints/load-balancing-multiple-clouds"}]}]},{"group":"Agents","root":{"title":"ngrok Agents Overview","sidebarTitle":"Overview","href":"/gateway/agent/index"},"pages":[{"title":"ngrok Agents Overview","sidebarTitle":"Overview","href":"/gateway/agent/index"},{"title":"How ngrok Agents Work","sidebarTitle":"How It Works","href":"/gateway/agent/how-it-works"},{"title":"ngrok CLI and SDK Connectivity","sidebarTitle":"Connectivity","href":"/gateway/agent/connectivity"},{"group":"CLI Setup","pages":[{"title":"Install the ngrok CLI","sidebarTitle":"Install","href":"/gateway/agent/install"},{"title":"Agent Authtokens","sidebarTitle":"Authtokens","href":"/gateway/agent/authtokens"}]},{"group":"Guides","pages":[{"title":"Expose a Service with the ngrok Agent","sidebarTitle":"Expose a Service","href":"/gateway/agent/expose-a-service"},{"title":"Run the ngrok CLI as a Service","sidebarTitle":"Run as a Service","href":"/gateway/agent/service"},{"title":"SSH Reverse Tunnel","sidebarTitle":"Reverse SSH Agent","href":"/gateway/agent/ssh-reverse-tunnel-agent"},{"title":"CLI TLS Termination","sidebarTitle":"TLS Termination","href":"/gateway/agent/agent-tls-termination"},{"title":"ngrok CLI Web Inspection Interface","sidebarTitle":"Web Inspection Interface","href":"/gateway/agent/web-inspection-interface"}]},{"group":"Configuration File","pages":[{"title":"ngrok CLI Configuration File","sidebarTitle":"Overview","href":"/gateway/agent/config/index"},{"title":"Agent Config Version 3","sidebarTitle":"Version 3","href":"/gateway/agent/config/v3"},{"title":"Agent Config Version 2","sidebarTitle":"Version 2","href":"/gateway/agent/config/v2"}]},{"group":"Account and Network Controls","pages":[{"title":"Agent API Keys","sidebarTitle":"API Keys","href":"/gateway/agent/api-keys"},{"title":"Restrict Where Agents Connect From","sidebarTitle":"IP Restrictions","href":"/gateway/agent/ip-restrictions"},{"title":"Agent Connect URLs","sidebarTitle":"Connect URLs","href":"/gateway/agent/connect-url"}]},{"group":"Reference","pages":[{"title":"ngrok Agent Command Line Interface (CLI)","sidebarTitle":"CLI","href":"/gateway/agent/cli"},{"title":"ngrok CLI API Commands","sidebarTitle":"CLI API Commands","href":"/gateway/agent/cli-api"},{"title":"ngrok CLI API","sidebarTitle":"API","href":"/gateway/agent/api"},{"title":"ngrok Agent Changelog","sidebarTitle":"Changelog","href":"/gateway/agent/changelog"}]},{"group":"Versions","pages":[{"title":"Upgrade to ngrok Agent v3","sidebarTitle":"Upgrade to v3","href":"/gateway/agent/upgrade-v2-v3"},{"title":"ngrok Agent Version Support Policy","sidebarTitle":"Version Support Policy","href":"/gateway/agent/version-support-policy"},{"title":"Agent Version Deprecation Notices","sidebarTitle":"Deprecation Notices","href":"/gateway/agent/deprecation-notices"}]}]},{"group":"Kubernetes Operators","pages":[{"title":"Kubernetes Operator","sidebarTitle":"Overview","href":"/gateway/k8s/index"},{"title":"How the ngrok Kubernetes Operator Works","sidebarTitle":"How It Works","href":"/gateway/k8s/how-it-works"},{"title":"Kubernetes Operator Architecture","sidebarTitle":"Architecture","href":"/gateway/k8s/installation/architecture"},{"title":"Kubernetes Operator Release Process","sidebarTitle":"Releasing","href":"/gateway/k8s/releasing"},{"group":"Quickstarts","pages":[{"title":"Kubernetes Ingress Quickstart","sidebarTitle":"Ingress","href":"/getting-started/kubernetes/ingress"},{"title":"Kubernetes Custom Resources Quickstart","sidebarTitle":"Custom Resources","href":"/getting-started/kubernetes/crds"},{"title":"Kubernetes Gateway API Quickstart","sidebarTitle":"Gateway API","href":"/getting-started/kubernetes/gateway-api"},{"title":"Kubernetes Endpoints Quickstart","sidebarTitle":"Endpoints","href":"/getting-started/kubernetes/endpoints"}]},{"group":"Installation","pages":[{"title":"ngrok Kubernetes Operator Network Egress Requirements","sidebarTitle":"Network Egress","href":"/gateway/k8s/installation/network-egress"},{"title":"How to Update the ngrok Kubernetes Operator","sidebarTitle":"Updates \u0026 Upgrades","href":"/gateway/k8s/installation/update"},{"title":"Kubernetes Operator Helm Configuration","sidebarTitle":"Helm Configuration","href":"/gateway/k8s/installation/helm"},{"title":"Monitoring the Kubernetes Operator","sidebarTitle":"Observability","href":"/gateway/k8s/installation/observability"},{"title":"Uninstalling the ngrok Kubernetes Operator","sidebarTitle":"Uninstall","href":"/gateway/k8s/installation/uninstall"}]},{"group":"Load Balancing","pages":[{"title":"Load Balancing for Kubernetes Services","sidebarTitle":"For Kubernetes Services","href":"/gateway/k8s/load-balancing/load-balancing-kubernetes"},{"title":"Load Balancing Between Multiple Kubernetes Clusters","sidebarTitle":"For Kubernetes Clusters","href":"/gateway/k8s/load-balancing/load-balancing-kubernetes-clusters"}]},{"group":"How-to","pages":[{"title":"Controlling Traffic Flow with Request Routing","sidebarTitle":"Request Routing","href":"/gateway/k8s/guides/how-to/request-routing"},{"title":"TLS Routing","href":"/gateway/k8s/guides/how-to/tls-routing"},{"title":"TCP Routing","href":"/gateway/k8s/guides/how-to/tcp-routing"},{"title":"Customizing Requests with Header Manipulation","sidebarTitle":"Manipulate Headers","href":"/gateway/k8s/guides/how-to/manipulate-headers"},{"title":"Managing Traffic with Redirects","sidebarTitle":"Redirects","href":"/gateway/k8s/guides/how-to/redirects"},{"title":"Customizing Request Routing with URL Rewriting","sidebarTitle":"Rewrite URL","href":"/gateway/k8s/guides/how-to/rewrite-url"},{"title":"Serving Static Responses with Custom Response Policies","sidebarTitle":"Custom/Static Response","href":"/gateway/k8s/guides/how-to/static-response"},{"title":"Managing TLS Termination for Secure Connections","sidebarTitle":"Terminate TLS","href":"/gateway/k8s/guides/how-to/terminate-tls"},{"title":"Securing Upstream Connections with TLS and Mutual TLS (mTLS)","sidebarTitle":"Upstream TLS","href":"/gateway/k8s/guides/how-to/upstream-tls"},{"title":"Protecting Services with Rate Limiting","sidebarTitle":"Rate Limiting","href":"/gateway/k8s/guides/how-to/rate-limiting"},{"title":"Protecting Your Endpoints by Denying Unwanted Traffic","sidebarTitle":"Deny Requests","href":"/gateway/k8s/guides/how-to/deny-requests"},{"title":"Securing Endpoints with Basic Authentication","sidebarTitle":"Basic Auth","href":"/gateway/k8s/guides/how-to/basic-auth"},{"title":"Securing Your Endpoints with OAuth Authentication","sidebarTitle":"OAuth","href":"/gateway/k8s/guides/how-to/oauth"},{"title":"Authenticating Users with OpenID Connect (OIDC)","sidebarTitle":"OpenID Connect (OIDC)","href":"/gateway/k8s/guides/how-to/oidc"},{"title":"Securing Your Endpoints with JWT Validation","sidebarTitle":"JWT Validation","href":"/gateway/k8s/guides/how-to/jwt-validation"},{"title":"Controlling Access with IP Restrictions","sidebarTitle":"Restrict IPs","href":"/gateway/k8s/guides/how-to/restrict-ips"},{"title":"Restricting Access by Kubernetes Pod Identity","sidebarTitle":"Pod Identity Variables","href":"/gateway/k8s/guides/how-to/pod-identity"},{"title":"Circuit Breaking for System Reliability","sidebarTitle":"Circuit Breaking","href":"/gateway/k8s/guides/how-to/circuit-breaking"},{"title":"Improving Performance with Response Compression","sidebarTitle":"Compress Responses","href":"/gateway/k8s/guides/how-to/compress-response"}]},{"group":"Custom Resources","pages":[{"title":"Kubernetes Operator Custom Resources (CRDs)","href":"/gateway/k8s/crds/index"},{"title":"AgentEndpoint Custom Resource","sidebarTitle":"AgentEndpoint","href":"/gateway/k8s/crds/agentendpoint"},{"title":"CloudEndpoint Custom Resource","sidebarTitle":"CloudEndpoint","href":"/gateway/k8s/crds/cloudendpoint"},{"title":"NgrokTrafficPolicy Custom Resource","sidebarTitle":"NgrokTrafficPolicy","href":"/gateway/k8s/crds/ngroktrafficpolicy"},{"title":"BoundEndpoint Custom Resource","sidebarTitle":"BoundEndpoint","href":"/gateway/k8s/crds/boundendpoint"},{"title":"Domain Custom Resource","sidebarTitle":"Domain","href":"/gateway/k8s/crds/domain"},{"title":"KubernetesOperator Custom Resource","sidebarTitle":"KubernetesOperator","href":"/gateway/k8s/crds/kubernetesoperator"},{"title":"IPPolicy Custom Resource","sidebarTitle":"IPPolicy","href":"/gateway/k8s/crds/ippolicy"}]},{"group":"Guides","pages":[{"title":"Running Multiple ngrok Operator Installations","sidebarTitle":"Multiple Installations","href":"/gateway/k8s/guides/multiple-installs"},{"title":"Running a Local Kubernetes Cluster","sidebarTitle":"Local Cluster Options","href":"/gateway/k8s/guides/local-cluster"},{"title":"Using ngrok Custom Resources","sidebarTitle":"Using CRDs","href":"/gateway/k8s/guides/using-crds"},{"title":"How to Create Endpoints in the ngrok Kubernetes Operator","sidebarTitle":"Endpoint Types","href":"/gateway/k8s/guides/endpoint-types"},{"title":"Binding Endpoints in the ngrok Kubernetes Operator","sidebarTitle":"Bindings","href":"/gateway/k8s/guides/bindings"},{"title":"Pooling Endpoints in the ngrok Kubernetes Operator","sidebarTitle":"Pooling","href":"/gateway/k8s/guides/pooling"},{"title":"Kubernetes Custom White-Label Domains","sidebarTitle":"Custom Domains","href":"/gateway/k8s/guides/custom-domain"},{"title":"Connecting to Customer Networks","href":"/gateway/k8s/guides/customer-networks"},{"title":"Projecting Local Services into Remote Clusters","sidebarTitle":"Local Projection","href":"/gateway/k8s/guides/local-projection"},{"title":"Gateway API with the ngrok Kubernetes Operator","sidebarTitle":"Using Gateway API","href":"/gateway/k8s/guides/using-gwapi"},{"title":"How the ngrok Operator Uses Ingresses","sidebarTitle":"Using Ingresses","href":"/gateway/k8s/guides/using-ingresses"},{"title":"Migrate from ingress-nginx to the ngrok Kubernetes Operator","sidebarTitle":"Migrate from ingress-nginx","href":"/gateway/k8s/guides/migrate-from-ingress-nginx"},{"title":"Custom ngrok Annotations","sidebarTitle":"Custom Annotations","href":"/gateway/k8s/guides/annotations"},{"title":"ngrok Kubernetes Operator Managed Resources","sidebarTitle":"Managed Resources","href":"/gateway/k8s/guides/managed-resources"},{"title":"Finalizers Created by the ngrok Kubernetes Operator","sidebarTitle":"Finalizers","href":"/gateway/k8s/guides/finalizers"},{"title":"Troubleshooting the ngrok Kubernetes Operator","sidebarTitle":"Troubleshooting","href":"/gateway/k8s/guides/troubleshooting"},{"title":"Exposing the Kubernetes API Server with the ngrok Operator","sidebarTitle":"Expose Kubernetes API","href":"/gateway/k8s/guides/expose-kubernetes-api"},{"title":"How the ngrok Operator Uses LoadBalancer Services","sidebarTitle":"Using LoadBalancer Services","href":"/gateway/k8s/guides/using-loadbalancers"}]}]}]},{"group":"Traffic Policy","pages":[{"title":"Traffic Policy Overview","sidebarTitle":"Overview","href":"/gateway/traffic-policy/index"},{"group":"Quickstarts","pages":[{"title":"Agent Endpoints with Traffic Policy Quickstart","sidebarTitle":"Agent Endpoints","href":"/gateway/traffic-policy/getting-started/agent-endpoints"},{"title":"Cloud Endpoints with Traffic Policy Quickstart","sidebarTitle":"Cloud Endpoints","href":"/gateway/traffic-policy/getting-started/cloud-endpoints"}]},{"title":"How Traffic Policy Works","sidebarTitle":"How It Works","href":"/gateway/traffic-policy/how-it-works"},{"group":"Concepts","pages":[{"title":"Expression Examples","sidebarTitle":"CEL Expression Examples","href":"/gateway/traffic-policy/concepts/expressions"},{"title":"Traffic Policy Actions","sidebarTitle":"Terminating Actions","href":"/gateway/traffic-policy/concepts/actions"},{"title":"Traffic Identities","href":"/gateway/traffic-policy/identities"}]},{"group":"Actions","pages":[{"title":"Traffic Policy Actions","sidebarTitle":"Overview","href":"/gateway/traffic-policy/actions/index"},{"title":"Add Headers Action","sidebarTitle":"Add Headers","href":"/gateway/traffic-policy/actions/add-headers"},{"title":"Basic Auth Action","sidebarTitle":"Basic Auth","href":"/gateway/traffic-policy/actions/basic-auth"},{"title":"Circuit Breaker Action","sidebarTitle":"Circuit Breaker","href":"/gateway/traffic-policy/actions/circuit-breaker"},{"title":"Close Connection Action","sidebarTitle":"Close Connection","href":"/gateway/traffic-policy/actions/close-connection"},{"title":"Compress Response Action","sidebarTitle":"Compress Response","href":"/gateway/traffic-policy/actions/compress-response"},{"title":"Custom Response Action","sidebarTitle":"Custom Response","href":"/gateway/traffic-policy/actions/custom-response"},{"title":"Deny Action","sidebarTitle":"Deny","href":"/gateway/traffic-policy/actions/deny"},{"title":"Forward Internal Action","sidebarTitle":"Forward Internal","href":"/gateway/traffic-policy/actions/forward-internal"},{"title":"HTTP Request Action","sidebarTitle":"HTTP Request","href":"/gateway/traffic-policy/actions/http-request"},{"title":"JWT Validation Action","sidebarTitle":"JWT Validation","href":"/gateway/traffic-policy/actions/jwt-validation"},{"title":"Log Action","sidebarTitle":"Log","href":"/gateway/traffic-policy/actions/log"},{"title":"OAuth Action","sidebarTitle":"OAuth","href":"/gateway/traffic-policy/actions/oauth"},{"title":"OpenID Connect Action","sidebarTitle":"OpenID Connect (OIDC)","href":"/gateway/traffic-policy/actions/openid-connect"},{"title":"OWASP CRS Request Action","sidebarTitle":"OWASP CRS Request","href":"/gateway/traffic-policy/actions/owasp-crs-request"},{"title":"OWASP CRS Response Action","sidebarTitle":"OWASP CRS Response","href":"/gateway/traffic-policy/actions/owasp-crs-response"},{"title":"Rate Limit Action","sidebarTitle":"Rate Limit","href":"/gateway/traffic-policy/actions/rate-limit"},{"title":"Redirect Action","sidebarTitle":"Redirect","href":"/gateway/traffic-policy/actions/redirect"},{"title":"Remove Headers Action","sidebarTitle":"Remove Headers","href":"/gateway/traffic-policy/actions/remove-headers"},{"title":"Request Body Find and Replace Action","sidebarTitle":"Request Body Find \u0026 Replace","href":"/gateway/traffic-policy/actions/request-body-find-replace"},{"title":"Response Body Find and Replace Action","sidebarTitle":"Response Body Find \u0026 Replace","href":"/gateway/traffic-policy/actions/response-body-find-replace"},{"title":"Restrict IPs Action","sidebarTitle":"Restrict IPs","href":"/gateway/traffic-policy/actions/restrict-ips"},{"title":"SAML Action","sidebarTitle":"SAML","tag":"Early Access","href":"/gateway/traffic-policy/actions/saml"},{"title":"Set Vars Action","sidebarTitle":"Set Vars","href":"/gateway/traffic-policy/actions/set-vars"},{"title":"SSE Find and Replace Action","sidebarTitle":"SSE Find \u0026 Replace","href":"/gateway/traffic-policy/actions/sse-find-replace"},{"title":"Terminate TLS Action","sidebarTitle":"Terminate TLS","href":"/gateway/traffic-policy/actions/terminate-tls"},{"title":"URL Rewrite Action","sidebarTitle":"URL Rewrite","href":"/gateway/traffic-policy/actions/url-rewrite"},{"title":"Verify Webhook Action","sidebarTitle":"Verify Webhook","href":"/gateway/traffic-policy/actions/verify-webhook"}]},{"group":"Examples","pages":[{"title":"Traffic Policy Examples","sidebarTitle":"Overview","mode":"wide","href":"/gateway/traffic-policy/examples/index"},{"title":"How to Run an A/B Test","sidebarTitle":"A/B Tests","href":"/gateway/traffic-policy/examples/a-b-tests"},{"title":"Add and Remove Headers","href":"/gateway/traffic-policy/examples/add-and-remove-headers"},{"title":"Add Authentication","href":"/gateway/traffic-policy/examples/add-authentication"},{"title":"Block Unwanted Requests","href":"/gateway/traffic-policy/examples/block-unwanted-requests"},{"title":"Filter Traffic by IP Category","href":"/gateway/traffic-policy/examples/filter-by-ip-category"},{"title":"Compress JSON Responses Example","sidebarTitle":"Compress JSON Responses","href":"/gateway/traffic-policy/examples/compress-json-responses"},{"title":"Enforce TLS Example","sidebarTitle":"Enforce TLS","href":"/gateway/traffic-policy/examples/enforce-tls"},{"title":"Event Logging Example","sidebarTitle":"Event Logging","href":"/gateway/traffic-policy/examples/event-logging"},{"title":"Using OAuth Traffic Policy on Endpoints","sidebarTitle":"OAuth Protection","href":"/gateway/traffic-policy/examples/oauth-protection"},{"title":"How to Rate Limit Traffic","sidebarTitle":"Rate Limit Requests","href":"/gateway/traffic-policy/examples/rate-limit-requests"},{"title":"Route Requests","href":"/gateway/traffic-policy/examples/route-requests"},{"title":"URL Rewrites Examples","sidebarTitle":"URL Rewrites","href":"/gateway/traffic-policy/examples/url-rewrites"},{"title":"User Agent Filtering Example","sidebarTitle":"User Agent Filtering","href":"/gateway/traffic-policy/examples/user-agent-filtering"}]},{"group":"Reference","pages":[{"title":"Traffic Policy Macros Reference","sidebarTitle":"Macros","href":"/gateway/traffic-policy/macros/index"},{"group":"Variables","pages":[{"title":"Traffic Policy Variables","sidebarTitle":"Overview","href":"/gateway/traffic-policy/variables/index"},{"title":"Action Variables","href":"/gateway/traffic-policy/variables/action"},{"title":"Connection Variables","href":"/gateway/traffic-policy/variables/connection"},{"title":"Endpoint Variables","href":"/gateway/traffic-policy/variables/endpoint"},{"title":"IP Intelligence","href":"/gateway/traffic-policy/variables/ip-intel"},{"title":"HTTP Request Variables","href":"/gateway/traffic-policy/variables/req"},{"title":"HTTP Response Variables","href":"/gateway/traffic-policy/variables/res"},{"title":"Time Variables","href":"/gateway/traffic-policy/variables/time"}]}]}]},{"group":"Observability","pages":[{"title":"Traffic Observability Overview","sidebarTitle":"Overview","href":"/obs/index"},{"group":"Traffic Inspector","root":{"title":"Traffic Inspector","sidebarTitle":"Overview","href":"/obs/traffic-inspection"},"pages":[{"title":"Traffic Inspector HTTP Requests","sidebarTitle":"HTTP Requests","href":"/obs/traffic-inspection/http-requests"},{"title":"Traffic Inspector TCP Connections","sidebarTitle":"TCP Connections","href":"/obs/traffic-inspection/tcp-connections"}]},{"group":"Log Exporting","pages":[{"title":"ngrok Events","sidebarTitle":"Overview","href":"/obs/events/index"},{"title":"Event Source Reference","href":"/obs/events/reference"}]}]},{"group":"Network","pages":[{"group":"Domains","pages":[{"title":"ngrok Domains","sidebarTitle":"Overview","href":"/gateway/domains/index"},{"title":"How to Use a Custom Domain","sidebarTitle":"Using Custom Domains","href":"/gateway/domains/custom-domains"},{"title":"Region and IP Resolution","sidebarTitle":"Region \u0026 IP Resolution","href":"/gateway/domains/region-pinning"},{"title":"TLS Termination","href":"/gateway/domains/tls-termination"},{"title":"mTLS Termination at the ngrok Edge","href":"/gateway/domains/mtls-termination"},{"title":"DDoS Protection","href":"/gateway/domains/ddos-protection"},{"title":"Global Load Balancer","href":"/gateway/domains/global-load-balancer"}]},{"group":"TCP Addresses","pages":[{"title":"IP Addresses","href":"/gateway/domains/ip-addresses"},{"title":"Dedicated IPs","tag":"Coming Soon","href":"/gateway/domains/dedicated-ips"},{"title":"TCP Addresses","href":"/gateway/domains/tcp-addresses"}]}]},{"group":"Resources","pages":[{"title":"IP Policies","sidebarTitle":"IP Policies","href":"/gateway/traffic-policy/concepts/ip-policies"},{"title":"Using Vaults and Secrets with Traffic Policy","sidebarTitle":"Vaults \u0026 Secrets","href":"/gateway/traffic-policy/secrets"},{"title":"TLS Certificates","href":"/gateway/domains/tls-certificates"}]},{"group":"Identity \u0026 Access","pages":[{"title":"Identity and Access Management Overview","sidebarTitle":"Overview","href":"/iam/index"},{"group":"Principals","pages":[{"title":"Users in ngrok Accounts","sidebarTitle":"Users","href":"/iam/users"},{"title":"Service Users","href":"/iam/service-users"}]},{"group":"Account Governance","pages":[{"title":"Single Sign-On and Provisioning to the ngrok Dashboard","sidebarTitle":"Dashboard Single Sign-On","href":"/iam/sso"},{"title":"Role-Based Access Control","sidebarTitle":"RBAC","href":"/iam/rbac"},{"title":"Account Domain Controls","href":"/iam/domain-controls"}]}]}]}]},{"tab":"AI Gateway","anchors":[{"anchor":"AI Gateway","icon":"https://mintlify.s3.us-west-1.amazonaws.com/ngrok/img/icons/ai-gateway.svg","pages":[{"title":"AI Gateway Overview","sidebarTitle":"Overview","icon":"house","href":"/ai-gateway/overview"},{"title":"AI Gateway Quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/ai-gateway/quickstart"},{"title":"How It Works","icon":"gears","href":"/ai-gateway/how-it-works"},{"title":"Model Catalog","icon":"book","href":"/ai-gateway/reference/model-catalog"},{"title":"AI Gateway FAQ","sidebarTitle":"FAQ","icon":"circle-question","href":"/ai-gateway/faq"},{"group":"Concepts","pages":[{"title":"Access Keys","href":"/ai-gateway/concepts/access-keys"},{"title":"AI Gateway Credits","sidebarTitle":"Credits","href":"/ai-gateway/concepts/credits"},{"title":"Hosted Tool Billing","href":"/ai-gateway/concepts/hosted-tools"},{"title":"AI Gateway Providers","sidebarTitle":"Providers","href":"/ai-gateway/concepts/providers"},{"title":"AI Gateway Models","sidebarTitle":"Models","href":"/ai-gateway/concepts/models"},{"title":"Open-Weight Models","href":"/ai-gateway/concepts/open-weight-models"},{"title":"Custom Providers","href":"/ai-gateway/concepts/custom-providers"},{"title":"Bring Your Own Keys","href":"/ai-gateway/concepts/bring-your-own-keys"},{"title":"AI Gateway Firewall","sidebarTitle":"Firewall","href":"/ai-gateway/concepts/firewall"}]},{"group":"Getting Started With","pages":[{"title":"Use OpenAI with the AI Gateway","sidebarTitle":"OpenAI","href":"/ai-gateway/providers/openai"},{"title":"Use Anthropic with the AI Gateway","sidebarTitle":"Anthropic","href":"/ai-gateway/providers/anthropic"},{"title":"Use OpenRouter with the AI Gateway","sidebarTitle":"OpenRouter","href":"/ai-gateway/providers/openrouter"},{"title":"Use Google Gemini with the AI Gateway","sidebarTitle":"Google","href":"/ai-gateway/providers/google"},{"title":"Use Groq with the AI Gateway","sidebarTitle":"Groq","href":"/ai-gateway/providers/groq"},{"title":"Use DeepSeek with the AI Gateway","sidebarTitle":"DeepSeek","href":"/ai-gateway/providers/deepseek"},{"title":"Use xAI with the AI Gateway","sidebarTitle":"xAI","href":"/ai-gateway/providers/xai"},{"title":"Use Mistral AI with the AI Gateway","sidebarTitle":"Mistral AI","href":"/ai-gateway/providers/mistral"},{"title":"Use Moonshot AI with the AI Gateway","sidebarTitle":"Moonshot AI","href":"/ai-gateway/providers/moonshotai"},{"title":"Use Z.ai with the AI Gateway","sidebarTitle":"Z.ai","href":"/ai-gateway/providers/z-ai"},{"title":"Use QwenCloud with the AI Gateway","sidebarTitle":"QwenCloud","href":"/ai-gateway/providers/qwencloud"},{"title":"Use MiniMax with the AI Gateway","sidebarTitle":"MiniMax","href":"/ai-gateway/providers/minimax"},{"title":"Use Tencent TokenHub with the AI Gateway","sidebarTitle":"Tencent TokenHub","href":"/ai-gateway/providers/tokenhub"},{"title":"Use Typesafe AI with the AI Gateway","sidebarTitle":"Typesafe AI","href":"/ai-gateway/providers/typesafeai"},{"title":"Use Liquid AI with the AI Gateway","sidebarTitle":"Liquid AI","href":"/ai-gateway/providers/liquid"},{"title":"Use LLM API with the AI Gateway","sidebarTitle":"LLM API","href":"/ai-gateway/providers/llmapi"},{"title":"Use Hyperbolic with the AI Gateway","sidebarTitle":"Hyperbolic","href":"/ai-gateway/providers/hyperbolic"},{"title":"Use InceptionLabs with the AI Gateway","sidebarTitle":"InceptionLabs","href":"/ai-gateway/providers/inceptionlabs"},{"title":"Use Inference.net with the AI Gateway","sidebarTitle":"Inference.net","href":"/ai-gateway/providers/inference-net"},{"title":"Connect Ollama to the AI Gateway","sidebarTitle":"Ollama","href":"/ai-gateway/custom-providers/ollama"},{"title":"Connect LM Studio to the AI Gateway","sidebarTitle":"LM Studio","href":"/ai-gateway/custom-providers/lm-studio"},{"title":"Connect vLLM to the AI Gateway","sidebarTitle":"vLLM","href":"/ai-gateway/custom-providers/vllm"},{"title":"Connect Azure OpenAI to the AI Gateway","sidebarTitle":"Azure OpenAI","href":"/ai-gateway/custom-providers/azure-openai"}]},{"group":"SDKs","pages":[{"title":"Connect SDKs to the AI Gateway","sidebarTitle":"Overview","href":"/ai-gateway/sdks/index"},{"title":"Use the OpenAI SDK with the AI Gateway","sidebarTitle":"OpenAI SDK","href":"/ai-gateway/sdks/openai"},{"title":"Use the Anthropic SDK with the AI Gateway","sidebarTitle":"Anthropic SDK","href":"/ai-gateway/sdks/anthropic"},{"title":"Google Gen AI SDK","href":"/ai-gateway/sdks/google"},{"title":"Vercel AI SDK","href":"/ai-gateway/sdks/vercel-ai-sdk"},{"title":"Use TanStack AI with the AI Gateway","sidebarTitle":"TanStack AI","href":"/ai-gateway/sdks/tanstack-ai"},{"title":"Use LangChain with the AI Gateway","sidebarTitle":"LangChain","href":"/ai-gateway/sdks/langchain"},{"title":"Use Other SDKs with the AI Gateway","sidebarTitle":"Other SDKs","href":"/ai-gateway/sdks/other"}]},{"group":"Agents","pages":[{"title":"Connect Coding Agents to the AI Gateway","sidebarTitle":"Overview","href":"/ai-gateway/agents/index"},{"title":"Use Claude Code with the AI Gateway","sidebarTitle":"Claude Code","href":"/ai-gateway/agents/claude-code"},{"title":"Use Codex with the AI Gateway","sidebarTitle":"Codex","href":"/ai-gateway/agents/codex"},{"title":"Use Cursor with the AI Gateway","sidebarTitle":"Cursor","href":"/ai-gateway/agents/cursor"},{"title":"Use Hermes Agent with the AI Gateway","sidebarTitle":"Hermes","href":"/ai-gateway/agents/hermes"},{"title":"Use OpenCode with the AI Gateway","sidebarTitle":"OpenCode","href":"/ai-gateway/agents/opencode"},{"title":"Use the Pi Coding Agent with the AI Gateway","sidebarTitle":"Pi","href":"/ai-gateway/agents/pi"},{"title":"Use Zed with the AI Gateway","sidebarTitle":"Zed","href":"/ai-gateway/agents/zed"},{"title":"Use Other Coding Agents with the AI Gateway","sidebarTitle":"Other Agents","href":"/ai-gateway/agents/other"}]},{"group":"Guides","pages":[{"title":"Compare Models in the Playground","href":"/ai-gateway/guides/playground"},{"title":"Choose How to Reach Providers","href":"/ai-gateway/guides/configuring-providers"},{"title":"Pay with Credits","href":"/ai-gateway/guides/pay-with-credits"},{"title":"Bring Your Own Provider Key","href":"/ai-gateway/guides/attaching-provider-keys"},{"title":"Use a Model You Run Yourself","href":"/ai-gateway/guides/use-a-model-you-run-yourself"},{"title":"Choose a Model","href":"/ai-gateway/guides/model-selection-strategies"},{"title":"Automatic Model Selection","href":"/ai-gateway/guides/automatic-model-selection"},{"title":"Configure Fallback Models","href":"/ai-gateway/guides/configure-fallback-models"},{"title":"Use Virtual Models","sidebarTitle":"Virtual Models","href":"/ai-gateway/guides/virtual-models"},{"title":"Upload and Use Files","sidebarTitle":"Files","href":"/ai-gateway/guides/files"},{"title":"Typed-Question APIs","sidebarTitle":"Decisions and System One","href":"/ai-gateway/guides/decisions-and-system-one"},{"title":"Restrict Providers and Models","href":"/ai-gateway/guides/restrict-providers-and-models"},{"title":"Set Up an Access Key Configuration","href":"/ai-gateway/guides/access-key-configurations"},{"title":"Guard Agent Tool Calls with Firewall","sidebarTitle":"Guard Agent Tool Calls","href":"/ai-gateway/guides/firewall-policies"},{"title":"Configure Provider Key Failover","href":"/ai-gateway/guides/key-selection-failover"},{"title":"Secure Your Gateway","href":"/ai-gateway/guides/securing-endpoints"},{"title":"Configure Account Settings","href":"/ai-gateway/guides/account-settings"},{"title":"Handle Gateway Errors","href":"/ai-gateway/guides/error-handling"},{"title":"Debug Failed Requests","href":"/ai-gateway/guides/debugging"},{"title":"Find Out Why a Request Failed Over","sidebarTitle":"Why a Request Failed Over","href":"/ai-gateway/guides/why-a-request-failed-over"}]},{"group":"Observability","pages":[{"title":"Observability Overview","sidebarTitle":"Overview","href":"/ai-gateway/observability/index"}]},{"group":"Examples","pages":[{"title":"Multi-Provider Failover","href":"/ai-gateway/examples/multi-provider-failover"},{"title":"Multi-Key Failover","href":"/ai-gateway/examples/multi-key-failover"},{"title":"Restrict Models and Providers","href":"/ai-gateway/examples/model-filtering"},{"title":"Securely Put Your Self-Hosted n8n Workflows Online","sidebarTitle":"Grant Access to Your n8n Workflows","href":"/gateway/examples/n8n"}]},{"group":"Reference","pages":[{"title":"Error Codes Reference","href":"/ai-gateway/reference/error-codes"},{"title":"Firewall Reference","sidebarTitle":"Firewall","href":"/ai-gateway/reference/firewall"}]},{"group":"API Reference","pages":[{"title":"AI Gateway API","sidebarTitle":"Overview","href":"/ai-gateway/api-reference/overview"},{"group":"Access Keys","pages":[{"openapi":"openapi/ai-gateway.yaml GET /access-keys","title":"List AI Gateway Access Keys","href":"/ai-gateway/api-reference/access-keys/list"},{"openapi":"openapi/ai-gateway.yaml POST /access-keys","title":"Create an AI Gateway Access Key","href":"/ai-gateway/api-reference/access-keys/create"},{"openapi":"openapi/ai-gateway.yaml GET /access-keys/{id}","title":"Get an AI Gateway Access Key","href":"/ai-gateway/api-reference/access-keys/get"},{"openapi":"openapi/ai-gateway.yaml PATCH /access-keys/{id}","title":"Update an AI Gateway Access Key","href":"/ai-gateway/api-reference/access-keys/update"},{"openapi":"openapi/ai-gateway.yaml DELETE /access-keys/{id}","title":"Delete an AI Gateway Access Key","href":"/ai-gateway/api-reference/access-keys/delete"}]},{"group":"Access Key Configurations","pages":[{"openapi":"openapi/ai-gateway.yaml GET /access-key-configurations","title":"List AI Gateway Access Key Configurations","href":"/ai-gateway/api-reference/access-key-configurations/list"},{"openapi":"openapi/ai-gateway.yaml POST /access-key-configurations","title":"Create an AI Gateway Access Key Configuration","href":"/ai-gateway/api-reference/access-key-configurations/create"},{"openapi":"openapi/ai-gateway.yaml GET /access-key-configurations/{id}","title":"Get an AI Gateway Access Key Configuration","href":"/ai-gateway/api-reference/access-key-configurations/get"},{"openapi":"openapi/ai-gateway.yaml PATCH /access-key-configurations/{id}","title":"Update an AI Gateway Access Key Configuration","href":"/ai-gateway/api-reference/access-key-configurations/update"},{"openapi":"openapi/ai-gateway.yaml DELETE /access-key-configurations/{id}","title":"Delete an AI Gateway Access Key Configuration","href":"/ai-gateway/api-reference/access-key-configurations/delete"}]},{"group":"Firewall Policies","pages":[{"openapi":"openapi/ai-gateway.yaml GET /firewall-policies","title":"List AI Gateway Firewall Policies","href":"/ai-gateway/api-reference/firewall-policies/list"},{"openapi":"openapi/ai-gateway.yaml POST /firewall-policies","title":"Create an AI Gateway Firewall Policy","href":"/ai-gateway/api-reference/firewall-policies/create"},{"openapi":"openapi/ai-gateway.yaml GET /firewall-policies/{id}","title":"Get an AI Gateway Firewall Policy","href":"/ai-gateway/api-reference/firewall-policies/get"},{"openapi":"openapi/ai-gateway.yaml PATCH /firewall-policies/{id}","title":"Update an AI Gateway Firewall Policy","href":"/ai-gateway/api-reference/firewall-policies/update"},{"openapi":"openapi/ai-gateway.yaml DELETE /firewall-policies/{id}","title":"Delete an AI Gateway Firewall Policy","href":"/ai-gateway/api-reference/firewall-policies/delete"}]},{"group":"Provider Keys","pages":[{"openapi":"openapi/ai-gateway.yaml GET /provider-keys","title":"List AI Gateway Provider Keys","href":"/ai-gateway/api-reference/provider-keys/list"},{"openapi":"openapi/ai-gateway.yaml POST /provider-keys","title":"Create an AI Gateway Provider Key","href":"/ai-gateway/api-reference/provider-keys/create"},{"openapi":"openapi/ai-gateway.yaml GET /provider-keys/{id}","title":"Get an AI Gateway Provider Key","href":"/ai-gateway/api-reference/provider-keys/get"},{"openapi":"openapi/ai-gateway.yaml PATCH /provider-keys/{id}","title":"Update an AI Gateway Provider Key","href":"/ai-gateway/api-reference/provider-keys/update"},{"openapi":"openapi/ai-gateway.yaml DELETE /provider-keys/{id}","title":"Delete an AI Gateway Provider Key","href":"/ai-gateway/api-reference/provider-keys/delete"},{"openapi":"openapi/ai-gateway.yaml POST /provider-keys/{id}/rotate","title":"Rotate an AI Gateway Provider Key","href":"/ai-gateway/api-reference/provider-keys/rotate"}]},{"group":"Providers","pages":[{"openapi":"openapi/ai-gateway.yaml GET /providers","title":"List AI Gateway Providers","href":"/ai-gateway/api-reference/providers/list"},{"openapi":"openapi/ai-gateway.yaml POST /providers","title":"Create an AI Gateway Provider","href":"/ai-gateway/api-reference/providers/create"},{"openapi":"openapi/ai-gateway.yaml GET /providers/{id}","title":"Get an AI Gateway Provider","href":"/ai-gateway/api-reference/providers/get"},{"openapi":"openapi/ai-gateway.yaml PATCH /providers/{id}","title":"Update an AI Gateway Provider","href":"/ai-gateway/api-reference/providers/update"},{"openapi":"openapi/ai-gateway.yaml DELETE /providers/{id}","title":"Delete an AI Gateway Provider","href":"/ai-gateway/api-reference/providers/delete"}]},{"group":"API Keys","pages":[{"openapi":"openapi/ai-gateway.yaml GET /api-keys","title":"List AI Gateway API Keys","href":"/ai-gateway/api-reference/api-keys/list"},{"openapi":"openapi/ai-gateway.yaml POST /api-keys","title":"Create an AI Gateway API Key","href":"/ai-gateway/api-reference/api-keys/create"},{"openapi":"openapi/ai-gateway.yaml GET /api-keys/{id}","title":"Get an AI Gateway API Key","href":"/ai-gateway/api-reference/api-keys/get"},{"openapi":"openapi/ai-gateway.yaml PATCH /api-keys/{id}","title":"Update an AI Gateway API Key","href":"/ai-gateway/api-reference/api-keys/update"},{"openapi":"openapi/ai-gateway.yaml DELETE /api-keys/{id}","title":"Delete an AI Gateway API Key","href":"/ai-gateway/api-reference/api-keys/delete"}]},{"group":"Credits","pages":[{"openapi":"openapi/ai-gateway.yaml GET /credits/balance","title":"Get Credit Balance","href":"/ai-gateway/api-reference/credits/balance"},{"openapi":"openapi/ai-gateway.yaml GET /credits/transactions","title":"List Credit Transactions","href":"/ai-gateway/api-reference/credits/transactions"},{"openapi":"openapi/ai-gateway.yaml POST /credits/checkout-session","title":"Create a Stripe Checkout Session","href":"/ai-gateway/api-reference/credits/checkout-session"},{"openapi":"openapi/ai-gateway.yaml POST /credits/purchases","title":"Start a Credit Purchase","href":"/ai-gateway/api-reference/credits/purchase-create"},{"openapi":"openapi/ai-gateway.yaml GET /credits/purchases/{id}","title":"Get a Credit Purchase","href":"/ai-gateway/api-reference/credits/purchase-get"}]},{"group":"Models","pages":[{"openapi":"openapi/ai-gateway.yaml GET /v1/models","title":"List Available AI Gateway Models","href":"/ai-gateway/api-reference/models/list"}]},{"group":"Virtual Models","pages":[{"openapi":"openapi/ai-gateway.yaml GET /virtual-models","title":"List AI Gateway Virtual Models","href":"/ai-gateway/api-reference/virtual-models/list"},{"openapi":"openapi/ai-gateway.yaml POST /virtual-models","title":"Create an AI Gateway Virtual Model","href":"/ai-gateway/api-reference/virtual-models/create"},{"openapi":"openapi/ai-gateway.yaml GET /virtual-models/{id}","title":"Get an AI Gateway Virtual Model","href":"/ai-gateway/api-reference/virtual-models/get"},{"openapi":"openapi/ai-gateway.yaml PATCH /virtual-models/{id}","title":"Update an AI Gateway Virtual Model","href":"/ai-gateway/api-reference/virtual-models/update"},{"openapi":"openapi/ai-gateway.yaml DELETE /virtual-models/{id}","title":"Delete an AI Gateway Virtual Model","href":"/ai-gateway/api-reference/virtual-models/delete"}]},{"group":"Configuration","pages":[{"openapi":"openapi/ai-gateway.yaml GET /gateway-config","title":"Get AI Gateway Configuration","href":"/ai-gateway/api-reference/gateway-config/get"},{"openapi":"openapi/ai-gateway.yaml PATCH /gateway-config","title":"Update AI Gateway Configuration","href":"/ai-gateway/api-reference/gateway-config/update"}]},{"group":"Usage","pages":[{"openapi":"openapi/ai-gateway.yaml GET /usage","title":"List AI Gateway Usage Events","href":"/ai-gateway/api-reference/usage/list"},{"openapi":"openapi/ai-gateway.yaml GET /usage/overview","title":"AI Gateway Usage Overview","href":"/ai-gateway/api-reference/usage/overview"},{"openapi":"openapi/ai-gateway.yaml GET /usage/requests/{requestId}","title":"Get the Upstream Attempts of One AI Gateway Request","href":"/ai-gateway/api-reference/usage/request-attempts"}]}]}]}]},{"tab":"Share Localhost","anchors":[{"anchor":"Share Localhost","icon":"https://mintlify.s3.us-west-1.amazonaws.com/ngrok/img/icons/share-localhost.svg","pages":[{"title":"Share Localhost Overview","sidebarTitle":"Overview","icon":"house","href":"/share-localhost/overview"},{"title":"Share Localhost Quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/share-localhost/quickstart"},{"title":"How Sharing Localhost Works","sidebarTitle":"How It Works","icon":"gears","href":"/share-localhost/tunnels"},{"group":"Use Cases","pages":[{"title":"Test Webhooks Locally","sidebarTitle":"Webhooks","href":"/share-localhost/webhooks"},{"title":"Test Mobile Apps Locally","sidebarTitle":"Mobile Apps","href":"/share-localhost/mobile"},{"title":"Share Local APIs","sidebarTitle":"API Development","href":"/share-localhost/apis"}]},{"group":"Concepts","pages":[{"title":"Inspect Traffic and Replay Requests","href":"/share-localhost/inspection"},{"title":"Add Authentication to Your Local App","sidebarTitle":"Authentication","href":"/share-localhost/auth"},{"title":"Network Security","href":"/share-localhost/security"}]},{"group":"Identity \u0026 Access","pages":[{"title":"Identity and Access Management Overview","sidebarTitle":"Overview","href":"/iam/index"},{"group":"Principals","pages":[{"title":"Users in ngrok Accounts","sidebarTitle":"Users","href":"/iam/users"},{"title":"Service Users","href":"/iam/service-users"}]},{"group":"Account Governance","pages":[{"title":"Single Sign-On and Provisioning to the ngrok Dashboard","sidebarTitle":"Dashboard Single Sign-On","href":"/iam/sso"},{"title":"Role-Based Access Control","sidebarTitle":"RBAC","href":"/iam/rbac"},{"title":"Account Domain Controls","href":"/iam/domain-controls"}]}]}]}]},{"tab":"For AI Agents","anchors":[{"anchor":"For AI Agents","icon":"robot","pages":[{"group":"For AI Agents","pages":[{"title":"ngrok for AI Agents","sidebarTitle":"Overview","href":"/for-agents"},{"group":"MCP Server","pages":[{"title":"ngrok MCP Server","sidebarTitle":"Get Started","href":"/mcp-server/index"},{"title":"ngrok MCP Server Example Prompts","sidebarTitle":"Example Prompts","href":"/mcp-server/prompts"}]},{"title":"ngrok AI Chat Agent for Slack","sidebarTitle":"AI Chat Agent (Slack)","href":"/for-agents/ai-chat-agent"},{"title":"ngrok Skills for AI Agents","sidebarTitle":"Skills","href":"/for-agents/skills"}]}]}]},{"tab":"Integrations","anchors":[{"anchor":"Integrations","icon":"cubes","pages":[{"title":"Integrations Hub","href":"/integrations"},{"group":"General Guides","pages":[{"title":"How to Access Home Assistant from Anywhere with ngrok","sidebarTitle":"Home Assistant","href":"/integrations/guides/home-assistant-with-ngrok"},{"title":"Expose an MQTT Server with ngrok","sidebarTitle":"MQTT","href":"/integrations/guides/mqtt"},{"title":"Expose Local Services Behind CGNAT Without Port Forwarding","sidebarTitle":"CGNAT","href":"/using-ngrok-with/cgnat"},{"group":"Docker","pages":[{"title":"Using ngrok with Docker","sidebarTitle":"Overview","href":"/using-ngrok-with/docker/index"},{"title":"Using ngrok with Docker Compose","sidebarTitle":"Docker Compose","href":"/using-ngrok-with/docker/compose"},{"title":"Using ngrok Docker Desktop","sidebarTitle":"Docker Desktop","href":"/using-ngrok-with/docker/desktop"}]},{"title":"Configuring GoDaddy DNS for ngrok Reserved Domains","sidebarTitle":"GoDaddy","href":"/using-ngrok-with/godaddy"},{"title":"Using ngrok with Google Colab","sidebarTitle":"Google Colab","href":"/using-ngrok-with/googleColab"},{"title":"Using ngrok with Java","sidebarTitle":"Java","href":"/using-ngrok-with/java"},{"title":"Using ngrok with Minecraft","sidebarTitle":"Minecraft","href":"/using-ngrok-with/minecraft"},{"title":"Using ngrok with OpenVPN Connect","sidebarTitle":"OpenVPN Connect","href":"/using-ngrok-with/openvpn"},{"title":"Using ngrok with Puppet","sidebarTitle":"Puppet","href":"/using-ngrok-with/puppet"},{"title":"Using ngrok with Visual Studio / IIS Express","sidebarTitle":"Visual Studio / IIS Express","href":"/using-ngrok-with/visualStudio"},{"title":"Using ngrok with VSCode","sidebarTitle":"VSCode","href":"/using-ngrok-with/vsCode"}]},{"group":"CLI Credentials","pages":[{"title":"How to Secure Your ngrok CLI Credentials with 1Password","sidebarTitle":"1Password","href":"/integrations/cli-credentials/1password"}]},{"group":"Dashboard SSO","pages":[{"title":"Configure Auth0 Single Sign-On with SAML","sidebarTitle":"Auth0 (SAML)","href":"/integrations/dashboard-sso/auth0-dashboard-sso-saml"},{"title":"Microsoft Entra ID SSO (SAML)","sidebarTitle":"Microsoft Entra ID (SAML)","href":"/integrations/dashboard-sso/microsoft-sso-saml"},{"title":"Configure Okta Single Sign-On (SSO) Using OpenID Connect (OIDC)","sidebarTitle":"Okta (OpenID Connect)","href":"/integrations/dashboard-sso/okta-dashboard-sso-oidc"},{"title":"Configure Okta Single Sign-On (SSO)","sidebarTitle":"Okta (SAML)","href":"/integrations/dashboard-sso/okta-dashboard-sso-saml"},{"title":"Automate User Provisioning via SCIM with Okta","sidebarTitle":"Okta (SCIM)","href":"/integrations/dashboard-sso/okta-dashboard-sso-scim"},{"title":"Salesforce Dashboard Single Sign-On (SSO) Using OIDC","sidebarTitle":"Salesforce (OpenID Connect)","href":"/integrations/dashboard-sso/salesforce-dashboard-sso-oidc"}]},{"group":"Databases","pages":[{"title":"Using ngrok with MySQL","sidebarTitle":"MySQL","href":"/using-ngrok-with/mysql"},{"title":"Using ngrok with MongoDB","sidebarTitle":"MongoDB","href":"/using-ngrok-with/mongodb"},{"title":"Using ngrok with PostgreSQL","sidebarTitle":"PostgreSQL","href":"/using-ngrok-with/postgresql"},{"title":"Using ngrok with Redis","sidebarTitle":"Redis","href":"/using-ngrok-with/redis"}]},{"group":"Endpoints SSO","pages":[{"title":"Auth0 Endpoint SSO (OpenID Connect)","sidebarTitle":"Auth0 (OpenID Connect)","href":"/integrations/endpoint-sso/auth0-sso-oidc"},{"title":"Azure Active Directory B2C SSO (SAML)","sidebarTitle":"Azure AD B2C (SAML)","href":"/integrations/endpoint-sso/azure-sso-saml"},{"title":"Secure Your Endpoints with Curity Identity Server SSO (OpenID Connect)","sidebarTitle":"Curity (OpenID Connect)","href":"/integrations/endpoint-sso/curity-sso-oidc"},{"title":"Secure Your Endpoints with Descope SSO (OpenID Connect)","sidebarTitle":"Descope (OpenID Connect)","href":"/integrations/endpoint-sso/descope-sso-oidc"},{"title":"Secure Your Endpoints with Descope SSO (SAML)","sidebarTitle":"Descope (SAML)","href":"/integrations/endpoint-sso/descope-sso-saml"},{"title":"Secure Your Endpoints with Frontegg SSO (OpenID Connect)","sidebarTitle":"Frontegg (OpenID Connect)","href":"/integrations/endpoint-sso/frontegg-sso-oidc"},{"title":"Secure Your Endpoints with Frontegg SSO (SAML)","sidebarTitle":"Frontegg (SAML)","href":"/integrations/endpoint-sso/frontegg-sso-saml"},{"title":"FusionAuth Endpoint SSO (OpenID Connect)","sidebarTitle":"FusionAuth (OpenID Connect)","href":"/integrations/endpoint-sso/fusionauth-sso-oidc"},{"title":"JumpCloud Endpoint SSO (OpenID Connect)","sidebarTitle":"JumpCloud (OpenID Connect)","href":"/integrations/endpoint-sso/jumpcloud-sso-oidc"},{"title":"JumpCloud SSO (SAML)","sidebarTitle":"JumpCloud (SAML)","href":"/integrations/endpoint-sso/jumpcloud-sso-saml"},{"title":"miniOrange Endpoint SSO (OpenID Connect)","sidebarTitle":"miniOrange (OpenID Connect)","href":"/integrations/endpoint-sso/miniorange-sso-oidc"},{"title":"miniOrange SSO (SAML)","sidebarTitle":"miniOrange (SAML)","href":"/integrations/endpoint-sso/miniorange-sso-saml"},{"title":"Secure Your Endpoints with Okta SSO (OpenID Connect)","sidebarTitle":"Okta (OpenID Connect)","href":"/integrations/endpoint-sso/okta-sso-oidc"},{"title":"Secure Your Endpoints with Okta SSO (SAML)","sidebarTitle":"Okta (SAML)","href":"/integrations/endpoint-sso/okta-sso-saml"},{"title":"Secure ngrok Endpoints Using Salesforce OpenID Connect","sidebarTitle":"Salesforce (OpenID Connect)","href":"/integrations/endpoint-sso/salesforce-sso-oidc"},{"title":"Wallix Trustelem Endpoint SSO (OpenID Connect)","sidebarTitle":"Wallix Trustelem (OpenID Connect)","href":"/integrations/endpoint-sso/trustelem-sso-oidc"},{"title":"Wallix Trustelem SSO (SAML)","sidebarTitle":"Wallix Trustelem (SAML)","href":"/integrations/endpoint-sso/trustelem-sso-saml"}]},{"group":"Event Destinations","pages":[{"title":"Send Network Logs from ngrok to AWS CloudWatch","sidebarTitle":"AWS CloudWatch","href":"/integrations/event-destinations/amazon-cloudwatch-event-destination"},{"title":"Send Network Logs from ngrok to AWS Firehose","sidebarTitle":"AWS Firehose","href":"/integrations/event-destinations/amazon-firehose-event-destination"},{"title":"Send Network Logs from ngrok to AWS Kinesis","sidebarTitle":"AWS Kinesis","href":"/integrations/event-destinations/amazon-kinesis-event-destination"},{"title":"Integrate with the Azure Logs Ingestion API","sidebarTitle":"Azure Logs Ingestion","href":"/integrations/event-destinations/azure-logs-event-destination"},{"title":"Send Network Logs from ngrok to Datadog","sidebarTitle":"Datadog","href":"/integrations/event-destinations/datadog-event-destination"}]},{"group":"Frameworks","pages":[{"title":"Using ngrok with FastAPI","sidebarTitle":"FastAPI","href":"/using-ngrok-with/fastAPI"},{"title":"Using ngrok with Flask","sidebarTitle":"Flask","href":"/using-ngrok-with/flask"},{"title":"Using ngrok with Laravel","sidebarTitle":"Laravel","href":"/using-ngrok-with/laravel"}]},{"group":"JWT Validation","pages":[{"title":"Enable JWT Validation with Auth0","sidebarTitle":"Auth0","href":"/integrations/jwt-validation/auth0"}]},{"group":"Kubernetes Ingress","pages":[{"title":"Kubernetes Ingress Integrations","sidebarTitle":"Overview","href":"/integrations/kubernetes-ingress/index"},{"title":"Deploy a Production API and Gateway with APIOps Using Argo CD and ngrok","sidebarTitle":"APIOps with Argo CD","href":"/integrations/kubernetes-ingress/apiops"},{"title":"Ingress to Apps Secured by Microsoft Entra ID in Kubernetes","sidebarTitle":"Microsoft Entra ID","href":"/integrations/kubernetes-ingress/azure-ad-k8s"},{"title":"Ingress to Kubernetes Apps Deployed on Azure Kubernetes Service (AKS)","sidebarTitle":"Azure Kubernetes Service","href":"/integrations/kubernetes-ingress/azure-aks-k8s"},{"title":"Kubernetes Ingress to Services in a Consul Service Mesh","sidebarTitle":"Consul Service Mesh","href":"/integrations/kubernetes-ingress/consul-k8s"},{"title":"Ingress to Kubernetes Apps on Clusters Managed by DigitalOcean","sidebarTitle":"DigitalOcean","href":"/integrations/kubernetes-ingress/digitalocean-k8s"},{"title":"Kubernetes Ingress to Services Hosted on EKS","sidebarTitle":"EKS","href":"/integrations/kubernetes-ingress/eks"},{"title":"ngrok External Secrets Integration","sidebarTitle":"External Secrets","href":"/integrations/kubernetes-ingress/external-secrets"},{"title":"Kubernetes Ingress to GKE Services with ngrok","sidebarTitle":"GKE","href":"/integrations/kubernetes-ingress/google-kubernetes-engine"},{"title":"Use ngrok's Global Server Load Balancing with DigitalOcean","sidebarTitle":"Global Server Load Balancing","href":"/integrations/kubernetes-ingress/gslb"},{"title":"Ingress to a Microservices-Based Application Connected via Linkerd's Service Mesh","sidebarTitle":"Linkerd","href":"/integrations/kubernetes-ingress/k8s"},{"title":"Kubernetes Ingress to Apps/APIs on Clusters Managed by Canonical MicroK8s","sidebarTitle":"MicroK8s","href":"/integrations/kubernetes-ingress/microk8s-k8s"},{"title":"Ingress to Kubernetes Apps Managed by Rafay","sidebarTitle":"Rafay","href":"/integrations/kubernetes-ingress/rafay-k8s"},{"title":"Kubernetes Ingress to Applications and Clusters Managed by Rancher","sidebarTitle":"Rancher","href":"/integrations/kubernetes-ingress/rancher-k8s"},{"title":"Ingress to Kubernetes Apps Deployed on Spectro Cloud Palette","sidebarTitle":"Spectro Cloud Palette","href":"/integrations/kubernetes-ingress/spectro-cloud-k8s"},{"title":"Ingress to Kubernetes Apps and Services with vcluster","sidebarTitle":"vcluster","href":"/integrations/kubernetes-ingress/vcluster-k8s"}]},{"group":"OAuth","pages":[{"title":"Facebook OAuth","sidebarTitle":"Facebook","href":"/integrations/oauth/facebook-oauth"},{"title":"GitHub OAuth","sidebarTitle":"GitHub","href":"/integrations/oauth/github-oauth"},{"title":"GitLab OAuth","sidebarTitle":"GitLab","href":"/integrations/oauth/gitlab-oauth"},{"title":"Google OAuth","sidebarTitle":"Google","href":"/integrations/oauth/google-oauth"},{"title":"LinkedIn OAuth","sidebarTitle":"LinkedIn","href":"/integrations/oauth/linkedin-oauth"},{"title":"Microsoft OAuth","sidebarTitle":"Microsoft","href":"/integrations/oauth/microsoft-oauth"},{"title":"Amazon OAuth","sidebarTitle":"Amazon","href":"/integrations/oauth/oauth"},{"title":"Twitch OAuth","sidebarTitle":"Twitch","href":"/integrations/oauth/twitch-oauth"}]},{"group":"Protocols","pages":[{"title":"Using ngrok with SSH","sidebarTitle":"SSH","href":"/using-ngrok-with/ssh"},{"title":"Using ngrok with FTP, FTPS, SFTP","sidebarTitle":"FTP, FTPS, SFTP","href":"/using-ngrok-with/ftp"},{"title":"Using ngrok with Websockets","sidebarTitle":"Websockets","href":"/using-ngrok-with/websockets"},{"title":"Using ngrok with Real-Time Messaging Protocol (RTMP)","sidebarTitle":"Real-Time Messaging Protocol (RTMP)","href":"/using-ngrok-with/rtmp"}]},{"group":"Webhooks","pages":[{"title":"AfterShip Webhooks","sidebarTitle":"AfterShip","href":"/integrations/webhooks/aftership-webhooks"},{"title":"Airship Webhooks","sidebarTitle":"Airship","href":"/integrations/webhooks/airship-webhooks"},{"title":"Alchemy Webhooks","sidebarTitle":"Alchemy","href":"/integrations/webhooks/alchemy-webhooks"},{"title":"Amazon SNS Webhooks","sidebarTitle":"Amazon SNS","href":"/integrations/webhooks/amazon-sns-webhooks"},{"title":"Autodesk Platform Services Webhooks","sidebarTitle":"Autodesk Platform Services","href":"/integrations/webhooks/autodesk-webhooks"},{"title":"Bitbucket Repository Webhooks","sidebarTitle":"Bitbucket Repository","href":"/integrations/webhooks/bitbucket-webhooks"},{"title":"Box Webhooks","sidebarTitle":"Box","href":"/integrations/webhooks/box-webhooks"},{"title":"Brex Webhooks","sidebarTitle":"Brex","href":"/integrations/webhooks/brex-webhooks"},{"title":"Buildkite Webhooks","sidebarTitle":"Buildkite","href":"/integrations/webhooks/buildkite-webhooks"},{"title":"Calendly Webhooks","sidebarTitle":"Calendly","href":"/integrations/webhooks/calendly-webhooks"},{"title":"Castle Webhooks","sidebarTitle":"Castle","href":"/integrations/webhooks/castle-webhooks"},{"title":"Chargify Webhooks","sidebarTitle":"Chargify","href":"/integrations/webhooks/chargify-webhooks"},{"title":"CircleCI Webhooks","sidebarTitle":"CircleCI","href":"/integrations/webhooks/circleci-webhooks"},{"title":"Clerk Webhooks","sidebarTitle":"Clerk","href":"/integrations/webhooks/clerk-webhooks"},{"title":"Coinbase Webhooks","sidebarTitle":"Coinbase","href":"/integrations/webhooks/coinbase-webhooks"},{"title":"Contentful Webhooks","sidebarTitle":"Contentful","href":"/integrations/webhooks/contentful-webhooks"},{"title":"DocuSign Webhooks","sidebarTitle":"DocuSign","href":"/integrations/webhooks/docusign-webhooks"},{"title":"Dropbox Webhooks","sidebarTitle":"Dropbox","href":"/integrations/webhooks/dropbox-webhooks"},{"title":"Facebook Messenger Webhooks","sidebarTitle":"Facebook Messenger","href":"/integrations/webhooks/facebook-messenger-webhooks"},{"title":"Facebook Webhooks","sidebarTitle":"Facebook","href":"/integrations/webhooks/facebook-webhooks"},{"title":"Frame.io Webhooks","sidebarTitle":"Frame.io","href":"/integrations/webhooks/frameio-webhooks"},{"title":"GitHub Repository Webhooks","sidebarTitle":"GitHub Repository","href":"/integrations/webhooks/github-webhooks"},{"title":"GitLab Repository Webhooks","sidebarTitle":"GitLab Repository","href":"/integrations/webhooks/gitlab-webhooks"},{"title":"Heroku Webhooks","sidebarTitle":"Heroku","href":"/integrations/webhooks/heroku-webhooks"},{"title":"HostedHooks Webhooks","sidebarTitle":"HostedHooks","href":"/integrations/webhooks/hostedhooks-webhooks"},{"title":"HubSpot Webhooks","sidebarTitle":"HubSpot","href":"/integrations/webhooks/hubspot-webhooks"},{"title":"Hygraph Webhooks","sidebarTitle":"Hygraph","href":"/integrations/webhooks/hygraph-webhooks"},{"title":"Instagram Webhooks","sidebarTitle":"Instagram","href":"/integrations/webhooks/instagram-webhooks"},{"title":"Intercom Webhooks","sidebarTitle":"Intercom","href":"/integrations/webhooks/intercom-webhooks"},{"title":"Jira Webhooks","sidebarTitle":"Jira","href":"/integrations/webhooks/jira-webhooks"},{"title":"LaunchDarkly Webhooks","sidebarTitle":"LaunchDarkly","href":"/integrations/webhooks/launchdarkly-webhooks"},{"title":"Linear Webhooks","sidebarTitle":"Linear","href":"/integrations/webhooks/linear-webhooks"},{"title":"Mailchimp Webhooks","sidebarTitle":"Mailchimp","href":"/integrations/webhooks/mailchimp-webhooks"},{"title":"Mailgun Webhooks","sidebarTitle":"Mailgun","href":"/integrations/webhooks/mailgun-webhooks"},{"title":"Modern Treasury Webhooks","sidebarTitle":"Modern Treasury","href":"/integrations/webhooks/modern-treasury-webhooks"},{"title":"MongoDB Webhooks","sidebarTitle":"MongoDB","href":"/integrations/webhooks/mongodb-webhooks"},{"title":"Mux Webhooks","sidebarTitle":"Mux","href":"/integrations/webhooks/mux-webhooks"},{"title":"Okta Webhooks","sidebarTitle":"Okta","href":"/integrations/webhooks/okta-webhooks"},{"title":"PagerDuty Webhooks","sidebarTitle":"PagerDuty","href":"/integrations/webhooks/pagerduty-webhooks"},{"title":"Pinwheel Webhooks","sidebarTitle":"Pinwheel","href":"/integrations/webhooks/pinwheel-webhooks"},{"title":"Plivo Webhooks","sidebarTitle":"Plivo","href":"/integrations/webhooks/plivo-webhooks"},{"title":"Pusher Webhooks","sidebarTitle":"Pusher","href":"/integrations/webhooks/pusher-webhooks"},{"title":"SendGrid Webhooks","sidebarTitle":"SendGrid","href":"/integrations/webhooks/sendgrid-webhooks"},{"title":"Sentry Webhooks","sidebarTitle":"Sentry","href":"/integrations/webhooks/sentry-webhooks"},{"title":"Shopify Webhooks","sidebarTitle":"Shopify","href":"/integrations/webhooks/shopify-webhooks"},{"title":"Signal Sciences Webhooks","sidebarTitle":"Signal Sciences","href":"/integrations/webhooks/signalsciences-webhooks"},{"title":"Slack Webhooks","sidebarTitle":"Slack","href":"/integrations/webhooks/slack-webhooks"},{"title":"Sonatype Nexus Webhooks","sidebarTitle":"Sonatype Nexus","href":"/integrations/webhooks/sonatype-nexus-webhooks"},{"title":"Square Webhooks","sidebarTitle":"Square","href":"/integrations/webhooks/square-webhooks"},{"title":"Stripe Webhooks","sidebarTitle":"Stripe","href":"/integrations/webhooks/stripe-webhooks"},{"title":"Svix Webhooks","sidebarTitle":"Svix","href":"/integrations/webhooks/svix-webhooks"},{"title":"Microsoft Teams Webhooks","sidebarTitle":"Microsoft Teams","href":"/integrations/webhooks/teams-webhooks"},{"title":"Terraform Cloud Webhooks","sidebarTitle":"Terraform Cloud","href":"/integrations/webhooks/terraform-webhooks"},{"title":"TikTok Webhooks","sidebarTitle":"TikTok","href":"/integrations/webhooks/tiktok-webhooks"},{"title":"Trend Micro Webhooks","sidebarTitle":"Trend Micro","href":"/integrations/webhooks/trendmicro-webhooks"},{"title":"Twilio SMS Webhooks","sidebarTitle":"Twilio SMS","href":"/integrations/webhooks/twilio-webhooks"},{"title":"X (Formerly Twitter) Webhooks","sidebarTitle":"X (Twitter)","href":"/integrations/webhooks/twitter-webhooks"},{"title":"Typeform Webhooks","sidebarTitle":"Typeform","href":"/integrations/webhooks/typeform-webhooks"},{"title":"VMware Workspace ONE Webhooks","sidebarTitle":"VMware Workspace ONE","href":"/integrations/webhooks/vmware-webhooks"},{"title":"Cisco Webex Webhooks","sidebarTitle":"Cisco Webex","href":"/integrations/webhooks/webex-webhooks"},{"title":"WhatsApp Webhooks","sidebarTitle":"WhatsApp","href":"/integrations/webhooks/whatsapp-webhooks"},{"title":"Worldline Webhooks","sidebarTitle":"Worldline","href":"/integrations/webhooks/worldline-webhooks"},{"title":"Xero Webhooks","sidebarTitle":"Xero","href":"/integrations/webhooks/xero-webhooks"},{"title":"Zendesk Webhooks","sidebarTitle":"Zendesk","href":"/integrations/webhooks/zendesk-webhooks"},{"title":"Zoom Webhooks","sidebarTitle":"Zoom","href":"/integrations/webhooks/zoom-webhooks"}]},{"group":"Web Servers","pages":[{"title":"Using ngrok with SMTP Mail Servers","sidebarTitle":"SMTP Mail Servers","href":"/using-ngrok-with/smtp"},{"title":"Using ngrok with NGINX","sidebarTitle":"NGINX","href":"/using-ngrok-with/nginx"},{"title":"Using ngrok with an Outbound Proxy","sidebarTitle":"Outbound Proxies","href":"/using-ngrok-with/outboundProxy"},{"title":"Using ngrok with Virtual Hosts Like MAMP and WAMP","sidebarTitle":"Virtual Hosts (MAMP, WAMP)","href":"/using-ngrok-with/virtualHosts"},{"title":"Using ngrok with gRPC","sidebarTitle":"gRPC","href":"/using-ngrok-with/gRPC"}]}]}]},{"tab":"Reference","menu":[{"item":"Platform API","anchors":[{"anchor":"Reference","icon":"book-open","pages":[{"title":"ngrok API Overview","sidebarTitle":"Overview","href":"/api"},{"title":"API Filtering","href":"/api/api-filtering"},{"group":"Gateway","pages":[{"group":"Endpoints","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /endpoints","href":"/api-reference/endpoints/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /endpoints","href":"/api-reference/endpoints/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /endpoints/{id}","href":"/api-reference/endpoints/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /endpoints/{id}","href":"/api-reference/endpoints/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /endpoints/{id}","href":"/api-reference/endpoints/update"}]},{"group":"Reserved Addrs","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /reserved_addrs","href":"/api-reference/reservedaddrs/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /reserved_addrs","href":"/api-reference/reservedaddrs/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /reserved_addrs/{id}","href":"/api-reference/reservedaddrs/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /reserved_addrs/{id}","href":"/api-reference/reservedaddrs/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /reserved_addrs/{id}","href":"/api-reference/reservedaddrs/update"}]},{"group":"Reserved Domains","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /reserved_domains","href":"/api-reference/reserveddomains/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /reserved_domains","href":"/api-reference/reserveddomains/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /reserved_domains/{id}","href":"/api-reference/reserveddomains/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /reserved_domains/{id}","href":"/api-reference/reserveddomains/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /reserved_domains/{id}","href":"/api-reference/reserveddomains/update"},{"title":"DeleteCertificate","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /reserved_domains/{id}/certificate","href":"/api-reference/reserveddomains/deletecertificate"},{"title":"DeleteCertificateManagementPolicy","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /reserved_domains/{id}/certificate_management_policy","href":"/api-reference/reserveddomains/deletecertificatemanagementpolicy"}]},{"group":"TLS Certificates","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tls_certificates","href":"/api-reference/tlscertificates/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /tls_certificates","href":"/api-reference/tlscertificates/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tls_certificates/{id}","href":"/api-reference/tlscertificates/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /tls_certificates/{id}","href":"/api-reference/tlscertificates/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /tls_certificates/{id}","href":"/api-reference/tlscertificates/update"}]},{"title":"Kubernetes Operators","href":"/api-reference/kubernetes-operators"}]},{"group":"Traffic Policy","pages":[{"group":"Certificate Authorities","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /certificate_authorities","href":"/api-reference/certificateauthorities/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /certificate_authorities","href":"/api-reference/certificateauthorities/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /certificate_authorities/{id}","href":"/api-reference/certificateauthorities/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /certificate_authorities/{id}","href":"/api-reference/certificateauthorities/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /certificate_authorities/{id}","href":"/api-reference/certificateauthorities/update"}]},{"group":"IP Policies","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_policies","href":"/api-reference/ippolicies/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ip_policies","href":"/api-reference/ippolicies/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_policies/{id}","href":"/api-reference/ippolicies/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ip_policies/{id}","href":"/api-reference/ippolicies/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ip_policies/{id}","href":"/api-reference/ippolicies/update"}]},{"group":"IP Policy Rules","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_policy_rules","href":"/api-reference/ippolicyrules/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ip_policy_rules","href":"/api-reference/ippolicyrules/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_policy_rules/{id}","href":"/api-reference/ippolicyrules/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ip_policy_rules/{id}","href":"/api-reference/ippolicyrules/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ip_policy_rules/{id}","href":"/api-reference/ippolicyrules/update"}]},{"group":"Applications","pages":[{"group":"Application Users","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /app/users","href":"/api-reference/applicationusers/list"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /app/users/{id}","href":"/api-reference/applicationusers/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /app/users/{id}","href":"/api-reference/applicationusers/delete"}]},{"group":"Application Sessions","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /app/sessions","href":"/api-reference/applicationsessions/list"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /app/sessions/{id}","href":"/api-reference/applicationsessions/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /app/sessions/{id}","href":"/api-reference/applicationsessions/delete"}]}]}]},{"group":"Secure Tunnels","pages":[{"group":"Agent Ingresses","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /agent_ingresses","href":"/api-reference/agentingresses/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /agent_ingresses","href":"/api-reference/agentingresses/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /agent_ingresses/{id}","href":"/api-reference/agentingresses/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /agent_ingresses/{id}","href":"/api-reference/agentingresses/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /agent_ingresses/{id}","href":"/api-reference/agentingresses/update"}]},{"group":"Tunnel Sessions","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tunnel_sessions","href":"/api-reference/tunnelsessions/list"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tunnel_sessions/{id}","href":"/api-reference/tunnelsessions/get"},{"title":"Restart","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /tunnel_sessions/{id}/restart","href":"/api-reference/tunnelsessions/restart"},{"title":"Stop","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /tunnel_sessions/{id}/stop","href":"/api-reference/tunnelsessions/stop"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /tunnel_sessions/{id}/update","href":"/api-reference/tunnelsessions/update"}]}]},{"group":"Observability","pages":[{"group":"Event Destinations","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_destinations","href":"/api-reference/eventdestinations/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /event_destinations","href":"/api-reference/eventdestinations/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_destinations/{id}","href":"/api-reference/eventdestinations/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /event_destinations/{id}","href":"/api-reference/eventdestinations/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /event_destinations/{id}","href":"/api-reference/eventdestinations/update"}]},{"group":"Event Sources","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_subscriptions/{subscription_id}/sources","href":"/api-reference/eventsources/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /event_subscriptions/{subscription_id}/sources","href":"/api-reference/eventsources/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_subscriptions/{subscription_id}/sources/{type}","href":"/api-reference/eventsources/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /event_subscriptions/{subscription_id}/sources/{type}","href":"/api-reference/eventsources/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /event_subscriptions/{subscription_id}/sources/{type}","href":"/api-reference/eventsources/update"}]},{"group":"Event Subscriptions","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_subscriptions","href":"/api-reference/eventsubscriptions/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /event_subscriptions","href":"/api-reference/eventsubscriptions/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_subscriptions/{id}","href":"/api-reference/eventsubscriptions/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /event_subscriptions/{id}","href":"/api-reference/eventsubscriptions/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /event_subscriptions/{id}","href":"/api-reference/eventsubscriptions/update"}]}]},{"group":"IAM","pages":[{"group":"IP Restrictions","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_restrictions","href":"/api-reference/iprestrictions/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ip_restrictions","href":"/api-reference/iprestrictions/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_restrictions/{id}","href":"/api-reference/iprestrictions/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ip_restrictions/{id}","href":"/api-reference/iprestrictions/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ip_restrictions/{id}","href":"/api-reference/iprestrictions/update"}]},{"group":"API Keys","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /api_keys","href":"/api-reference/apikeys/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /api_keys","href":"/api-reference/apikeys/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /api_keys/{id}","href":"/api-reference/apikeys/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /api_keys/{id}","href":"/api-reference/apikeys/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /api_keys/{id}","href":"/api-reference/apikeys/update"}]},{"group":"SSH Credentials","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_credentials","href":"/api-reference/sshcredentials/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ssh_credentials","href":"/api-reference/sshcredentials/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_credentials/{id}","href":"/api-reference/sshcredentials/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ssh_credentials/{id}","href":"/api-reference/sshcredentials/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ssh_credentials/{id}","href":"/api-reference/sshcredentials/update"}]},{"group":"Credentials","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /credentials","href":"/api-reference/credentials/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /credentials","href":"/api-reference/credentials/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /credentials/{id}","href":"/api-reference/credentials/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /credentials/{id}","href":"/api-reference/credentials/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /credentials/{id}","href":"/api-reference/credentials/update"}]},{"group":"Service Users","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /service_users","href":"/api-reference/serviceusers/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /service_users","href":"/api-reference/serviceusers/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /service_users/{id}","href":"/api-reference/serviceusers/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /service_users/{id}","href":"/api-reference/serviceusers/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /service_users/{id}","href":"/api-reference/serviceusers/update"}]}]},{"group":"SSH Certificates","pages":[{"group":"SSH Certificate Authorities","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_certificate_authorities","href":"/api-reference/sshcertificateauthorities/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ssh_certificate_authorities","href":"/api-reference/sshcertificateauthorities/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_certificate_authorities/{id}","href":"/api-reference/sshcertificateauthorities/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ssh_certificate_authorities/{id}","href":"/api-reference/sshcertificateauthorities/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ssh_certificate_authorities/{id}","href":"/api-reference/sshcertificateauthorities/update"}]},{"group":"SSH Host Certificates","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_host_certificates","href":"/api-reference/sshhostcertificates/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ssh_host_certificates","href":"/api-reference/sshhostcertificates/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_host_certificates/{id}","href":"/api-reference/sshhostcertificates/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ssh_host_certificates/{id}","href":"/api-reference/sshhostcertificates/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ssh_host_certificates/{id}","href":"/api-reference/sshhostcertificates/update"}]},{"group":"SSH User Certificates","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_user_certificates","href":"/api-reference/sshusercertificates/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ssh_user_certificates","href":"/api-reference/sshusercertificates/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_user_certificates/{id}","href":"/api-reference/sshusercertificates/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ssh_user_certificates/{id}","href":"/api-reference/sshusercertificates/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ssh_user_certificates/{id}","href":"/api-reference/sshusercertificates/update"}]}]},{"group":"Partners","pages":[{"group":"Abuse Reports","pages":[{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /abuse_reports","href":"/api-reference/abusereports/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /abuse_reports/{id}","href":"/api-reference/abusereports/get"}]}]},{"group":"Vaults \u0026 Secrets","pages":[{"group":"Secrets","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /vault_secrets","href":"/api-reference/secrets/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /vault_secrets","href":"/api-reference/secrets/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /vault_secrets/{id}","href":"/api-reference/secrets/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /vault_secrets/{id}","href":"/api-reference/secrets/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /vault_secrets/{id}","href":"/api-reference/secrets/update"}]},{"group":"Vaults","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /vaults","href":"/api-reference/vaults/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /vaults","href":"/api-reference/vaults/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /vaults/{id}","href":"/api-reference/vaults/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /vaults/{id}","href":"/api-reference/vaults/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /vaults/{id}","href":"/api-reference/vaults/update"},{"openapi":"get /vaults/{id}/secrets","title":"GetSecretsByVault","href":"/api-reference/vaults/list-secrets"}]}]},{"group":"Deprecated","pages":[{"group":"Bot Users","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /bot_users","href":"/api-reference/botusers/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /bot_users","href":"/api-reference/botusers/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /bot_users/{id}","href":"/api-reference/botusers/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /bot_users/{id}","href":"/api-reference/botusers/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /bot_users/{id}","href":"/api-reference/botusers/update"}]},{"group":"Backends","pages":[{"group":"Failover Backends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/failover","href":"/api-reference/failoverbackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/failover","href":"/api-reference/failoverbackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/failover/{id}","href":"/api-reference/failoverbackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/failover/{id}","href":"/api-reference/failoverbackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/failover/{id}","href":"/api-reference/failoverbackends/update"}]},{"group":"HTTP Response Backends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/http_response","href":"/api-reference/httpresponsebackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/http_response","href":"/api-reference/httpresponsebackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/http_response/{id}","href":"/api-reference/httpresponsebackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/http_response/{id}","href":"/api-reference/httpresponsebackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/http_response/{id}","href":"/api-reference/httpresponsebackends/update"}]},{"group":"Static Backends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/static","href":"/api-reference/staticbackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/static","href":"/api-reference/staticbackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/static/{id}","href":"/api-reference/staticbackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/static/{id}","href":"/api-reference/staticbackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/static/{id}","href":"/api-reference/staticbackends/update"}]},{"group":"Tunnel Group Backends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/tunnel_group","href":"/api-reference/tunnelgroupbackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/tunnel_group","href":"/api-reference/tunnelgroupbackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/tunnel_group/{id}","href":"/api-reference/tunnelgroupbackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/tunnel_group/{id}","href":"/api-reference/tunnelgroupbackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/tunnel_group/{id}","href":"/api-reference/tunnelgroupbackends/update"}]},{"group":"Weighted Backends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/weighted","href":"/api-reference/weightedbackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/weighted","href":"/api-reference/weightedbackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/weighted/{id}","href":"/api-reference/weightedbackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/weighted/{id}","href":"/api-reference/weightedbackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/weighted/{id}","href":"/api-reference/weightedbackends/update"}]}]},{"group":"Edge Route Backend Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/backend","href":"/api-reference/edgeroutebackendmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/backend","href":"/api-reference/edgeroutebackendmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/backend","href":"/api-reference/edgeroutebackendmodule/delete"}]},{"group":"Edge Route Circuit Breaker Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/circuit_breaker","href":"/api-reference/edgeroutecircuitbreakermodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/circuit_breaker","href":"/api-reference/edgeroutecircuitbreakermodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/circuit_breaker","href":"/api-reference/edgeroutecircuitbreakermodule/delete"}]},{"group":"Edge Route Compression Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/compression","href":"/api-reference/edgeroutecompressionmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/compression","href":"/api-reference/edgeroutecompressionmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/compression","href":"/api-reference/edgeroutecompressionmodule/delete"}]},{"group":"Edge Route IP Restriction Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/ip_restriction","href":"/api-reference/edgerouteiprestrictionmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/ip_restriction","href":"/api-reference/edgerouteiprestrictionmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/ip_restriction","href":"/api-reference/edgerouteiprestrictionmodule/delete"}]},{"group":"Edge Route OAuth Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/oauth","href":"/api-reference/edgerouteoauthmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/oauth","href":"/api-reference/edgerouteoauthmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/oauth","href":"/api-reference/edgerouteoauthmodule/delete"}]},{"group":"Edge Route OIDC Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/oidc","href":"/api-reference/edgerouteoidcmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/oidc","href":"/api-reference/edgerouteoidcmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/oidc","href":"/api-reference/edgerouteoidcmodule/delete"}]},{"group":"Edge Route Request Headers Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/request_headers","href":"/api-reference/edgerouterequestheadersmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/request_headers","href":"/api-reference/edgerouterequestheadersmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/request_headers","href":"/api-reference/edgerouterequestheadersmodule/delete"}]},{"group":"Edge Route Response Headers Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/response_headers","href":"/api-reference/edgerouteresponseheadersmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/response_headers","href":"/api-reference/edgerouteresponseheadersmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/response_headers","href":"/api-reference/edgerouteresponseheadersmodule/delete"}]},{"group":"Edge Route SAML Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/saml","href":"/api-reference/edgeroutesamlmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/saml","href":"/api-reference/edgeroutesamlmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/saml","href":"/api-reference/edgeroutesamlmodule/delete"}]},{"group":"Edge Route Traffic Policy Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/traffic_policy","href":"/api-reference/edgeroutetrafficpolicymodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/traffic_policy","href":"/api-reference/edgeroutetrafficpolicymodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/traffic_policy","href":"/api-reference/edgeroutetrafficpolicymodule/delete"}]},{"group":"Edge Route User Agent Filter Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/user_agent_filter","href":"/api-reference/edgerouteuseragentfiltermodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/user_agent_filter","href":"/api-reference/edgerouteuseragentfiltermodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/user_agent_filter","href":"/api-reference/edgerouteuseragentfiltermodule/delete"}]},{"group":"Edge Route Webhook Verification Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/webhook_verification","href":"/api-reference/edgeroutewebhookverificationmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/webhook_verification","href":"/api-reference/edgeroutewebhookverificationmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/webhook_verification","href":"/api-reference/edgeroutewebhookverificationmodule/delete"}]},{"group":"Edge Route Websocket TCP Converter Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/websocket_tcp_converter","href":"/api-reference/edgeroutewebsockettcpconvertermodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/websocket_tcp_converter","href":"/api-reference/edgeroutewebsockettcpconvertermodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/websocket_tcp_converter","href":"/api-reference/edgeroutewebsockettcpconvertermodule/delete"}]},{"group":"Edges HTTPS","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https","href":"/api-reference/edgeshttps/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /edges/https","href":"/api-reference/edgeshttps/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{id}","href":"/api-reference/edgeshttps/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{id}","href":"/api-reference/edgeshttps/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /edges/https/{id}","href":"/api-reference/edgeshttps/update"}]},{"group":"Edges HTTPS Routes","pages":[{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /edges/https/{edge_id}/routes","href":"/api-reference/edgeshttpsroutes/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}","href":"/api-reference/edgeshttpsroutes/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}","href":"/api-reference/edgeshttpsroutes/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /edges/https/{edge_id}/routes/{id}","href":"/api-reference/edgeshttpsroutes/update"}]},{"group":"Edges TCP","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp","href":"/api-reference/edgestcp/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /edges/tcp","href":"/api-reference/edgestcp/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp/{id}","href":"/api-reference/edgestcp/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tcp/{id}","href":"/api-reference/edgestcp/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /edges/tcp/{id}","href":"/api-reference/edgestcp/update"}]},{"group":"Edges TLS","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls","href":"/api-reference/edgestls/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /edges/tls","href":"/api-reference/edgestls/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}","href":"/api-reference/edgestls/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}","href":"/api-reference/edgestls/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /edges/tls/{id}","href":"/api-reference/edgestls/update"}]},{"group":"HTTPS Edge Mutual TLS Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{id}/mutual_tls","href":"/api-reference/httpsedgemutualtlsmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{id}/mutual_tls","href":"/api-reference/httpsedgemutualtlsmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{id}/mutual_tls","href":"/api-reference/httpsedgemutualtlsmodule/delete"}]},{"group":"HTTPS Edge TLS Termination Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{id}/tls_termination","href":"/api-reference/httpsedgetlsterminationmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{id}/tls_termination","href":"/api-reference/httpsedgetlsterminationmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{id}/tls_termination","href":"/api-reference/httpsedgetlsterminationmodule/delete"}]},{"group":"TCP Edge Backend Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp/{id}/backend","href":"/api-reference/tcpedgebackendmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tcp/{id}/backend","href":"/api-reference/tcpedgebackendmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tcp/{id}/backend","href":"/api-reference/tcpedgebackendmodule/delete"}]},{"group":"TCP Edge IP Restriction Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp/{id}/ip_restriction","href":"/api-reference/tcpedgeiprestrictionmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tcp/{id}/ip_restriction","href":"/api-reference/tcpedgeiprestrictionmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tcp/{id}/ip_restriction","href":"/api-reference/tcpedgeiprestrictionmodule/delete"}]},{"group":"TCP Edge Traffic Policy Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp/{id}/traffic_policy","href":"/api-reference/tcpedgetrafficpolicymodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tcp/{id}/traffic_policy","href":"/api-reference/tcpedgetrafficpolicymodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tcp/{id}/traffic_policy","href":"/api-reference/tcpedgetrafficpolicymodule/delete"}]},{"group":"TLS Edge Backend Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/backend","href":"/api-reference/tlsedgebackendmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/backend","href":"/api-reference/tlsedgebackendmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/backend","href":"/api-reference/tlsedgebackendmodule/delete"}]},{"group":"TLS Edge IP Restriction Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/ip_restriction","href":"/api-reference/tlsedgeiprestrictionmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/ip_restriction","href":"/api-reference/tlsedgeiprestrictionmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/ip_restriction","href":"/api-reference/tlsedgeiprestrictionmodule/delete"}]},{"group":"TLS Edge Mutual TLS Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/mutual_tls","href":"/api-reference/tlsedgemutualtlsmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/mutual_tls","href":"/api-reference/tlsedgemutualtlsmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/mutual_tls","href":"/api-reference/tlsedgemutualtlsmodule/delete"}]},{"group":"TLS Edge TLS Termination Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/tls_termination","href":"/api-reference/tlsedgetlsterminationmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/tls_termination","href":"/api-reference/tlsedgetlsterminationmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/tls_termination","href":"/api-reference/tlsedgetlsterminationmodule/delete"}]},{"group":"TLS Edge Traffic Policy Module","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/traffic_policy","href":"/api-reference/tlsedgetrafficpolicymodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/traffic_policy","href":"/api-reference/tlsedgetrafficpolicymodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/traffic_policy","href":"/api-reference/tlsedgetrafficpolicymodule/delete"}]},{"group":"Tunnels","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tunnels","href":"/api-reference/tunnels/list"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tunnels/{id}","href":"/api-reference/tunnels/get"}]}]}],"groups":[{"group":"AbuseReports","pages":[{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /abuse_reports","href":"/api-reference/abusereports/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /abuse_reports/{id}","href":"/api-reference/abusereports/get"}]},{"group":"PersonalAccessTokens","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /access_tokens","href":"/api-reference/personalaccesstokens/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /access_tokens","href":"/api-reference/personalaccesstokens/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /access_tokens/{id}","href":"/api-reference/personalaccesstokens/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /access_tokens/{id}","href":"/api-reference/personalaccesstokens/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /access_tokens/{id}","href":"/api-reference/personalaccesstokens/update"},{"title":"Revoke","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /access_tokens/{id}/revoke","href":"/api-reference/personalaccesstokens/revoke"}]},{"group":"AgentIngresses","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /agent_ingresses","href":"/api-reference/agentingresses/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /agent_ingresses","href":"/api-reference/agentingresses/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /agent_ingresses/{id}","href":"/api-reference/agentingresses/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /agent_ingresses/{id}","href":"/api-reference/agentingresses/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /agent_ingresses/{id}","href":"/api-reference/agentingresses/update"}]},{"group":"APIKeys","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /api_keys","href":"/api-reference/apikeys/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /api_keys","href":"/api-reference/apikeys/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /api_keys/{id}","href":"/api-reference/apikeys/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /api_keys/{id}","href":"/api-reference/apikeys/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /api_keys/{id}","href":"/api-reference/apikeys/update"}]},{"group":"ApplicationSessions","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /app/sessions","href":"/api-reference/applicationsessions/list"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /app/sessions/{id}","href":"/api-reference/applicationsessions/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /app/sessions/{id}","href":"/api-reference/applicationsessions/delete"}]},{"group":"ApplicationUsers","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /app/users","href":"/api-reference/applicationusers/list"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /app/users/{id}","href":"/api-reference/applicationusers/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /app/users/{id}","href":"/api-reference/applicationusers/delete"}]},{"group":"TunnelSessions","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tunnel_sessions","href":"/api-reference/tunnelsessions/list"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tunnel_sessions/{id}","href":"/api-reference/tunnelsessions/get"},{"title":"Restart","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /tunnel_sessions/{id}/restart","href":"/api-reference/tunnelsessions/restart"},{"title":"Stop","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /tunnel_sessions/{id}/stop","href":"/api-reference/tunnelsessions/stop"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /tunnel_sessions/{id}/update","href":"/api-reference/tunnelsessions/update"}]},{"group":"FailoverBackends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/failover","href":"/api-reference/failoverbackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/failover","href":"/api-reference/failoverbackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/failover/{id}","href":"/api-reference/failoverbackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/failover/{id}","href":"/api-reference/failoverbackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/failover/{id}","href":"/api-reference/failoverbackends/update"}]},{"group":"HTTPResponseBackends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/http_response","href":"/api-reference/httpresponsebackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/http_response","href":"/api-reference/httpresponsebackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/http_response/{id}","href":"/api-reference/httpresponsebackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/http_response/{id}","href":"/api-reference/httpresponsebackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/http_response/{id}","href":"/api-reference/httpresponsebackends/update"}]},{"group":"StaticBackends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/static","href":"/api-reference/staticbackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/static","href":"/api-reference/staticbackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/static/{id}","href":"/api-reference/staticbackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/static/{id}","href":"/api-reference/staticbackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/static/{id}","href":"/api-reference/staticbackends/update"}]},{"group":"TunnelGroupBackends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/tunnel_group","href":"/api-reference/tunnelgroupbackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/tunnel_group","href":"/api-reference/tunnelgroupbackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/tunnel_group/{id}","href":"/api-reference/tunnelgroupbackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/tunnel_group/{id}","href":"/api-reference/tunnelgroupbackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/tunnel_group/{id}","href":"/api-reference/tunnelgroupbackends/update"}]},{"group":"WeightedBackends","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/weighted","href":"/api-reference/weightedbackends/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /backends/weighted","href":"/api-reference/weightedbackends/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /backends/weighted/{id}","href":"/api-reference/weightedbackends/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /backends/weighted/{id}","href":"/api-reference/weightedbackends/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /backends/weighted/{id}","href":"/api-reference/weightedbackends/update"}]},{"group":"BotUsers","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /bot_users","href":"/api-reference/botusers/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /bot_users","href":"/api-reference/botusers/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /bot_users/{id}","href":"/api-reference/botusers/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /bot_users/{id}","href":"/api-reference/botusers/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /bot_users/{id}","href":"/api-reference/botusers/update"}]},{"group":"CertificateAuthorities","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /certificate_authorities","href":"/api-reference/certificateauthorities/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /certificate_authorities","href":"/api-reference/certificateauthorities/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /certificate_authorities/{id}","href":"/api-reference/certificateauthorities/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /certificate_authorities/{id}","href":"/api-reference/certificateauthorities/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /certificate_authorities/{id}","href":"/api-reference/certificateauthorities/update"}]},{"group":"Credentials","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /credentials","href":"/api-reference/credentials/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /credentials","href":"/api-reference/credentials/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /credentials/{id}","href":"/api-reference/credentials/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /credentials/{id}","href":"/api-reference/credentials/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /credentials/{id}","href":"/api-reference/credentials/update"}]},{"group":"EdgesHTTPSRoutes","pages":[{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /edges/https/{edge_id}/routes","href":"/api-reference/edgeshttpsroutes/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}","href":"/api-reference/edgeshttpsroutes/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}","href":"/api-reference/edgeshttpsroutes/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /edges/https/{edge_id}/routes/{id}","href":"/api-reference/edgeshttpsroutes/update"}]},{"group":"EdgesHTTPS","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https","href":"/api-reference/edgeshttps/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /edges/https","href":"/api-reference/edgeshttps/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{id}","href":"/api-reference/edgeshttps/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{id}","href":"/api-reference/edgeshttps/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /edges/https/{id}","href":"/api-reference/edgeshttps/update"}]},{"group":"HTTPSEdgeMutualTLSModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{id}/mutual_tls","href":"/api-reference/httpsedgemutualtlsmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{id}/mutual_tls","href":"/api-reference/httpsedgemutualtlsmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{id}/mutual_tls","href":"/api-reference/httpsedgemutualtlsmodule/delete"}]},{"group":"HTTPSEdgeTLSTerminationModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{id}/tls_termination","href":"/api-reference/httpsedgetlsterminationmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{id}/tls_termination","href":"/api-reference/httpsedgetlsterminationmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{id}/tls_termination","href":"/api-reference/httpsedgetlsterminationmodule/delete"}]},{"group":"EdgeRouteBackendModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/backend","href":"/api-reference/edgeroutebackendmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/backend","href":"/api-reference/edgeroutebackendmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/backend","href":"/api-reference/edgeroutebackendmodule/delete"}]},{"group":"EdgeRouteIPRestrictionModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/ip_restriction","href":"/api-reference/edgerouteiprestrictionmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/ip_restriction","href":"/api-reference/edgerouteiprestrictionmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/ip_restriction","href":"/api-reference/edgerouteiprestrictionmodule/delete"}]},{"group":"EdgeRouteRequestHeadersModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/request_headers","href":"/api-reference/edgerouterequestheadersmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/request_headers","href":"/api-reference/edgerouterequestheadersmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/request_headers","href":"/api-reference/edgerouterequestheadersmodule/delete"}]},{"group":"EdgeRouteResponseHeadersModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/response_headers","href":"/api-reference/edgerouteresponseheadersmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/response_headers","href":"/api-reference/edgerouteresponseheadersmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/response_headers","href":"/api-reference/edgerouteresponseheadersmodule/delete"}]},{"group":"EdgeRouteCompressionModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/compression","href":"/api-reference/edgeroutecompressionmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/compression","href":"/api-reference/edgeroutecompressionmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/compression","href":"/api-reference/edgeroutecompressionmodule/delete"}]},{"group":"EdgeRouteCircuitBreakerModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/circuit_breaker","href":"/api-reference/edgeroutecircuitbreakermodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/circuit_breaker","href":"/api-reference/edgeroutecircuitbreakermodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/circuit_breaker","href":"/api-reference/edgeroutecircuitbreakermodule/delete"}]},{"group":"EdgeRouteWebhookVerificationModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/webhook_verification","href":"/api-reference/edgeroutewebhookverificationmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/webhook_verification","href":"/api-reference/edgeroutewebhookverificationmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/webhook_verification","href":"/api-reference/edgeroutewebhookverificationmodule/delete"}]},{"group":"EdgeRouteOAuthModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/oauth","href":"/api-reference/edgerouteoauthmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/oauth","href":"/api-reference/edgerouteoauthmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/oauth","href":"/api-reference/edgerouteoauthmodule/delete"}]},{"group":"EdgeRouteSAMLModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/saml","href":"/api-reference/edgeroutesamlmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/saml","href":"/api-reference/edgeroutesamlmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/saml","href":"/api-reference/edgeroutesamlmodule/delete"}]},{"group":"EdgeRouteOIDCModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/oidc","href":"/api-reference/edgerouteoidcmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/oidc","href":"/api-reference/edgerouteoidcmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/oidc","href":"/api-reference/edgerouteoidcmodule/delete"}]},{"group":"EdgeRouteWebsocketTCPConverterModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/websocket_tcp_converter","href":"/api-reference/edgeroutewebsockettcpconvertermodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/websocket_tcp_converter","href":"/api-reference/edgeroutewebsockettcpconvertermodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/websocket_tcp_converter","href":"/api-reference/edgeroutewebsockettcpconvertermodule/delete"}]},{"group":"EdgeRouteUserAgentFilterModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/user_agent_filter","href":"/api-reference/edgerouteuseragentfiltermodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/user_agent_filter","href":"/api-reference/edgerouteuseragentfiltermodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/user_agent_filter","href":"/api-reference/edgerouteuseragentfiltermodule/delete"}]},{"group":"EdgeRouteTrafficPolicyModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/https/{edge_id}/routes/{id}/traffic_policy","href":"/api-reference/edgeroutetrafficpolicymodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/https/{edge_id}/routes/{id}/traffic_policy","href":"/api-reference/edgeroutetrafficpolicymodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/https/{edge_id}/routes/{id}/traffic_policy","href":"/api-reference/edgeroutetrafficpolicymodule/delete"}]},{"group":"EdgesTCP","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp","href":"/api-reference/edgestcp/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /edges/tcp","href":"/api-reference/edgestcp/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp/{id}","href":"/api-reference/edgestcp/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tcp/{id}","href":"/api-reference/edgestcp/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /edges/tcp/{id}","href":"/api-reference/edgestcp/update"}]},{"group":"TCPEdgeBackendModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp/{id}/backend","href":"/api-reference/tcpedgebackendmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tcp/{id}/backend","href":"/api-reference/tcpedgebackendmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tcp/{id}/backend","href":"/api-reference/tcpedgebackendmodule/delete"}]},{"group":"TCPEdgeIPRestrictionModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp/{id}/ip_restriction","href":"/api-reference/tcpedgeiprestrictionmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tcp/{id}/ip_restriction","href":"/api-reference/tcpedgeiprestrictionmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tcp/{id}/ip_restriction","href":"/api-reference/tcpedgeiprestrictionmodule/delete"}]},{"group":"TCPEdgeTrafficPolicyModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tcp/{id}/traffic_policy","href":"/api-reference/tcpedgetrafficpolicymodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tcp/{id}/traffic_policy","href":"/api-reference/tcpedgetrafficpolicymodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tcp/{id}/traffic_policy","href":"/api-reference/tcpedgetrafficpolicymodule/delete"}]},{"group":"EdgesTLS","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls","href":"/api-reference/edgestls/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /edges/tls","href":"/api-reference/edgestls/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}","href":"/api-reference/edgestls/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}","href":"/api-reference/edgestls/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /edges/tls/{id}","href":"/api-reference/edgestls/update"}]},{"group":"TLSEdgeBackendModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/backend","href":"/api-reference/tlsedgebackendmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/backend","href":"/api-reference/tlsedgebackendmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/backend","href":"/api-reference/tlsedgebackendmodule/delete"}]},{"group":"TLSEdgeIPRestrictionModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/ip_restriction","href":"/api-reference/tlsedgeiprestrictionmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/ip_restriction","href":"/api-reference/tlsedgeiprestrictionmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/ip_restriction","href":"/api-reference/tlsedgeiprestrictionmodule/delete"}]},{"group":"TLSEdgeMutualTLSModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/mutual_tls","href":"/api-reference/tlsedgemutualtlsmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/mutual_tls","href":"/api-reference/tlsedgemutualtlsmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/mutual_tls","href":"/api-reference/tlsedgemutualtlsmodule/delete"}]},{"group":"TLSEdgeTLSTerminationModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/tls_termination","href":"/api-reference/tlsedgetlsterminationmodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/tls_termination","href":"/api-reference/tlsedgetlsterminationmodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/tls_termination","href":"/api-reference/tlsedgetlsterminationmodule/delete"}]},{"group":"TLSEdgeTrafficPolicyModule","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /edges/tls/{id}/traffic_policy","href":"/api-reference/tlsedgetrafficpolicymodule/get"},{"title":"Replace","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml put /edges/tls/{id}/traffic_policy","href":"/api-reference/tlsedgetrafficpolicymodule/replace"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /edges/tls/{id}/traffic_policy","href":"/api-reference/tlsedgetrafficpolicymodule/delete"}]},{"group":"Endpoints","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /endpoints","href":"/api-reference/endpoints/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /endpoints","href":"/api-reference/endpoints/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /endpoints/{id}","href":"/api-reference/endpoints/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /endpoints/{id}","href":"/api-reference/endpoints/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /endpoints/{id}","href":"/api-reference/endpoints/update"}]},{"group":"EventDestinations","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_destinations","href":"/api-reference/eventdestinations/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /event_destinations","href":"/api-reference/eventdestinations/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_destinations/{id}","href":"/api-reference/eventdestinations/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /event_destinations/{id}","href":"/api-reference/eventdestinations/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /event_destinations/{id}","href":"/api-reference/eventdestinations/update"}]},{"group":"EventSubscriptions","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_subscriptions","href":"/api-reference/eventsubscriptions/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /event_subscriptions","href":"/api-reference/eventsubscriptions/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_subscriptions/{id}","href":"/api-reference/eventsubscriptions/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /event_subscriptions/{id}","href":"/api-reference/eventsubscriptions/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /event_subscriptions/{id}","href":"/api-reference/eventsubscriptions/update"}]},{"group":"EventSources","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_subscriptions/{subscription_id}/sources","href":"/api-reference/eventsources/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /event_subscriptions/{subscription_id}/sources","href":"/api-reference/eventsources/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /event_subscriptions/{subscription_id}/sources/{type}","href":"/api-reference/eventsources/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /event_subscriptions/{subscription_id}/sources/{type}","href":"/api-reference/eventsources/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /event_subscriptions/{subscription_id}/sources/{type}","href":"/api-reference/eventsources/update"}]},{"group":"IPPolicies","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_policies","href":"/api-reference/ippolicies/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ip_policies","href":"/api-reference/ippolicies/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_policies/{id}","href":"/api-reference/ippolicies/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ip_policies/{id}","href":"/api-reference/ippolicies/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ip_policies/{id}","href":"/api-reference/ippolicies/update"}]},{"group":"IPPolicyRules","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_policy_rules","href":"/api-reference/ippolicyrules/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ip_policy_rules","href":"/api-reference/ippolicyrules/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_policy_rules/{id}","href":"/api-reference/ippolicyrules/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ip_policy_rules/{id}","href":"/api-reference/ippolicyrules/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ip_policy_rules/{id}","href":"/api-reference/ippolicyrules/update"}]},{"group":"IPRestrictions","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_restrictions","href":"/api-reference/iprestrictions/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ip_restrictions","href":"/api-reference/iprestrictions/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ip_restrictions/{id}","href":"/api-reference/iprestrictions/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ip_restrictions/{id}","href":"/api-reference/iprestrictions/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ip_restrictions/{id}","href":"/api-reference/iprestrictions/update"}]},{"group":"ReservedAddrs","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /reserved_addrs","href":"/api-reference/reservedaddrs/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /reserved_addrs","href":"/api-reference/reservedaddrs/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /reserved_addrs/{id}","href":"/api-reference/reservedaddrs/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /reserved_addrs/{id}","href":"/api-reference/reservedaddrs/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /reserved_addrs/{id}","href":"/api-reference/reservedaddrs/update"}]},{"group":"ReservedDomains","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /reserved_domains","href":"/api-reference/reserveddomains/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /reserved_domains","href":"/api-reference/reserveddomains/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /reserved_domains/{id}","href":"/api-reference/reserveddomains/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /reserved_domains/{id}","href":"/api-reference/reserveddomains/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /reserved_domains/{id}","href":"/api-reference/reserveddomains/update"},{"title":"DeleteCertificate","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /reserved_domains/{id}/certificate","href":"/api-reference/reserveddomains/deletecertificate"},{"title":"DeleteCertificateManagementPolicy","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /reserved_domains/{id}/certificate_management_policy","href":"/api-reference/reserveddomains/deletecertificatemanagementpolicy"}]},{"group":"Secrets","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /vault_secrets","href":"/api-reference/secrets/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /vault_secrets","href":"/api-reference/secrets/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /vault_secrets/{id}","href":"/api-reference/secrets/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /vault_secrets/{id}","href":"/api-reference/secrets/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /vault_secrets/{id}","href":"/api-reference/secrets/update"}]},{"group":"ServiceUsers","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /service_users","href":"/api-reference/serviceusers/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /service_users","href":"/api-reference/serviceusers/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /service_users/{id}","href":"/api-reference/serviceusers/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /service_users/{id}","href":"/api-reference/serviceusers/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /service_users/{id}","href":"/api-reference/serviceusers/update"}]},{"group":"SSHCertificateAuthorities","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_certificate_authorities","href":"/api-reference/sshcertificateauthorities/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ssh_certificate_authorities","href":"/api-reference/sshcertificateauthorities/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_certificate_authorities/{id}","href":"/api-reference/sshcertificateauthorities/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ssh_certificate_authorities/{id}","href":"/api-reference/sshcertificateauthorities/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ssh_certificate_authorities/{id}","href":"/api-reference/sshcertificateauthorities/update"}]},{"group":"SSHCredentials","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_credentials","href":"/api-reference/sshcredentials/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ssh_credentials","href":"/api-reference/sshcredentials/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_credentials/{id}","href":"/api-reference/sshcredentials/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ssh_credentials/{id}","href":"/api-reference/sshcredentials/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ssh_credentials/{id}","href":"/api-reference/sshcredentials/update"}]},{"group":"SSHHostCertificates","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_host_certificates","href":"/api-reference/sshhostcertificates/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ssh_host_certificates","href":"/api-reference/sshhostcertificates/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_host_certificates/{id}","href":"/api-reference/sshhostcertificates/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ssh_host_certificates/{id}","href":"/api-reference/sshhostcertificates/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ssh_host_certificates/{id}","href":"/api-reference/sshhostcertificates/update"}]},{"group":"SSHUserCertificates","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_user_certificates","href":"/api-reference/sshusercertificates/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ssh_user_certificates","href":"/api-reference/sshusercertificates/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ssh_user_certificates/{id}","href":"/api-reference/sshusercertificates/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ssh_user_certificates/{id}","href":"/api-reference/sshusercertificates/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ssh_user_certificates/{id}","href":"/api-reference/sshusercertificates/update"}]},{"group":"TLSCertificates","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tls_certificates","href":"/api-reference/tlscertificates/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /tls_certificates","href":"/api-reference/tlscertificates/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tls_certificates/{id}","href":"/api-reference/tlscertificates/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /tls_certificates/{id}","href":"/api-reference/tlscertificates/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /tls_certificates/{id}","href":"/api-reference/tlscertificates/update"}]},{"group":"Tunnels","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tunnels","href":"/api-reference/tunnels/list"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /tunnels/{id}","href":"/api-reference/tunnels/get"}]},{"group":"Vaults","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /vaults","href":"/api-reference/vaults/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /vaults","href":"/api-reference/vaults/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /vaults/{id}","href":"/api-reference/vaults/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /vaults/{id}","href":"/api-reference/vaults/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /vaults/{id}","href":"/api-reference/vaults/update"},{"title":"GetSecretsByVault","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /vaults/{id}/secrets","href":"/api-reference/vaults/getsecretsbyvault"}]}]}]},{"item":"Agent API","anchors":[{"anchor":"Reference","icon":"book-open","pages":[{"title":"ngrok CLI API","sidebarTitle":"API","href":"/gateway/agent/api"}]}]},{"item":"CLI","anchors":[{"anchor":"Reference","icon":"book-open","pages":[{"title":"ngrok Agent Command Line Interface (CLI)","sidebarTitle":"CLI","href":"/gateway/agent/cli"},{"title":"ngrok CLI API Commands","sidebarTitle":"CLI API Commands","href":"/gateway/agent/cli-api"}]}]},{"item":"Agent Config File","anchors":[{"anchor":"Reference","icon":"book-open","pages":[{"title":"ngrok CLI Configuration File","sidebarTitle":"Overview","href":"/gateway/agent/config"},{"title":"Agent Config Version 2","sidebarTitle":"Version 2","href":"/gateway/agent/config/v2"},{"title":"Agent Config Version 3","sidebarTitle":"Version 3","href":"/gateway/agent/config/v3"}]}]},{"item":"SDKs","anchors":[{"anchor":"Reference","icon":"book-open","pages":[{"title":"ngrok SDKs","sidebarTitle":"Overview","href":"/agent-sdks"},{"title":"JavaScript SDK Quickstart","sidebarTitle":"JavaScript","href":"/getting-started/javascript"},{"title":"Go SDK Quickstart","sidebarTitle":"Go","href":"/getting-started/go"},{"title":"Python SDK Quickstart","sidebarTitle":"Python","href":"/getting-started/python"},{"title":"Rust SDK Quickstart","sidebarTitle":"Rust","href":"/getting-started/rust"},{"group":"Framework Libraries","pages":[{"title":"ngrok Framework Libraries","sidebarTitle":"Overview","href":"/agent-sdks/frameworks/index"},{"title":"Put a Next.js App Online with ngrok","sidebarTitle":"Next.js","href":"/agent-sdks/frameworks/nextjs"},{"title":"Put a Gin App Online with ngrok","sidebarTitle":"Gin","href":"/agent-sdks/frameworks/gin"},{"title":"Put a FastAPI App Online with ngrok","sidebarTitle":"FastAPI","href":"/agent-sdks/frameworks/fastapi"},{"title":"Put an Axum App Online with ngrok","sidebarTitle":"Axum","href":"/agent-sdks/frameworks/axum"}]}]}]},{"item":"Errors","anchors":[{"anchor":"Reference","icon":"book-open","pages":[{"title":"Errors","href":"/errors"},{"title":"Errors Reference","href":"/errors/reference"},{"group":"Error codes","boost":0.5,"hidden":true,"searchable":true,"pages":[{"group":"ERR_NGROK_0-999","pages":[{"mode":"wide","title":"ERR_NGROK_100: Invalid metadata length: VAL bytes","href":"/errors/err_ngrok_100"},{"mode":"wide","title":"ERR_NGROK_102: The last payment for the ACCOUNT account failed","href":"/errors/err_ngrok_102"},{"mode":"wide","title":"ERR_NGROK_103: The account ACCOUNT has been suspended","href":"/errors/err_ngrok_103"},{"mode":"wide","title":"ERR_NGROK_105: The authtoken you specified does not look like a proper ngrok authtoken","href":"/errors/err_ngrok_105"},{"mode":"wide","title":"ERR_NGROK_106: The authtoken you specified is an ngrok v1 authtoken, but you're using ngrok v2","href":"/errors/err_ngrok_106"},{"mode":"wide","title":"ERR_NGROK_107: The authtoken you specified is properly formed, but it is invalid","href":"/errors/err_ngrok_107"},{"mode":"wide","title":"ERR_NGROK_108: Your account is limited to MAX simultaneous ngrok agent sessions","href":"/errors/err_ngrok_108"},{"mode":"wide","title":"ERR_NGROK_109: The authentication payload you specified is not valid","href":"/errors/err_ngrok_109"},{"mode":"wide","title":"ERR_NGROK_110: The session cookie you specified is not valid","href":"/errors/err_ngrok_110"},{"mode":"wide","title":"ERR_NGROK_111: The heartbeat interval you specified is not valid","href":"/errors/err_ngrok_111"},{"mode":"wide","title":"ERR_NGROK_112: The heartbeat tolerance you specified is not valid","href":"/errors/err_ngrok_112"},{"mode":"wide","title":"ERR_NGROK_115: Your IP IP does not match the IP Policies specified by the Agent IP Restriction for this account","href":"/errors/err_ngrok_115"},{"mode":"wide","title":"ERR_NGROK_116: Your IP IP does not match the IP ACL policy specified for your credentials","href":"/errors/err_ngrok_116"},{"mode":"wide","title":"ERR_NGROK_118: Your account ACCOUNTNAME is not permitted to use the ngrok enterprise tunnel ingress","href":"/errors/err_ngrok_118"},{"mode":"wide","title":"ERR_NGROK_119: The agent specified an invalid semantic version string: VERSION","href":"/errors/err_ngrok_119"},{"mode":"wide","title":"ERR_NGROK_121: Your PRODUCT version \"VERSION\" is too old","href":"/errors/err_ngrok_121"},{"mode":"wide","title":"ERR_NGROK_122: Your account is not permitted to use the agent ingress \"DOMAIN\"","href":"/errors/err_ngrok_122"},{"mode":"wide","title":"ERR_NGROK_123: The account \"NAME\" may not start an ngrok agent session until the admin's email address is verified","href":"/errors/err_ngrok_123"},{"mode":"wide","title":"ERR_NGROK_124: Your agent provided an invalid UserAgent: ERR","href":"/errors/err_ngrok_124"},{"mode":"wide","title":"ERR_NGROK_125: The analytics payload you specified is not valid","href":"/errors/err_ngrok_125"},{"mode":"wide","title":"ERR_NGROK_126: The agent ingress \"DOMAIN\" is not available via \"IP\"","href":"/errors/err_ngrok_126"},{"mode":"wide","title":"ERR_NGROK_127: Your account is not permitted to use the agent ingress via \"IP\"","href":"/errors/err_ngrok_127"},{"mode":"wide","title":"ERR_NGROK_128: Something went wrong","href":"/errors/err_ngrok_128"},{"mode":"wide","title":"ERR_NGROK_200: The ngrok API requires that you set the Authorization header for authentication","href":"/errors/err_ngrok_200"},{"mode":"wide","title":"ERR_NGROK_201: The ngrok API requires that you use Basic or Bearer authentication via the Authorization header","href":"/errors/err_ngrok_201"},{"mode":"wide","title":"ERR_NGROK_202: The API authentication you specified does not look like a valid credential","href":"/errors/err_ngrok_202"},{"mode":"wide","title":"ERR_NGROK_203: The API authentication you specified is properly formed, but it is invalid","href":"/errors/err_ngrok_203"},{"mode":"wide","title":"ERR_NGROK_204: This is a valid API token, but the account ACCOUNT is not allowed to use the ngrok API","href":"/errors/err_ngrok_204"},{"mode":"wide","title":"ERR_NGROK_205: The account ACCOUNT has been suspended","href":"/errors/err_ngrok_205"},{"mode":"wide","title":"ERR_NGROK_206: The authentication you specified is actually an authtoken","href":"/errors/err_ngrok_206"},{"mode":"wide","title":"ERR_NGROK_207: The authentication you specified is actually an authtoken, not an API key token","href":"/errors/err_ngrok_207"},{"mode":"wide","title":"ERR_NGROK_208: The authentication you specified is actually an API key ID, not an API key token","href":"/errors/err_ngrok_208"},{"mode":"wide","title":"ERR_NGROK_210: The content type you specified CTYPE is not supported by the API","href":"/errors/err_ngrok_210"},{"mode":"wide","title":"ERR_NGROK_211: The METHOD request you made does not expect a body, but you provided one","href":"/errors/err_ngrok_211"},{"mode":"wide","title":"ERR_NGROK_212: The server was unable to read the complete request body","href":"/errors/err_ngrok_212"},{"mode":"wide","title":"ERR_NGROK_213: The CTYPE request body could not be parsed","href":"/errors/err_ngrok_213"},{"mode":"wide","title":"ERR_NGROK_214: The request parameter NAME is unknown and not expected","href":"/errors/err_ngrok_214"},{"mode":"wide","title":"ERR_NGROK_215: The value provided for the request parameter NAME is invalid","href":"/errors/err_ngrok_215"},{"mode":"wide","title":"ERR_NGROK_216: You did not provide a Content-Type with your request","href":"/errors/err_ngrok_216"},{"mode":"wide","title":"ERR_NGROK_217: The provided API version VERSION is invalid or unsupported","href":"/errors/err_ngrok_217"},{"mode":"wide","title":"ERR_NGROK_218: Your request has not specified an API version","href":"/errors/err_ngrok_218"},{"mode":"wide","title":"ERR_NGROK_219: TLSVERSION is not a supported TLS version","href":"/errors/err_ngrok_219"},{"mode":"wide","title":"ERR_NGROK_220: Your IP does not match the IP Policy for this Account","href":"/errors/err_ngrok_220"},{"mode":"wide","title":"ERR_NGROK_221: This is a valid API token, but the account ACCOUNT is not authorized to submit or view abuse reports","href":"/errors/err_ngrok_221"},{"mode":"wide","title":"ERR_NGROK_223: ID is not a valid resource reference identifier","href":"/errors/err_ngrok_223"},{"mode":"wide","title":"ERR_NGROK_224: The value VAL is not valid for the terminate_at property of the TLS Termination endpoint configuration module","href":"/errors/err_ngrok_224"},{"mode":"wide","title":"ERR_NGROK_225: Your account is limited to MAX simultaneous API requests","href":"/errors/err_ngrok_225"},{"mode":"wide","title":"ERR_NGROK_226: Your account is rate limited to MAX API requests per INTERVAL","href":"/errors/err_ngrok_226"},{"mode":"wide","title":"ERR_NGROK_227: The ID VAL is invalid","href":"/errors/err_ngrok_227"},{"mode":"wide","title":"ERR_NGROK_228: The ID VAL is not a valid Certificate Authority ID","href":"/errors/err_ngrok_228"},{"mode":"wide","title":"ERR_NGROK_229: The ID VAL is not a valid IP Policy ID","href":"/errors/err_ngrok_229"},{"mode":"wide","title":"ERR_NGROK_230: The query part of the requested URI is invalid: ERR","href":"/errors/err_ngrok_230"},{"mode":"wide","title":"ERR_NGROK_231: The query part of the requested URI includes unknown parameters: UNKNOWN","href":"/errors/err_ngrok_231"},{"mode":"wide","title":"ERR_NGROK_232: The request must specify only a single value for the NAME parameter but got COUNT: VALUES","href":"/errors/err_ngrok_232"},{"mode":"wide","title":"ERR_NGROK_233: The page size limit must be between 1 and MAX but VAL was provided","href":"/errors/err_ngrok_233"},{"mode":"wide","title":"ERR_NGROK_235: The Format VAL is missing or is not a valid Event Destination Format","href":"/errors/err_ngrok_235"},{"mode":"wide","title":"ERR_NGROK_236: The destination target is invalid","href":"/errors/err_ngrok_236"},{"mode":"wide","title":"ERR_NGROK_238: The provided event type: TYP is not valid","href":"/errors/err_ngrok_238"},{"mode":"wide","title":"ERR_NGROK_239: The provided field: TYP is not valid","href":"/errors/err_ngrok_239"},{"mode":"wide","title":"ERR_NGROK_240: The provided event destination auth is invalid","href":"/errors/err_ngrok_240"},{"mode":"wide","title":"ERR_NGROK_241: The value \"TS\" is not a valid RFC3339 timestamp","href":"/errors/err_ngrok_241"},{"mode":"wide","title":"ERR_NGROK_242: The ID VAL is not a valid Backend ID","href":"/errors/err_ngrok_242"},{"mode":"wide","title":"ERR_NGROK_243: The ID VAL is invalid","href":"/errors/err_ngrok_243"},{"mode":"wide","title":"ERR_NGROK_244: The page size limit must be a number between 1 and MAX but VAL was provided","href":"/errors/err_ngrok_244"},{"mode":"wide","title":"ERR_NGROK_247: The account ACCOUNT has been suspended for non-payment","href":"/errors/err_ngrok_247"},{"mode":"wide","title":"ERR_NGROK_248: The endpoint create request passed an invalid type of TYPE","href":"/errors/err_ngrok_248"},{"mode":"wide","title":"ERR_NGROK_249: The endpoint URL provided is not a valid URL: URL","href":"/errors/err_ngrok_249"},{"mode":"wide","title":"ERR_NGROK_250: Invalid CEL query: DETAIL","href":"/errors/err_ngrok_250"},{"mode":"wide","title":"ERR_NGROK_251","href":"/errors/err_ngrok_251"},{"mode":"wide","title":"ERR_NGROK_252","href":"/errors/err_ngrok_252"},{"mode":"wide","title":"ERR_NGROK_253","href":"/errors/err_ngrok_253"},{"mode":"wide","title":"ERR_NGROK_254","href":"/errors/err_ngrok_254"},{"mode":"wide","title":"ERR_NGROK_255","href":"/errors/err_ngrok_255"},{"mode":"wide","title":"ERR_NGROK_256: Only the access token's owner or an account admin can change it","href":"/errors/err_ngrok_256"},{"mode":"wide","title":"ERR_NGROK_257: Only an account admin can manage access tokens for another member","href":"/errors/err_ngrok_257"},{"mode":"wide","title":"ERR_NGROK_300: The authtoken credential ID has been revoked","href":"/errors/err_ngrok_300"},{"mode":"wide","title":"ERR_NGROK_301: The bind payload you specified is not valid","href":"/errors/err_ngrok_301"},{"mode":"wide","title":"ERR_NGROK_307: You must reserve an address for your account before it can be used","href":"/errors/err_ngrok_307"},{"mode":"wide","title":"ERR_NGROK_308: The credential ACL policy does not permit binding this address","href":"/errors/err_ngrok_308"},{"mode":"wide","title":"ERR_NGROK_309: This address is reserved for another account","href":"/errors/err_ngrok_309"},{"mode":"wide","title":"ERR_NGROK_310: Only Hobbyist and Pay-as-you-go plans may create endpoints with reserved addresses","href":"/errors/err_ngrok_310"},{"mode":"wide","title":"ERR_NGROK_311: This address is allocated for a different region","href":"/errors/err_ngrok_311"},{"mode":"wide","title":"ERR_NGROK_312: Failed to create a TLS endpoint for the account ACCOUNT","href":"/errors/err_ngrok_312"},{"mode":"wide","title":"ERR_NGROK_313: Only paid plans may create endpoints with custom subdomains","href":"/errors/err_ngrok_313"},{"mode":"wide","title":"ERR_NGROK_314: Only paid plans may create endpoints with custom hostnames","href":"/errors/err_ngrok_314"},{"mode":"wide","title":"ERR_NGROK_315: Wildcard domains are a feature reserved for ngrok's Pay-as-you-go plan","href":"/errors/err_ngrok_315"},{"mode":"wide","title":"ERR_NGROK_316: The credential ACL policy does not permit binding this name","href":"/errors/err_ngrok_316"},{"mode":"wide","title":"ERR_NGROK_317: You cannot create an endpoint with the domain DOMAIN in region","href":"/errors/err_ngrok_317"},{"mode":"wide","title":"ERR_NGROK_318: You must reserve a wildcard domain for your account before you can use it to create endpoints","href":"/errors/err_ngrok_318"},{"mode":"wide","title":"ERR_NGROK_319: You must reserve a custom hostname for your account before it can be used to create endpoints","href":"/errors/err_ngrok_319"},{"mode":"wide","title":"ERR_NGROK_320: This domain is reserved for another account","href":"/errors/err_ngrok_320"},{"mode":"wide","title":"ERR_NGROK_321: Wildcard names must be reserved exactly","href":"/errors/err_ngrok_321"},{"mode":"wide","title":"ERR_NGROK_322: This name is reserved in a different region","href":"/errors/err_ngrok_322"},{"mode":"wide","title":"ERR_NGROK_324: Your account may not run more than MAX endpoints over a single ngrok agent session","href":"/errors/err_ngrok_324"},{"mode":"wide","title":"ERR_NGROK_326: Invalid character CHAR in domain name","href":"/errors/err_ngrok_326"},{"mode":"wide","title":"ERR_NGROK_327: Domain has an invalid character sequence","href":"/errors/err_ngrok_327"},{"mode":"wide","title":"ERR_NGROK_328: Domain part PART has an invalid first character","href":"/errors/err_ngrok_328"},{"mode":"wide","title":"ERR_NGROK_329: Domain part PART has an invalid last character","href":"/errors/err_ngrok_329"},{"mode":"wide","title":"ERR_NGROK_330: Domain has an invalid character sequence","href":"/errors/err_ngrok_330"},{"mode":"wide","title":"ERR_NGROK_331: You may not create an endpoint using a domain with the TLD SUFFIX","href":"/errors/err_ngrok_331"},{"mode":"wide","title":"ERR_NGROK_332: PROTO is not a supported tunnel protocol","href":"/errors/err_ngrok_332"},{"mode":"wide","title":"ERR_NGROK_333: No tunnel found with the ID ID","href":"/errors/err_ngrok_333"},{"mode":"wide","title":"ERR_NGROK_334: The endpoint URL is already online","href":"/errors/err_ngrok_334"},{"mode":"wide","title":"ERR_NGROK_335: The bind cookie you specified is malformed","href":"/errors/err_ngrok_335"},{"mode":"wide","title":"ERR_NGROK_336: Could not find an account while creating this endpoint","href":"/errors/err_ngrok_336"},{"mode":"wide","title":"ERR_NGROK_337: The last payment for the ACCOUNT account failed","href":"/errors/err_ngrok_337"},{"mode":"wide","title":"ERR_NGROK_338: The account ACCOUNT has been suspended","href":"/errors/err_ngrok_338"},{"mode":"wide","title":"ERR_NGROK_341: IP Policy with ID ID not found","href":"/errors/err_ngrok_341"},{"mode":"wide","title":"ERR_NGROK_343: Endpoint configuration ID does not allow the agent to set basic authentication","href":"/errors/err_ngrok_343"},{"mode":"wide","title":"ERR_NGROK_344: Endpoint configuration ID does not allow clients to set an IP policy","href":"/errors/err_ngrok_344"},{"mode":"wide","title":"ERR_NGROK_345: Endpoint configuration IDs HTTPS module terminates TLS which is incompatible with a 'tls' tunnel","href":"/errors/err_ngrok_345"},{"mode":"wide","title":"ERR_NGROK_346: Endpoint configuration IDs HTTPS module does not terminate TLS which is incompatible with a 'https' tunnel","href":"/errors/err_ngrok_346"},{"mode":"wide","title":"ERR_NGROK_347: Domain has invalid punycode: IDNA_ERROR","href":"/errors/err_ngrok_347"},{"mode":"wide","title":"ERR_NGROK_348: Your account is limited to MAX sessions","href":"/errors/err_ngrok_348"},{"mode":"wide","title":"ERR_NGROK_349: Your account is rate limited for adding MAX sessions per INTERVAL","href":"/errors/err_ngrok_349"},{"mode":"wide","title":"ERR_NGROK_350: Your account is limited to MAX endpoints in a session","href":"/errors/err_ngrok_350"},{"mode":"wide","title":"ERR_NGROK_351: Your account is rate limited for adding MAX endpoints per INTERVAL","href":"/errors/err_ngrok_351"},{"mode":"wide","title":"ERR_NGROK_354: Failed to create an endpoint with the domain DOMAIN","href":"/errors/err_ngrok_354"},{"mode":"wide","title":"ERR_NGROK_355: Invalid '_' in domain name","href":"/errors/err_ngrok_355"},{"mode":"wide","title":"ERR_NGROK_356: The credential ACL policy does not permit binding random TCP addresses","href":"/errors/err_ngrok_356"},{"mode":"wide","title":"ERR_NGROK_358: Your account doesn't have permission to create labeled endpoints","href":"/errors/err_ngrok_358"},{"mode":"wide","title":"ERR_NGROK_359: Invalid basic auth credential","href":"/errors/err_ngrok_359"},{"mode":"wide","title":"ERR_NGROK_360: Invalid basic auth credential","href":"/errors/err_ngrok_360"},{"mode":"wide","title":"ERR_NGROK_361: Invalid circuit breaker configuration, error threshold percentage must be between 0.0 and 1.0 inclusive, was VAL","href":"/errors/err_ngrok_361"},{"mode":"wide","title":"ERR_NGROK_362: Invalid IP restriction configuration, invalid CIDR: CIDR","href":"/errors/err_ngrok_362"},{"mode":"wide","title":"ERR_NGROK_363: You must specify a supported provider name","href":"/errors/err_ngrok_363"},{"mode":"wide","title":"ERR_NGROK_364: Webhook provider PROVIDER is not supported","href":"/errors/err_ngrok_364"},{"mode":"wide","title":"ERR_NGROK_365: OAuth provider PROVIDER is not supported","href":"/errors/err_ngrok_365"},{"mode":"wide","title":"ERR_NGROK_366: You may not authorize more than MAX emails","href":"/errors/err_ngrok_366"},{"mode":"wide","title":"ERR_NGROK_367: You may not authorize more than MAX email domains","href":"/errors/err_ngrok_367"},{"mode":"wide","title":"ERR_NGROK_368: You may not request more than MAX oauth scopes","href":"/errors/err_ngrok_368"},{"mode":"wide","title":"ERR_NGROK_370: Added request header should be in key:value format, got VAL","href":"/errors/err_ngrok_370"},{"mode":"wide","title":"ERR_NGROK_371: Added response header should be in key:value format, got VAL","href":"/errors/err_ngrok_371"},{"mode":"wide","title":"ERR_NGROK_372: KEY is not a valid HTTP header name because it contains at least one invalid character","href":"/errors/err_ngrok_372"},{"mode":"wide","title":"ERR_NGROK_373: KEY is not a valid HTTP header name because it contains at least one invalid character","href":"/errors/err_ngrok_373"},{"mode":"wide","title":"ERR_NGROK_374: VAL is not a valid HTTP header value: REASON","href":"/errors/err_ngrok_374"},{"mode":"wide","title":"ERR_NGROK_375: Duplicate 'add' header, HEADER was provided twice with different casings: CASE_ONE and CASE_TWO","href":"/errors/err_ngrok_375"},{"mode":"wide","title":"ERR_NGROK_376: Exceeded the maximum number of added headers","href":"/errors/err_ngrok_376"},{"mode":"wide","title":"ERR_NGROK_377: The header beginning with PREFIX...' exceeds the maximum header name length of BYTES bytes","href":"/errors/err_ngrok_377"},{"mode":"wide","title":"ERR_NGROK_378: The header value for HEADERKEY beginning with PREFIX...' exceeds the maximum header value length of BYTES bytes","href":"/errors/err_ngrok_378"},{"mode":"wide","title":"ERR_NGROK_379: The sendgrid verification key is not a base64 encoded ecdsa public key","href":"/errors/err_ngrok_379"},{"mode":"wide","title":"ERR_NGROK_380: The resource ID was referenced, but not found","href":"/errors/err_ngrok_380"},{"mode":"wide","title":"ERR_NGROK_381: The host HOST and port PORT you requested is already reserved by an edge","href":"/errors/err_ngrok_381"},{"mode":"wide","title":"ERR_NGROK_382: The account \"NAME\" may not start an endpoint until the admin's email address is verified","href":"/errors/err_ngrok_382"},{"mode":"wide","title":"ERR_NGROK_383: You may not specify an OAuth Client ID without also specifying a Client Secret","href":"/errors/err_ngrok_383"},{"mode":"wide","title":"ERR_NGROK_384: You may not specify an OAuth Client Secret without also specifying a Client ID","href":"/errors/err_ngrok_384"},{"mode":"wide","title":"ERR_NGROK_385: You must specify an OIDC Client ID","href":"/errors/err_ngrok_385"},{"mode":"wide","title":"ERR_NGROK_386: You must specify an OIDC Client Secret","href":"/errors/err_ngrok_386"},{"mode":"wide","title":"ERR_NGROK_387: You must specify the OIDC Issuer URL","href":"/errors/err_ngrok_387"},{"mode":"wide","title":"ERR_NGROK_388: You may not request more than MAX OIDC scopes","href":"/errors/err_ngrok_388"},{"mode":"wide","title":"ERR_NGROK_389: You must specify an OAuth client ID and secret for a custom application or neither client ID nor a secret for the ngrok-managed OAuth application","href":"/errors/err_ngrok_389"},{"mode":"wide","title":"ERR_NGROK_390: You must use your own OAuth application, specifying its client ID and secret, in order to specify scopes","href":"/errors/err_ngrok_390"},{"mode":"wide","title":"ERR_NGROK_391: You may not request an individual OAuth scope with length greater than MAX","href":"/errors/err_ngrok_391"},{"mode":"wide","title":"ERR_NGROK_392: You may not request an individual OIDC scope with length greater than MAX","href":"/errors/err_ngrok_392"},{"mode":"wide","title":"ERR_NGROK_393: When specifying CIDRs to deny, you must specify at least one CIDR to allow","href":"/errors/err_ngrok_393"},{"mode":"wide","title":"ERR_NGROK_394: Each tunnel must specify either a protocol or labels, but neither was set","href":"/errors/err_ngrok_394"},{"mode":"wide","title":"ERR_NGROK_395: Bind rules in authtoken ACLs are not supported with labeled endpoints at this time","href":"/errors/err_ngrok_395"},{"mode":"wide","title":"ERR_NGROK_396: Domain DOMAIN is not a valid DNS name","href":"/errors/err_ngrok_396"},{"mode":"wide","title":"ERR_NGROK_397: Domain DOMAIN is not a valid DNS name","href":"/errors/err_ngrok_397"},{"mode":"wide","title":"ERR_NGROK_398: The ID header cannot be removed without specifying a replacement","href":"/errors/err_ngrok_398"},{"mode":"wide","title":"ERR_NGROK_399: The credential ACL policy does not permit binding this label","href":"/errors/err_ngrok_399"},{"mode":"wide","title":"ERR_NGROK_400: The region you specified, REGION is invalid","href":"/errors/err_ngrok_400"},{"mode":"wide","title":"ERR_NGROK_401: Only accounts on paid plans can reserve domains","href":"/errors/err_ngrok_401"},{"mode":"wide","title":"ERR_NGROK_402: Only the first part of a reserved domain may be a '*' wildcard","href":"/errors/err_ngrok_402"},{"mode":"wide","title":"ERR_NGROK_403: The first subdomain of a wildcard domain must be a single '*' character","href":"/errors/err_ngrok_403"},{"mode":"wide","title":"ERR_NGROK_404: You may not reserve names on ngrok.com","href":"/errors/err_ngrok_404"},{"mode":"wide","title":"ERR_NGROK_405: You may not reserve a domain with the suffix SUFFIX in the WANT region because names with this suffix must be reserved for the HAVE region","href":"/errors/err_ngrok_405"},{"mode":"wide","title":"ERR_NGROK_406: Invalid character CHAR in domain name","href":"/errors/err_ngrok_406"},{"mode":"wide","title":"ERR_NGROK_407: Domain part PART has an invalid first character","href":"/errors/err_ngrok_407"},{"mode":"wide","title":"ERR_NGROK_408: Domain part PART has an invalid last character","href":"/errors/err_ngrok_408"},{"mode":"wide","title":"ERR_NGROK_409: Domain has an invalid character sequence","href":"/errors/err_ngrok_409"},{"mode":"wide","title":"ERR_NGROK_410: Domain has an invalid character sequence","href":"/errors/err_ngrok_410"},{"mode":"wide","title":"ERR_NGROK_411: You may not reserve a name on the TLD SUFFIX","href":"/errors/err_ngrok_411"},{"mode":"wide","title":"ERR_NGROK_412: Only accounts on paid plans can reserve endpoints on custom domains","href":"/errors/err_ngrok_412"},{"mode":"wide","title":"ERR_NGROK_413: This domain is already reserved for your account","href":"/errors/err_ngrok_413"},{"mode":"wide","title":"ERR_NGROK_414: This domain is already reserved for another account","href":"/errors/err_ngrok_414"},{"mode":"wide","title":"ERR_NGROK_415: Your account is limited to MAX reserved domains","href":"/errors/err_ngrok_415"},{"mode":"wide","title":"ERR_NGROK_416: You may not register a wildcard for all SUFFIX domains","href":"/errors/err_ngrok_416"},{"mode":"wide","title":"ERR_NGROK_417: This wildcard domain would conflict with a domain reserved for another account","href":"/errors/err_ngrok_417"},{"mode":"wide","title":"ERR_NGROK_418: Your account is limited to MAX wildcard domains","href":"/errors/err_ngrok_418"},{"mode":"wide","title":"ERR_NGROK_419: Only Pay-as-you-go accounts can reserve wildcard domains","href":"/errors/err_ngrok_419"},{"mode":"wide","title":"ERR_NGROK_420: A description is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_420"},{"mode":"wide","title":"ERR_NGROK_421: Metadata is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_421"},{"mode":"wide","title":"ERR_NGROK_422: The reserved domain name update failed because no values were provided","href":"/errors/err_ngrok_422"},{"mode":"wide","title":"ERR_NGROK_423: The reserved domain name is limited to MAX characters; you are using VAL characters","href":"/errors/err_ngrok_423"},{"mode":"wide","title":"ERR_NGROK_424: Domain DOMAIN does not require a CNAME record","href":"/errors/err_ngrok_424"},{"mode":"wide","title":"ERR_NGROK_425: Domain DOMAIN CNAME record not found","href":"/errors/err_ngrok_425"},{"mode":"wide","title":"ERR_NGROK_426: Domain DOMAIN CNAME record not found, A record IPS found","href":"/errors/err_ngrok_426"},{"mode":"wide","title":"ERR_NGROK_427: Domain DOMAIN CNAME record resolved to HAVE, should have been WANT","href":"/errors/err_ngrok_427"},{"mode":"wide","title":"ERR_NGROK_428: You may not assign endpoint configuration ID because it is type TYPE","href":"/errors/err_ngrok_428"},{"mode":"wide","title":"ERR_NGROK_429: Domain has invalid punycode: IDNA_ERROR","href":"/errors/err_ngrok_429"},{"mode":"wide","title":"ERR_NGROK_430: Another account is running an active tunnel on the domain DOMAIN","href":"/errors/err_ngrok_430"},{"mode":"wide","title":"ERR_NGROK_431: Your account is limited to MAX reserved domains","href":"/errors/err_ngrok_431"},{"mode":"wide","title":"ERR_NGROK_432: Your account is rate limited for adding MAX reserved domains per INTERVAL","href":"/errors/err_ngrok_432"},{"mode":"wide","title":"ERR_NGROK_433: Your account is limited to MAX reserved wildcard domains","href":"/errors/err_ngrok_433"},{"mode":"wide","title":"ERR_NGROK_434: Either a certificate or a certificate management policy may be specified, not both","href":"/errors/err_ngrok_434"},{"mode":"wide","title":"ERR_NGROK_435: Invalid authority specified in managed certificate policy","href":"/errors/err_ngrok_435"},{"mode":"wide","title":"ERR_NGROK_436: The certificate of a reserved domain with a managed certificate policy can not be detached directly, instead the managed certificate policy itself should be detached","href":"/errors/err_ngrok_436"},{"mode":"wide","title":"ERR_NGROK_438: Invalid '_' in domain name","href":"/errors/err_ngrok_438"},{"mode":"wide","title":"ERR_NGROK_439: The certificate_management_policy field must be null for domains owned by ngrok","href":"/errors/err_ngrok_439"},{"mode":"wide","title":"ERR_NGROK_440: Uploaded certificates are not allowed for domains owned by ngrok","href":"/errors/err_ngrok_440"},{"mode":"wide","title":"ERR_NGROK_441: Domain DOMAIN does not require an ACME Challenge CNAME record","href":"/errors/err_ngrok_441"},{"mode":"wide","title":"ERR_NGROK_442: Domain RECORD ACME Challenge CNAME record not found","href":"/errors/err_ngrok_442"},{"mode":"wide","title":"ERR_NGROK_443: ACME Challenge RECORD CNAME record not found, A record IPS found","href":"/errors/err_ngrok_443"},{"mode":"wide","title":"ERR_NGROK_444: ACME Challenge RECORD CNAME record resolved to HAVE, should have been WANT","href":"/errors/err_ngrok_444"},{"mode":"wide","title":"ERR_NGROK_445: There was an error looking up the DNS RTYPE record for domain DOMAIN (status: STATUS): MSG","href":"/errors/err_ngrok_445"},{"mode":"wide","title":"ERR_NGROK_446: The domain DOMAIN could not be deleted because it is still referenced by an edge or cloud endpoint","href":"/errors/err_ngrok_446"},{"mode":"wide","title":"ERR_NGROK_447: Managed certificates are not allowed on direct subdomains of DOMAIN","href":"/errors/err_ngrok_447"},{"mode":"wide","title":"ERR_NGROK_448: The domain DOMAIN is not a fully qualified domain name","href":"/errors/err_ngrok_448"},{"mode":"wide","title":"ERR_NGROK_449: You may only specify one of 'name' or 'domain'","href":"/errors/err_ngrok_449"},{"mode":"wide","title":"ERR_NGROK_450: You are not allowed to reserve subdomains of DOMAIN","href":"/errors/err_ngrok_450"},{"mode":"wide","title":"ERR_NGROK_451: You are not allowed to change the region of DOMAIN","href":"/errors/err_ngrok_451"},{"mode":"wide","title":"ERR_NGROK_455: This subdomain is covered by WILDCARD_DOMAIN however the wildcard's CNAME record resolved to HAVE, should have been WANT","href":"/errors/err_ngrok_455"},{"mode":"wide","title":"ERR_NGROK_456: You are not allowed to specify duplicate regions","href":"/errors/err_ngrok_456"},{"mode":"wide","title":"ERR_NGROK_457: Custom error template URLs are limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_457"},{"mode":"wide","title":"ERR_NGROK_458: You are not allowed to delete your dev domain","href":"/errors/err_ngrok_458"},{"mode":"wide","title":"ERR_NGROK_459: You may not change Region and IP resolution for this domain","href":"/errors/err_ngrok_459"},{"mode":"wide","title":"ERR_NGROK_460: You may not change Region and IP resolution for domains in this account","href":"/errors/err_ngrok_460"},{"mode":"wide","title":"ERR_NGROK_461: Your account is limited to MAX domain(s) with custom Region and IP resolution","href":"/errors/err_ngrok_461"},{"mode":"wide","title":"ERR_NGROK_462: Region and IP resolution is not available for this domain","href":"/errors/err_ngrok_462"},{"mode":"wide","title":"ERR_NGROK_500: The region you specified, REGION is invalid","href":"/errors/err_ngrok_500"},{"mode":"wide","title":"ERR_NGROK_501: Only paid accounts can reserve addresses","href":"/errors/err_ngrok_501"},{"mode":"wide","title":"ERR_NGROK_502: Your account is limited to MAX reserved addresses","href":"/errors/err_ngrok_502"},{"mode":"wide","title":"ERR_NGROK_503: No available reserved addresses in region REGION","href":"/errors/err_ngrok_503"},{"mode":"wide","title":"ERR_NGROK_504: A description is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_504"},{"mode":"wide","title":"ERR_NGROK_505: Metadata is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_505"},{"mode":"wide","title":"ERR_NGROK_506: The reserved address update failed because no values were provided","href":"/errors/err_ngrok_506"},{"mode":"wide","title":"ERR_NGROK_507: You may not assign endpoint configuration ID because it is type TYPE","href":"/errors/err_ngrok_507"},{"mode":"wide","title":"ERR_NGROK_508: Your account is limited to MAX reserved addresses","href":"/errors/err_ngrok_508"},{"mode":"wide","title":"ERR_NGROK_509: Your account is rate limited for adding MAX reserved addresses per INTERVAL","href":"/errors/err_ngrok_509"},{"mode":"wide","title":"ERR_NGROK_511: The domain DOMAIN has a dangling CNAME record","href":"/errors/err_ngrok_511"},{"mode":"wide","title":"ERR_NGROK_512: The domain DOMAIN has a dangling A, AAAA, ALIAS or other record pointing to ngrok","href":"/errors/err_ngrok_512"},{"mode":"wide","title":"ERR_NGROK_513: The domain DOMAIN is not a valid DNS name","href":"/errors/err_ngrok_513"},{"mode":"wide","title":"ERR_NGROK_514: The domain DOMAIN is not a valid DNS name","href":"/errors/err_ngrok_514"},{"mode":"wide","title":"ERR_NGROK_515: The domain DOMAIN is proxied by Cloudflare","href":"/errors/err_ngrok_515"},{"mode":"wide","title":"ERR_NGROK_516: The wildcard DOMAIN is proxied by Cloudflare","href":"/errors/err_ngrok_516"},{"mode":"wide","title":"ERR_NGROK_517: The ACME Challenge RECORD is proxied by Cloudflare","href":"/errors/err_ngrok_517"},{"mode":"wide","title":"ERR_NGROK_600: Invalid ACL rule","href":"/errors/err_ngrok_600"},{"mode":"wide","title":"ERR_NGROK_601: This credential is your tunnel token and cannot be deleted, only rotated","href":"/errors/err_ngrok_601"},{"mode":"wide","title":"ERR_NGROK_602: Your account is limited to MAX authtokens","href":"/errors/err_ngrok_602"},{"mode":"wide","title":"ERR_NGROK_603: Your account is limited to MAX API keys","href":"/errors/err_ngrok_603"},{"mode":"wide","title":"ERR_NGROK_604: A description is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_604"},{"mode":"wide","title":"ERR_NGROK_605: Metadata is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_605"},{"mode":"wide","title":"ERR_NGROK_606: The credentials update failed because no values were provided","href":"/errors/err_ngrok_606"},{"mode":"wide","title":"ERR_NGROK_607: SSH tunnel feature is not enabled on your account","href":"/errors/err_ngrok_607"},{"mode":"wide","title":"ERR_NGROK_608: Your account is limited to MAX SSH keys","href":"/errors/err_ngrok_608"},{"mode":"wide","title":"ERR_NGROK_609: The public key PUBKEY already exists on your account","href":"/errors/err_ngrok_609"},{"mode":"wide","title":"ERR_NGROK_610: The public key PUBKEY is already used in a different account","href":"/errors/err_ngrok_610"},{"mode":"wide","title":"ERR_NGROK_611: Public key is missing or empty","href":"/errors/err_ngrok_611"},{"mode":"wide","title":"ERR_NGROK_612: Invalid public key PUBKEY: ERR","href":"/errors/err_ngrok_612"},{"mode":"wide","title":"ERR_NGROK_613: Your account is limited to MAX API keys","href":"/errors/err_ngrok_613"},{"mode":"wide","title":"ERR_NGROK_614: Your account is rate limited for adding MAX API keys per INTERVAL","href":"/errors/err_ngrok_614"},{"mode":"wide","title":"ERR_NGROK_615: Your account is limited to MAX authtokens","href":"/errors/err_ngrok_615"},{"mode":"wide","title":"ERR_NGROK_617: Your account is limited to MAX SSH keys","href":"/errors/err_ngrok_617"},{"mode":"wide","title":"ERR_NGROK_619: Your account is not authorized to use this ACL rule type","href":"/errors/err_ngrok_619"},{"mode":"wide","title":"ERR_NGROK_620: Only Pay-as-you-go plans can use tunnel ACL rules","href":"/errors/err_ngrok_620"},{"mode":"wide","title":"ERR_NGROK_622: Only Pay-as-you-go plans can use SSH ACL rules","href":"/errors/err_ngrok_622"},{"mode":"wide","title":"ERR_NGROK_627: The auth token is already owned by a user and cannot be re-assigned ownership","href":"/errors/err_ngrok_627"},{"mode":"wide","title":"ERR_NGROK_628: The API key is already owned by a user and cannot be re-assigned ownership","href":"/errors/err_ngrok_628"},{"mode":"wide","title":"ERR_NGROK_629: The SSH public key is already owned by a user and cannot be re-assigned ownership","href":"/errors/err_ngrok_629"},{"mode":"wide","title":"ERR_NGROK_630: You must be an admin to set credential ownership","href":"/errors/err_ngrok_630"},{"mode":"wide","title":"ERR_NGROK_631: You may specify only one of owner_id, owner_email, or scim_user_id","href":"/errors/err_ngrok_631"},{"mode":"wide","title":"ERR_NGROK_632: You may specify either an owner (owner_id, owner_email, or scim_user_id) or membership_id, but not both","href":"/errors/err_ngrok_632"},{"mode":"wide","title":"ERR_NGROK_633: Your account is not authorized to specify credential ownership","href":"/errors/err_ngrok_633"},{"mode":"wide","title":"ERR_NGROK_634: No credential owner could be determined","href":"/errors/err_ngrok_634"},{"mode":"wide","title":"ERR_NGROK_635: API access requires that the owner of the API key has write privileges","href":"/errors/err_ngrok_635"},{"mode":"wide","title":"ERR_NGROK_636: The credential owner is marked as inactive on the account","href":"/errors/err_ngrok_636"},{"mode":"wide","title":"ERR_NGROK_637: This credential cannot be deleted because it is the default authtoken tied to EMAIL","href":"/errors/err_ngrok_637"},{"mode":"wide","title":"ERR_NGROK_638: Your account is not allowed to create credentials with pre-computed tokens","href":"/errors/err_ngrok_638"},{"mode":"wide","title":"ERR_NGROK_702: Too many connections! The tunnel session SESSION has violated the rate-limit policy of THRESHOLD connections per minute by initiating COUNT connections in the last SECONDS seconds","href":"/errors/err_ngrok_702"},{"mode":"wide","title":"ERR_NGROK_703: Too many connections! The account hosting this endpoint has violated the rate-limit policy of THRESHOLD connections per minute by initiating COUNT connections in the last SECONDS seconds","href":"/errors/err_ngrok_703"},{"mode":"wide","title":"ERR_NGROK_714: This ngrok account has reached its simultaneous connections limit","href":"/errors/err_ngrok_714"},{"mode":"wide","title":"ERR_NGROK_715: You have exceeded your limit on connections per minute","href":"/errors/err_ngrok_715"},{"mode":"wide","title":"ERR_NGROK_716: This unauthenticated ngrok session has reached its simultaneous connections limit","href":"/errors/err_ngrok_716"},{"mode":"wide","title":"ERR_NGROK_717: This unauthenticated ngrok session has reached its connection rate limit","href":"/errors/err_ngrok_717"},{"mode":"wide","title":"ERR_NGROK_718: Your account is rate limited to MAX bytes incoming traffic per INTERVAL","href":"/errors/err_ngrok_718"},{"mode":"wide","title":"ERR_NGROK_720: Your account is rate limited to MAX bytes outgoing traffic per INTERVAL","href":"/errors/err_ngrok_720"},{"mode":"wide","title":"ERR_NGROK_722: internal server error","href":"/errors/err_ngrok_722"},{"mode":"wide","title":"ERR_NGROK_724: No backend is available to serve requests for endpoint URL","href":"/errors/err_ngrok_724"},{"mode":"wide","title":"ERR_NGROK_725: This ngrok account has reached its network bandwidth limit for the month","href":"/errors/err_ngrok_725"},{"mode":"wide","title":"ERR_NGROK_727: This ngrok account has reached its HTTP requests limit for the month","href":"/errors/err_ngrok_727"},{"mode":"wide","title":"ERR_NGROK_729: This ngrok account has reached its TCP connections limit for the month","href":"/errors/err_ngrok_729"},{"mode":"wide","title":"ERR_NGROK_730: This ngrok account has reached its TLS connections limit for the month","href":"/errors/err_ngrok_730"},{"mode":"wide","title":"ERR_NGROK_734: You have exceeded your limit of MAX requests per INTERVAL","href":"/errors/err_ngrok_734"},{"mode":"wide","title":"ERR_NGROK_741: Internal server error","href":"/errors/err_ngrok_741"},{"mode":"wide","title":"ERR_NGROK_742: This server is draining connections and cannot accept new ones","href":"/errors/err_ngrok_742"},{"mode":"wide","title":"ERR_NGROK_743: This server is temporarily shedding traffic due to abnormally high request volume","href":"/errors/err_ngrok_743"},{"mode":"wide","title":"ERR_NGROK_744: This ngrok account has reached its TCP connections limit for the minute","href":"/errors/err_ngrok_744"},{"mode":"wide","title":"ERR_NGROK_745: This ngrok account has reached its TLS connections limit for the minute","href":"/errors/err_ngrok_745"},{"mode":"wide","title":"ERR_NGROK_800: Unknown stream type: TYPE","href":"/errors/err_ngrok_800"},{"mode":"wide","title":"ERR_NGROK_801: The request payload you specified is not valid","href":"/errors/err_ngrok_801"},{"mode":"wide","title":"ERR_NGROK_802: internal server error","href":"/errors/err_ngrok_802"},{"mode":"wide","title":"ERR_NGROK_803: The server process is shutting down and refusing new requests","href":"/errors/err_ngrok_803"},{"mode":"wide","title":"ERR_NGROK_804: This ngrok agent does not support remote restarting: REASON","href":"/errors/err_ngrok_804"},{"mode":"wide","title":"ERR_NGROK_805: This ngrok agent does not support remote stopping: REASON","href":"/errors/err_ngrok_805"},{"mode":"wide","title":"ERR_NGROK_806: This ngrok agent does not support remote updating: REASON","href":"/errors/err_ngrok_806"},{"mode":"wide","title":"ERR_NGROK_807: The remote ngrok agent failed to stop because of an error: ERR","href":"/errors/err_ngrok_807"},{"mode":"wide","title":"ERR_NGROK_808: The remote ngrok agent failed to restart because of an error: ERR","href":"/errors/err_ngrok_808"},{"mode":"wide","title":"ERR_NGROK_809: The remote ngrok agent failed to update because of an error: ERR","href":"/errors/err_ngrok_809"},{"mode":"wide","title":"ERR_NGROK_810: There was a networking error while trying to send this operation to the ngrok agent or trying to read the response","href":"/errors/err_ngrok_810"},{"mode":"wide","title":"ERR_NGROK_811: Could not negotiate a protocol version","href":"/errors/err_ngrok_811"},{"mode":"wide","title":"ERR_NGROK_812: Your request exceeded the maximum size of SIZE","href":"/errors/err_ngrok_812"},{"mode":"wide","title":"ERR_NGROK_813: Your message \"MESSAGE\"\" is not supported by this version of the protocol: PROTOVERSION","href":"/errors/err_ngrok_813"},{"mode":"wide","title":"ERR_NGROK_814: No tunnel with the ID TUNNELID is bound to this agent session","href":"/errors/err_ngrok_814"}]},{"group":"ERR_NGROK_1000-1999","pages":[{"mode":"wide","title":"ERR_NGROK_1000: Your billing address is too long: VAL bytes","href":"/errors/err_ngrok_1000"},{"mode":"wide","title":"ERR_NGROK_1001: Your tax ID is too long: VAL bytes","href":"/errors/err_ngrok_1001"},{"mode":"wide","title":"ERR_NGROK_1002: Your account is limited to MAX billing email addresses","href":"/errors/err_ngrok_1002"},{"mode":"wide","title":"ERR_NGROK_1003: The billing email ID (EMAIL) may not be deleted","href":"/errors/err_ngrok_1003"},{"mode":"wide","title":"ERR_NGROK_1004: The billing email is too long: VAL bytes","href":"/errors/err_ngrok_1004"},{"mode":"wide","title":"ERR_NGROK_1005: The billing email address EMAIL is invalid: ERR","href":"/errors/err_ngrok_1005"},{"mode":"wide","title":"ERR_NGROK_1006: There was a problem with your credit card: MSG","href":"/errors/err_ngrok_1006"},{"mode":"wide","title":"ERR_NGROK_1007: Your subscription was updated, but we failed to charge your card: MSG","href":"/errors/err_ngrok_1007"},{"mode":"wide","title":"ERR_NGROK_1008: Your account is limited to MAX billing email addresses","href":"/errors/err_ngrok_1008"},{"mode":"wide","title":"ERR_NGROK_1010: The email address \"EMAIL\" is invalid","href":"/errors/err_ngrok_1010"},{"mode":"wide","title":"ERR_NGROK_1011: Your account is currently past due","href":"/errors/err_ngrok_1011"},{"mode":"wide","title":"ERR_NGROK_1012: You may not purchase fewer licenses than users","href":"/errors/err_ngrok_1012"},{"mode":"wide","title":"ERR_NGROK_1013: Yearly plans can only be downgraded or canceled in their final month","href":"/errors/err_ngrok_1013"},{"mode":"wide","title":"ERR_NGROK_1014: You may only purchase one license product at a time","href":"/errors/err_ngrok_1014"},{"mode":"wide","title":"ERR_NGROK_1015: You are on a legacy custom subscription","href":"/errors/err_ngrok_1015"},{"mode":"wide","title":"ERR_NGROK_1016: Cannot charge customer that has no active payment source","href":"/errors/err_ngrok_1016"},{"mode":"wide","title":"ERR_NGROK_1017: Accounts in bad standing may only switch to a free plan or update their payment method","href":"/errors/err_ngrok_1017"},{"mode":"wide","title":"ERR_NGROK_1018: You may only purchase COUNT licenses at the TIER tier","href":"/errors/err_ngrok_1018"},{"mode":"wide","title":"ERR_NGROK_1019: The ADDON addon is not allowed for this plan","href":"/errors/err_ngrok_1019"},{"mode":"wide","title":"ERR_NGROK_1020: Addon selections for LICENSE are not valid","href":"/errors/err_ngrok_1020"},{"mode":"wide","title":"ERR_NGROK_1021: The billing email address EMAIL is already added","href":"/errors/err_ngrok_1021"},{"mode":"wide","title":"ERR_NGROK_1022: Your invoice tax ID type INPUT is not a valid option","href":"/errors/err_ngrok_1022"},{"mode":"wide","title":"ERR_NGROK_1023: Your invoice tax ID country INPUT is not a valid option","href":"/errors/err_ngrok_1023"},{"mode":"wide","title":"ERR_NGROK_1024: Your invoice billing address country is too long: VAL bytes","href":"/errors/err_ngrok_1024"},{"mode":"wide","title":"ERR_NGROK_1025: Your invoice billing address state is too long: VAL bytes","href":"/errors/err_ngrok_1025"},{"mode":"wide","title":"ERR_NGROK_1026: Your invoice billing address city is too long: VAL bytes","href":"/errors/err_ngrok_1026"},{"mode":"wide","title":"ERR_NGROK_1027: Your invoice billing address line1 is too long: VAL bytes","href":"/errors/err_ngrok_1027"},{"mode":"wide","title":"ERR_NGROK_1028: Your invoice billing address line2 is too long: VAL bytes","href":"/errors/err_ngrok_1028"},{"mode":"wide","title":"ERR_NGROK_1029: Your invoice billing address postal code is too long: VAL bytes","href":"/errors/err_ngrok_1029"},{"mode":"wide","title":"ERR_NGROK_1030: Your invoice billing address name is too long: VAL bytes","href":"/errors/err_ngrok_1030"},{"mode":"wide","title":"ERR_NGROK_1031: Tax information is incomplete: Missing Type for Tax ID","href":"/errors/err_ngrok_1031"},{"mode":"wide","title":"ERR_NGROK_1032: Missing Tax ID for Type","href":"/errors/err_ngrok_1032"},{"mode":"wide","title":"ERR_NGROK_1033: Our billing provider is temporarily unavailable","href":"/errors/err_ngrok_1033"},{"mode":"wide","title":"ERR_NGROK_1034: Your payment for MSG has not settled yet","href":"/errors/err_ngrok_1034"},{"mode":"wide","title":"ERR_NGROK_1035: Another payment attempt for MSG is already in progress","href":"/errors/err_ngrok_1035"},{"mode":"wide","title":"ERR_NGROK_1036: Your subscription ended, so this change didn't apply","href":"/errors/err_ngrok_1036"},{"mode":"wide","title":"ERR_NGROK_1100: No public keys were sent for this SSH tunnel","href":"/errors/err_ngrok_1100"},{"mode":"wide","title":"ERR_NGROK_1101: Too many public keys sent for this SSH tunnel (sent VAL, max MAX)","href":"/errors/err_ngrok_1101"},{"mode":"wide","title":"ERR_NGROK_1102: Could not find your account based on the public keys sent for this SSH tunnel","href":"/errors/err_ngrok_1102"},{"mode":"wide","title":"ERR_NGROK_1103: The account ACCOUNT doesn't have the SSH tunneling feature enabled","href":"/errors/err_ngrok_1103"},{"mode":"wide","title":"ERR_NGROK_1104: Multiplexing is not supported with SSH tunneling","href":"/errors/err_ngrok_1104"},{"mode":"wide","title":"ERR_NGROK_1105: Only one port forward per tunneling session is supported","href":"/errors/err_ngrok_1105"},{"mode":"wide","title":"ERR_NGROK_1106: Could not find USER API version","href":"/errors/err_ngrok_1106"},{"mode":"wide","title":"ERR_NGROK_1107: No tunnel type specified","href":"/errors/err_ngrok_1107"},{"mode":"wide","title":"ERR_NGROK_1108: CMD is not a valid tunnel type","href":"/errors/err_ngrok_1108"},{"mode":"wide","title":"ERR_NGROK_1109: FLAG flag is not supported when using SSH tunneling","href":"/errors/err_ngrok_1109"},{"mode":"wide","title":"ERR_NGROK_1110: Error while parsing the CMD command:","href":"/errors/err_ngrok_1110"},{"mode":"wide","title":"ERR_NGROK_1111: Timeout while waiting for SSH session","href":"/errors/err_ngrok_1111"},{"mode":"wide","title":"ERR_NGROK_1112: Timeout while waiting for port forward request","href":"/errors/err_ngrok_1112"},{"mode":"wide","title":"ERR_NGROK_1113: Cannot use bind port PORT when using CMD command","href":"/errors/err_ngrok_1113"},{"mode":"wide","title":"ERR_NGROK_1114: Cannot use bind address '-R HOST:PORT:' with '-remote-addr=ADDR parameter","href":"/errors/err_ngrok_1114"},{"mode":"wide","title":"ERR_NGROK_1115: Cannot request a custom TCP port '-R PORT:' with '-remote-addr=ADDR parameter","href":"/errors/err_ngrok_1115"},{"mode":"wide","title":"ERR_NGROK_1116: Cannot request a custom bind port '-R PORT:'","href":"/errors/err_ngrok_1116"},{"mode":"wide","title":"ERR_NGROK_1117: Cannot request a random port with a custom bind address ADDR in '-R ADDR:0:'","href":"/errors/err_ngrok_1117"},{"mode":"wide","title":"ERR_NGROK_1118: Cannot use binding address '-R ADDR:' with '-hostname=HOSTNAME parameter","href":"/errors/err_ngrok_1118"},{"mode":"wide","title":"ERR_NGROK_1119: Cannot use binding address '-R ADDR:' with '-subdomain=SUBDOMAIN parameter","href":"/errors/err_ngrok_1119"},{"mode":"wide","title":"ERR_NGROK_1120: Cannot use '-hostname=HOSTNAME with '-subdomain=SUBDOMAIN parameter","href":"/errors/err_ngrok_1120"},{"mode":"wide","title":"ERR_NGROK_1121: SSH sessions do not support update","href":"/errors/err_ngrok_1121"},{"mode":"wide","title":"ERR_NGROK_1122: SSH sessions do not support restart","href":"/errors/err_ngrok_1122"},{"mode":"wide","title":"ERR_NGROK_1123: Tunnel '-proxy-proto=PROXYPROTO specifies invalid protocol version","href":"/errors/err_ngrok_1123"},{"mode":"wide","title":"ERR_NGROK_1125: HIPAA-enabled accounts cannot use SSH tunneling","href":"/errors/err_ngrok_1125"},{"mode":"wide","title":"ERR_NGROK_1200: Authorized account's primary email EMAIL is not verified","href":"/errors/err_ngrok_1200"},{"mode":"wide","title":"ERR_NGROK_1202: You can't enable Google OAuth without first connecting a Google Apps login","href":"/errors/err_ngrok_1202"},{"mode":"wide","title":"ERR_NGROK_1203: You can't enable Google OAuth because your connected Google login does not have a Google Apps domain","href":"/errors/err_ngrok_1203"},{"mode":"wide","title":"ERR_NGROK_1204: You can't delete your payment method while you have an active subscription","href":"/errors/err_ngrok_1204"},{"mode":"wide","title":"ERR_NGROK_1205: You failed to solve the CAPTCHA, please try again","href":"/errors/err_ngrok_1205"},{"mode":"wide","title":"ERR_NGROK_1206: You failed to solve the CAPTCHA, please try again","href":"/errors/err_ngrok_1206"},{"mode":"wide","title":"ERR_NGROK_1207: Cannot switch to an account you are not a member of","href":"/errors/err_ngrok_1207"},{"mode":"wide","title":"ERR_NGROK_1208: You failed to solve the CAPTCHA, please try again","href":"/errors/err_ngrok_1208"},{"mode":"wide","title":"ERR_NGROK_1211: Warning: Your IP does not match the IP Policy for this Account","href":"/errors/err_ngrok_1211"},{"mode":"wide","title":"ERR_NGROK_1212: Your IP does not match the IP Policy for this Account","href":"/errors/err_ngrok_1212"},{"mode":"wide","title":"ERR_NGROK_1214: Your account is rate limited to MAX requests per INTERVAL","href":"/errors/err_ngrok_1214"},{"mode":"wide","title":"ERR_NGROK_1215: The user EMAIL does not have permissions to invite other team members","href":"/errors/err_ngrok_1215"},{"mode":"wide","title":"ERR_NGROK_1216: The user EMAIL does not have permissions to manage team members","href":"/errors/err_ngrok_1216"},{"mode":"wide","title":"ERR_NGROK_1217: The user EMAIL does not have permissions to view billing information","href":"/errors/err_ngrok_1217"},{"mode":"wide","title":"ERR_NGROK_1218: The user EMAIL does not have permissions to change billing information","href":"/errors/err_ngrok_1218"},{"mode":"wide","title":"ERR_NGROK_1219: The user EMAIL does not have permissions to change developer resources","href":"/errors/err_ngrok_1219"},{"mode":"wide","title":"ERR_NGROK_1220: The user EMAIL does not have administrative privileges which are required to perform this operation","href":"/errors/err_ngrok_1220"},{"mode":"wide","title":"ERR_NGROK_1221: Refusing to perform an account delete operation because you are using the dashboard with a different active account than the one you requested deletion for","href":"/errors/err_ngrok_1221"},{"mode":"wide","title":"ERR_NGROK_1222: You are not a member of any account","href":"/errors/err_ngrok_1222"},{"mode":"wide","title":"ERR_NGROK_1223: You are logged out, please log back in","href":"/errors/err_ngrok_1223"},{"mode":"wide","title":"ERR_NGROK_1224: You are no longer a member of the current account","href":"/errors/err_ngrok_1224"},{"mode":"wide","title":"ERR_NGROK_1225: You must accept the terms of service and privacy policy to sign up for ngrok","href":"/errors/err_ngrok_1225"},{"mode":"wide","title":"ERR_NGROK_1226: You are disallowed from creating an ngrok account due to violation of the terms of service","href":"/errors/err_ngrok_1226"},{"mode":"wide","title":"ERR_NGROK_1227: The number of login attempts with this email has been exceeded, please try again later","href":"/errors/err_ngrok_1227"},{"mode":"wide","title":"ERR_NGROK_1228: You are no longer an active member of the current account","href":"/errors/err_ngrok_1228"},{"mode":"wide","title":"ERR_NGROK_1229: The resource you are attempting to access requires MFA, please authenticate via a second factor","href":"/errors/err_ngrok_1229"},{"mode":"wide","title":"ERR_NGROK_1230: We do not allow sign ups from your location","href":"/errors/err_ngrok_1230"},{"mode":"wide","title":"ERR_NGROK_1231: The email address EMAIL already has an active, unredeemed invitation to this account","href":"/errors/err_ngrok_1231"},{"mode":"wide","title":"ERR_NGROK_1232: We do not allow sign ups from anonymous proxies such as Tor","href":"/errors/err_ngrok_1232"},{"mode":"wide","title":"ERR_NGROK_1233: The email address EMAIL is already associated with an SSO Identity Provider connection","href":"/errors/err_ngrok_1233"},{"mode":"wide","title":"ERR_NGROK_1400: The IP Policy update failed because no values were provided","href":"/errors/err_ngrok_1400"},{"mode":"wide","title":"ERR_NGROK_1401: The IP Policy Rule update failed because no values were provided","href":"/errors/err_ngrok_1401"},{"mode":"wide","title":"ERR_NGROK_1402: IP Policy not found","href":"/errors/err_ngrok_1402"},{"mode":"wide","title":"ERR_NGROK_1404: IP Policy Rule not found","href":"/errors/err_ngrok_1404"},{"mode":"wide","title":"ERR_NGROK_1405: Required parameter is missing","href":"/errors/err_ngrok_1405"},{"mode":"wide","title":"ERR_NGROK_1406: Invalid CIDR: CIDR","href":"/errors/err_ngrok_1406"},{"mode":"wide","title":"ERR_NGROK_1407: IP Policy with name NAME already exists","href":"/errors/err_ngrok_1407"},{"mode":"wide","title":"ERR_NGROK_1408: IP Policy Rule with CIDR CIDR already exists","href":"/errors/err_ngrok_1408"},{"mode":"wide","title":"ERR_NGROK_1409: IP Policy Rule CIDR CIDR must be specified using the lowest IP address in the range","href":"/errors/err_ngrok_1409"},{"mode":"wide","title":"ERR_NGROK_1410: Your account is limited to a maximum of MAX IP Policies","href":"/errors/err_ngrok_1410"},{"mode":"wide","title":"ERR_NGROK_1411: Your account is limited to a maximum of MAX IP Policy rules for each IP Policy","href":"/errors/err_ngrok_1411"},{"mode":"wide","title":"ERR_NGROK_1412: Your legacy account is not authorized to use per-tunnel IP policies","href":"/errors/err_ngrok_1412"},{"mode":"wide","title":"ERR_NGROK_1413: IP Policy Rule is missing a network mask","href":"/errors/err_ngrok_1413"},{"mode":"wide","title":"ERR_NGROK_1414: The provided ip_policy_id is invalid","href":"/errors/err_ngrok_1414"},{"mode":"wide","title":"ERR_NGROK_1415: Your account is limited to MAX IP Policies","href":"/errors/err_ngrok_1415"},{"mode":"wide","title":"ERR_NGROK_1417: Your account is limited to MAX rules per IP Policy","href":"/errors/err_ngrok_1417"},{"mode":"wide","title":"ERR_NGROK_1419: Cannot delete only rule (RULEID) in use by dashboard IP Restriction (RESTRICTIONID)","href":"/errors/err_ngrok_1419"},{"mode":"wide","title":"ERR_NGROK_1420: Cannot delete IP Policy (POLICYID) because it is referenced by one or more IP Restrictions: (RESTRICTIONIDS)","href":"/errors/err_ngrok_1420"},{"mode":"wide","title":"ERR_NGROK_1421: The IP Policy Rule description exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_1421"},{"mode":"wide","title":"ERR_NGROK_1422: An IP Policy Rule must have an 'action' of either 'allow' or 'deny'","href":"/errors/err_ngrok_1422"},{"mode":"wide","title":"ERR_NGROK_1423: An action should now be specified on the IP Policy Rule, not IP Policy","href":"/errors/err_ngrok_1423"},{"mode":"wide","title":"ERR_NGROK_1500: Maintenance in progress, operations for some resources are read-only","href":"/errors/err_ngrok_1500"},{"mode":"wide","title":"ERR_NGROK_1501: Maintenance in progress, some operations are unavailable","href":"/errors/err_ngrok_1501"},{"mode":"wide","title":"ERR_NGROK_1600: Endpoint configuration not found","href":"/errors/err_ngrok_1600"},{"mode":"wide","title":"ERR_NGROK_1601: Invalid endpoint configuration ID","href":"/errors/err_ngrok_1601"},{"mode":"wide","title":"ERR_NGROK_1602: Invalid endpoint configuration request","href":"/errors/err_ngrok_1602"},{"mode":"wide","title":"ERR_NGROK_1607: The IP Policy ID ID specified for the IP Policy module does not exist","href":"/errors/err_ngrok_1607"},{"mode":"wide","title":"ERR_NGROK_1608: Endpoint Configurations are deprecated","href":"/errors/err_ngrok_1608"},{"mode":"wide","title":"ERR_NGROK_1609: Your account is limited to a maximum of MAX endpoint configurations","href":"/errors/err_ngrok_1609"},{"mode":"wide","title":"ERR_NGROK_1611: Invalid endpoint configuration, circuit breaker error threshold percentage must be between 0.0 and 1.0 inclusive, was VAL","href":"/errors/err_ngrok_1611"},{"mode":"wide","title":"ERR_NGROK_1612: The auth provider VAL does not exist","href":"/errors/err_ngrok_1612"},{"mode":"wide","title":"ERR_NGROK_1613: The endpoint configuration exceeds the max number of ip policies","href":"/errors/err_ngrok_1613"},{"mode":"wide","title":"ERR_NGROK_1614: The endpoint configuration TLS CA certificate size exceeds the max","href":"/errors/err_ngrok_1614"},{"mode":"wide","title":"ERR_NGROK_1615: The endpoint configuration exceeds the max number of headers","href":"/errors/err_ngrok_1615"},{"mode":"wide","title":"ERR_NGROK_1616: Invalid endpoint configuration, circuit breaker tripped duration must be greater than 0, was VAL","href":"/errors/err_ngrok_1616"},{"mode":"wide","title":"ERR_NGROK_1617: Invalid endpoint configuration, circuit breaker rolling window must be greater than 0, was VAL","href":"/errors/err_ngrok_1617"},{"mode":"wide","title":"ERR_NGROK_1618: Invalid endpoint configuration, circuit breaker num buckets must be greater than 0 and less than MAX, was VAL","href":"/errors/err_ngrok_1618"},{"mode":"wide","title":"ERR_NGROK_1619: The endpoint configuration could not be deleted because it is still referenced by at least one reserved domain or reserved address","href":"/errors/err_ngrok_1619"},{"mode":"wide","title":"ERR_NGROK_1620: The endpoint configuration must specify a type","href":"/errors/err_ngrok_1620"},{"mode":"wide","title":"ERR_NGROK_1621: The module NAME is not supported on an endpoint configuration of type TYPE","href":"/errors/err_ngrok_1621"},{"mode":"wide","title":"ERR_NGROK_1622: NAME is not a valid endpoint configuration type","href":"/errors/err_ngrok_1622"},{"mode":"wide","title":"ERR_NGROK_1623: KEY is not a valid HTTP header name because it contains at least one invalid character","href":"/errors/err_ngrok_1623"},{"mode":"wide","title":"ERR_NGROK_1624: VAL is not a valid HTTP header value: REASON","href":"/errors/err_ngrok_1624"},{"mode":"wide","title":"ERR_NGROK_1625: You must specify at least one IP policy in the IP Policy module","href":"/errors/err_ngrok_1625"},{"mode":"wide","title":"ERR_NGROK_1626: SNS webhook validation does not accept a secret","href":"/errors/err_ngrok_1626"},{"mode":"wide","title":"ERR_NGROK_1627: Webhook validation for T requires a secret","href":"/errors/err_ngrok_1627"},{"mode":"wide","title":"ERR_NGROK_1628: There were validation errors while saving the endpoint configuration:ERRS","href":"/errors/err_ngrok_1628"},{"mode":"wide","title":"ERR_NGROK_1629: You must specify a supported provider name","href":"/errors/err_ngrok_1629"},{"mode":"wide","title":"ERR_NGROK_1630: Webhook provider T is not supported","href":"/errors/err_ngrok_1630"},{"mode":"wide","title":"ERR_NGROK_1631: Endpoint Configurations are deprecated","href":"/errors/err_ngrok_1631"},{"mode":"wide","title":"ERR_NGROK_1632: You may not configure the TLS termination parameter PARAMETER when the HTTPS module disables TLS termination","href":"/errors/err_ngrok_1632"},{"mode":"wide","title":"ERR_NGROK_1633: Invalid endpoint configuration, unmanaged provider configurations must specify a client ID and a client secret","href":"/errors/err_ngrok_1633"},{"mode":"wide","title":"ERR_NGROK_1634: Invalid endpoint configuration, custom OAuth scopes on a managed OAuth application are not allowed","href":"/errors/err_ngrok_1634"},{"mode":"wide","title":"ERR_NGROK_1635: Invalid endpoint configuration, OAuth auth check interval must be at least MIN, was ACTUAL","href":"/errors/err_ngrok_1635"},{"mode":"wide","title":"ERR_NGROK_1636: Invalid endpoint configuration, OAuth may only have one provider configuration but multiple are defined: [PROVIDER_NAMES]","href":"/errors/err_ngrok_1636"},{"mode":"wide","title":"ERR_NGROK_1637: Invalid endpoint configuration, OAuth does not define any provider configurations but one is required","href":"/errors/err_ngrok_1637"},{"mode":"wide","title":"ERR_NGROK_1638: Invalid endpoint configuration, OAuth provider PROVIDER requires at least the SCOPE scope to authenticate by AUTH_FEATURE.'","href":"/errors/err_ngrok_1638"},{"mode":"wide","title":"ERR_NGROK_1639: Invalid endpoint configuration, OAuth provider PROVIDER contains an invalid email domain: NAME","href":"/errors/err_ngrok_1639"},{"mode":"wide","title":"ERR_NGROK_1640: Invalid endpoint configuration, OAuth GitHub Teams must be listed as either numerical ids or in the format 'org_slug/team_slug', TEAM does not match either format","href":"/errors/err_ngrok_1640"},{"mode":"wide","title":"ERR_NGROK_1641: Endpoint Configurations are deprecated","href":"/errors/err_ngrok_1641"},{"mode":"wide","title":"ERR_NGROK_1642: Invalid endpoint configuration, OAuth cookie prefix PREFIX must consist of only alphanumeric characters with periods","href":"/errors/err_ngrok_1642"},{"mode":"wide","title":"ERR_NGROK_1643: Invalid endpoint configuration, OAuth provider PROVIDER contains an invalid email address, NAME","href":"/errors/err_ngrok_1643"},{"mode":"wide","title":"ERR_NGROK_1644: Invalid endpoint configuration, OAuth provider PROVIDER contains an email domain with invalid punycode: NAME","href":"/errors/err_ngrok_1644"},{"mode":"wide","title":"ERR_NGROK_1645: Invalid endpoint configuration, OAuth provider PROVIDER contains an email address with invalid punycode: NAME","href":"/errors/err_ngrok_1645"},{"mode":"wide","title":"ERR_NGROK_1646: Invalid endpoint configuration, OAuth provider PROVIDER email addresses must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_1646"},{"mode":"wide","title":"ERR_NGROK_1647: Invalid endpoint configuration, OAuth provider PROVIDER email domains must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_1647"},{"mode":"wide","title":"ERR_NGROK_1648: Invalid endpoint configuration, OAuth provider PROVIDER teams must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_1648"},{"mode":"wide","title":"ERR_NGROK_1649: Invalid endpoint configuration, OAuth provider PROVIDER organizations must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_1649"},{"mode":"wide","title":"ERR_NGROK_1650: Invalid endpoint configuration, OAuth provider PROVIDER groups must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_1650"},{"mode":"wide","title":"ERR_NGROK_1651: Invalid endpoint configuration, OAuth provider PROVIDER email addresses must not contain empty values","href":"/errors/err_ngrok_1651"},{"mode":"wide","title":"ERR_NGROK_1652: Invalid endpoint configuration, OAuth provider PROVIDER email domains must not contain empty values","href":"/errors/err_ngrok_1652"},{"mode":"wide","title":"ERR_NGROK_1653: Invalid endpoint configuration, OAuth provider PROVIDER teams must not contain empty values","href":"/errors/err_ngrok_1653"},{"mode":"wide","title":"ERR_NGROK_1654: Invalid endpoint configuration, OAuth provider PROVIDER organizations must not contain empty values","href":"/errors/err_ngrok_1654"},{"mode":"wide","title":"ERR_NGROK_1655: Invalid endpoint configuration, OAuth provider PROVIDER groups must not contain empty values","href":"/errors/err_ngrok_1655"},{"mode":"wide","title":"ERR_NGROK_1656: The endpoint configuration exceeds the maximum number of OAuth scopes","href":"/errors/err_ngrok_1656"},{"mode":"wide","title":"ERR_NGROK_1657: The endpoint configuration exceeds the maximum number of OAuth Github teams","href":"/errors/err_ngrok_1657"},{"mode":"wide","title":"ERR_NGROK_1658: The endpoint configuration exceeds the maximum number of OAuth Github orgs","href":"/errors/err_ngrok_1658"},{"mode":"wide","title":"ERR_NGROK_1659: The endpoint configuration exceeds the maximum number of OAuth Google groups","href":"/errors/err_ngrok_1659"},{"mode":"wide","title":"ERR_NGROK_1660: The endpoint configuration exceeds the maximum number of OAuth emails","href":"/errors/err_ngrok_1660"},{"mode":"wide","title":"ERR_NGROK_1661: The endpoint configuration exceeds the maximum number of OAuth domains","href":"/errors/err_ngrok_1661"},{"mode":"wide","title":"ERR_NGROK_1662: The endpoint configuration specifies the following modules which may not be enabled when TLS is not terminated: MODULE_NAMES","href":"/errors/err_ngrok_1662"},{"mode":"wide","title":"ERR_NGROK_1667: Invalid endpoint configuration, email addresses must be lowercase but EMAIL is not","href":"/errors/err_ngrok_1667"},{"mode":"wide","title":"ERR_NGROK_1668: Invalid endpoint configuration, email domains must be lowercase but DOMAIN is not","href":"/errors/err_ngrok_1668"},{"mode":"wide","title":"ERR_NGROK_1669: Duplicate 'add' header, HEADER was provided twice with different casings: CASE_ONE and CASE_TWO","href":"/errors/err_ngrok_1669"},{"mode":"wide","title":"ERR_NGROK_1670: Your account is limited to MAX endpoint configurations","href":"/errors/err_ngrok_1670"},{"mode":"wide","title":"ERR_NGROK_1672: The CA ID ID specified for the Mutual TLS module does not exist","href":"/errors/err_ngrok_1672"},{"mode":"wide","title":"ERR_NGROK_1673: Description is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_1673"},{"mode":"wide","title":"ERR_NGROK_1674: Metadata is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_1674"},{"mode":"wide","title":"ERR_NGROK_1675: The Mutual TLS configurations exceeds the limit of LIMIT attached certificate authorities","href":"/errors/err_ngrok_1675"},{"mode":"wide","title":"ERR_NGROK_1679: The endpoint configuration specifies conflicting authentication modules","href":"/errors/err_ngrok_1679"},{"mode":"wide","title":"ERR_NGROK_1680: The SAML metadata exceeds the maximum length of MAX bytes, got NBYTES","href":"/errors/err_ngrok_1680"},{"mode":"wide","title":"ERR_NGROK_1681: You must specify only the SAML IdP metadata or the SAML IdP metadata URL, but not both","href":"/errors/err_ngrok_1681"},{"mode":"wide","title":"ERR_NGROK_1682: Failed to connect to IdP metadata URL MDURL: ERR","href":"/errors/err_ngrok_1682"},{"mode":"wide","title":"ERR_NGROK_1683: Failed to parse the SAML IdP metadata: ERR","href":"/errors/err_ngrok_1683"},{"mode":"wide","title":"ERR_NGROK_1684: Received unexpected status code STATUSCODE while fetching metadata URL MDURL","href":"/errors/err_ngrok_1684"},{"mode":"wide","title":"ERR_NGROK_1685: Failed to parse the SAML IdP metadata fetched from URL MDURL: ERR","href":"/errors/err_ngrok_1685"},{"mode":"wide","title":"ERR_NGROK_1686: Encountered an error while reading the response body from the IdP metadata URL MDURL: ERR","href":"/errors/err_ngrok_1686"},{"mode":"wide","title":"ERR_NGROK_1687: The specified OIDC issuer has a maximum length of 255 bytes","href":"/errors/err_ngrok_1687"},{"mode":"wide","title":"ERR_NGROK_1688: The OIDC issuer property is required","href":"/errors/err_ngrok_1688"},{"mode":"wide","title":"ERR_NGROK_1689: The OIDC Client ID property is required","href":"/errors/err_ngrok_1689"},{"mode":"wide","title":"ERR_NGROK_1690: The OIDC Client Secret property is required","href":"/errors/err_ngrok_1690"},{"mode":"wide","title":"ERR_NGROK_1691: One of the SAML IdP Metadata or IdP Metadata URL properties must be specified","href":"/errors/err_ngrok_1691"},{"mode":"wide","title":"ERR_NGROK_1692: Invalid endpoint configuration, session inactivity timeout cannot be more than one year, was ACTUAL","href":"/errors/err_ngrok_1692"},{"mode":"wide","title":"ERR_NGROK_1693: \"FORMAT\" is not a supported SAML nameid format","href":"/errors/err_ngrok_1693"},{"mode":"wide","title":"ERR_NGROK_1694: Mutual TLS at edge requires TLS termination at edge","href":"/errors/err_ngrok_1694"},{"mode":"wide","title":"ERR_NGROK_1695: No PEM data found in provided mutual TLS CA","href":"/errors/err_ngrok_1695"},{"mode":"wide","title":"ERR_NGROK_1696: Certificate provided for mutual TLS is not a valid CA","href":"/errors/err_ngrok_1696"},{"mode":"wide","title":"ERR_NGROK_1697: The header beginning with PREFIX...' exceeds the maximum header name length of BYTES bytes","href":"/errors/err_ngrok_1697"},{"mode":"wide","title":"ERR_NGROK_1698: The header value for HEADERKEY beginning with PREFIX...' exceeds the maximum header value length of BYTES bytes","href":"/errors/err_ngrok_1698"},{"mode":"wide","title":"ERR_NGROK_1699: The sendgrid verification key is not a base64 encoded ecdsa public key","href":"/errors/err_ngrok_1699"},{"mode":"wide","title":"ERR_NGROK_1700: Your legacy account is not authorized to use session operations","href":"/errors/err_ngrok_1700"},{"mode":"wide","title":"ERR_NGROK_1701: Your legacy account is not authorized to stop or restart the agent","href":"/errors/err_ngrok_1701"},{"mode":"wide","title":"ERR_NGROK_1702: Your legacy account is not authorized to update the agent","href":"/errors/err_ngrok_1702"},{"mode":"wide","title":"ERR_NGROK_1800: You have reached the maximum of MAX IP Policies on a restriction","href":"/errors/err_ngrok_1800"},{"mode":"wide","title":"ERR_NGROK_1801: Invalid IP Restriction","href":"/errors/err_ngrok_1801"},{"mode":"wide","title":"ERR_NGROK_1802: Only one IP Restriction is allowed per type","href":"/errors/err_ngrok_1802"},{"mode":"wide","title":"ERR_NGROK_1803: The provided IP Restriction type \"TYPE\" is invalid","href":"/errors/err_ngrok_1803"},{"mode":"wide","title":"ERR_NGROK_1804: An IP Restriction must specify at least one IP Policy","href":"/errors/err_ngrok_1804"},{"mode":"wide","title":"ERR_NGROK_1805: Only Pay-as-you-go accounts with the Account Governance add-on can use dashboard IP restrictions","href":"/errors/err_ngrok_1805"},{"mode":"wide","title":"ERR_NGROK_1806: Only Pay-as-you-go accounts with the Account Governance add-on can use API IP restrictions","href":"/errors/err_ngrok_1806"},{"mode":"wide","title":"ERR_NGROK_1807: Only Pay-as-you-go accounts with the Account Governance add-on can use agent IP restrictions","href":"/errors/err_ngrok_1807"},{"mode":"wide","title":"ERR_NGROK_1808: Only Pay-as-you-go accounts with the Account Governance add-on can use endpoints IP restrictions","href":"/errors/err_ngrok_1808"},{"mode":"wide","title":"ERR_NGROK_1900: The provided certificate is in an unknown or unsupported format","href":"/errors/err_ngrok_1900"},{"mode":"wide","title":"ERR_NGROK_1901: No PEM-encoded private key was found in the creation request","href":"/errors/err_ngrok_1901"},{"mode":"wide","title":"ERR_NGROK_1902: The provided private key is encrypted","href":"/errors/err_ngrok_1902"},{"mode":"wide","title":"ERR_NGROK_1903: The provided private key is in an unknown or unsupported format","href":"/errors/err_ngrok_1903"},{"mode":"wide","title":"ERR_NGROK_1904: Your account can't upload custom TLS certificates","href":"/errors/err_ngrok_1904"},{"mode":"wide","title":"ERR_NGROK_1905: Your account can't use managed TLS certificates","href":"/errors/err_ngrok_1905"},{"mode":"wide","title":"ERR_NGROK_1906: The domain DOMAIN is not a valid domain name","href":"/errors/err_ngrok_1906"},{"mode":"wide","title":"ERR_NGROK_1907: The ip IP is not a valid IP address","href":"/errors/err_ngrok_1907"},{"mode":"wide","title":"ERR_NGROK_1908: Invalid authority AUTHORITY","href":"/errors/err_ngrok_1908"},{"mode":"wide","title":"ERR_NGROK_1909: Invalid private key type TYPE","href":"/errors/err_ngrok_1909"},{"mode":"wide","title":"ERR_NGROK_1910: The provided PEM data contains a non-zero number of headers, which are not allowed","href":"/errors/err_ngrok_1910"},{"mode":"wide","title":"ERR_NGROK_1911: The provided data is a valid PEM, but it has an unexpected type: TYPE","href":"/errors/err_ngrok_1911"},{"mode":"wide","title":"ERR_NGROK_1912: The upload contained COUNT certificates: CNS","href":"/errors/err_ngrok_1912"},{"mode":"wide","title":"ERR_NGROK_1913: The uploaded certificate's x509 Basic Constraints did not mark it as a certificate authority (see RFC 5280, 4.2.1.9)","href":"/errors/err_ngrok_1913"},{"mode":"wide","title":"ERR_NGROK_1914: The description is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1914"},{"mode":"wide","title":"ERR_NGROK_1915: Metadata is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1915"},{"mode":"wide","title":"ERR_NGROK_1916: The description is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1916"},{"mode":"wide","title":"ERR_NGROK_1917: Metadata is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1917"},{"mode":"wide","title":"ERR_NGROK_1918: Your account is not allowed to upload certificate authorities","href":"/errors/err_ngrok_1918"},{"mode":"wide","title":"ERR_NGROK_1919: No certificate PEM data was sent","href":"/errors/err_ngrok_1919"},{"mode":"wide","title":"ERR_NGROK_1920: The certificate data could not be parsed as PEM","href":"/errors/err_ngrok_1920"},{"mode":"wide","title":"ERR_NGROK_1921: The uploaded certificate PEM data exceeds the maximum length limit of MAX_SIZE bytes","href":"/errors/err_ngrok_1921"},{"mode":"wide","title":"ERR_NGROK_1922: No PEM-encoded certificate was found in the creation request","href":"/errors/err_ngrok_1922"},{"mode":"wide","title":"ERR_NGROK_1923: The provided certificate and private key do not match each other","href":"/errors/err_ngrok_1923"},{"mode":"wide","title":"ERR_NGROK_1924: The provided private key is actually a certificate","href":"/errors/err_ngrok_1924"},{"mode":"wide","title":"ERR_NGROK_1925: The provided certificate is actually a private key","href":"/errors/err_ngrok_1925"},{"mode":"wide","title":"ERR_NGROK_1926: The uploaded certificate bundle contained the following certificates in this order: [ORDER], however INVALID has not been signed by INTERMEDIATE","href":"/errors/err_ngrok_1926"},{"mode":"wide","title":"ERR_NGROK_1927: The domain DOMAIN is not available for certificate management","href":"/errors/err_ngrok_1927"},{"mode":"wide","title":"ERR_NGROK_1929: Invalid nameserver count","href":"/errors/err_ngrok_1929"},{"mode":"wide","title":"ERR_NGROK_1930: Nameservers are not set up correctly for DOMAIN, expected WANT but got GOT","href":"/errors/err_ngrok_1930"},{"mode":"wide","title":"ERR_NGROK_1934: Got error ERROR where parsing public key PUBLICKEY","href":"/errors/err_ngrok_1934"},{"mode":"wide","title":"ERR_NGROK_1935: CERTTYPE is not a valid SSH certificate type","href":"/errors/err_ngrok_1935"},{"mode":"wide","title":"ERR_NGROK_1936: \"KEYTYPE\" is not a valid SSH key type","href":"/errors/err_ngrok_1936"},{"mode":"wide","title":"ERR_NGROK_1937: The description is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1937"},{"mode":"wide","title":"ERR_NGROK_1938: Metadata is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1938"},{"mode":"wide","title":"ERR_NGROK_1939: Invalid key size KEYSIZE","href":"/errors/err_ngrok_1939"},{"mode":"wide","title":"ERR_NGROK_1940: Key size is supported only with a key type of \"rsa\", but the specified key type was \"KEYTYPE\"","href":"/errors/err_ngrok_1940"},{"mode":"wide","title":"ERR_NGROK_1941: Invalid elliptic curve \"CURVE\"","href":"/errors/err_ngrok_1941"},{"mode":"wide","title":"ERR_NGROK_1942: Elliptic curve is supported only with a key type of \"ecdsa\", but the specified key type was \"KEYTYPE\"","href":"/errors/err_ngrok_1942"},{"mode":"wide","title":"ERR_NGROK_1943: The SSH CA Certificate duration must be greater than zero; got duration of DURATION","href":"/errors/err_ngrok_1943"},{"mode":"wide","title":"ERR_NGROK_1945: The description is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1945"},{"mode":"wide","title":"ERR_NGROK_1946: Metadata is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1946"},{"mode":"wide","title":"ERR_NGROK_1947: The description is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1947"},{"mode":"wide","title":"ERR_NGROK_1948: Metadata is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_1948"},{"mode":"wide","title":"ERR_NGROK_1949: The SSH CA CA does not exist","href":"/errors/err_ngrok_1949"},{"mode":"wide","title":"ERR_NGROK_1950: Certificates are not supported for public keys of type KEYTYPE","href":"/errors/err_ngrok_1950"},{"mode":"wide","title":"ERR_NGROK_1951: The SSH CA CA does not exist","href":"/errors/err_ngrok_1951"},{"mode":"wide","title":"ERR_NGROK_1952: The public key to sign in the certificate is required, but no public key was specified","href":"/errors/err_ngrok_1952"},{"mode":"wide","title":"ERR_NGROK_1953: Your account is not allowed to use SSH certificates","href":"/errors/err_ngrok_1953"},{"mode":"wide","title":"ERR_NGROK_1954: Your account is limited to MAX Certificate Authorities","href":"/errors/err_ngrok_1954"},{"mode":"wide","title":"ERR_NGROK_1956: Your account is limited to MAX SSH Certificate Authorities","href":"/errors/err_ngrok_1956"},{"mode":"wide","title":"ERR_NGROK_1958: Your account is limited to MAX SSH Host Certificates","href":"/errors/err_ngrok_1958"},{"mode":"wide","title":"ERR_NGROK_1960: Your account is limited to MAX SSH User Certificates","href":"/errors/err_ngrok_1960"},{"mode":"wide","title":"ERR_NGROK_1962: SSH User Certificate duration must be greater than zero; got duration of DURATION","href":"/errors/err_ngrok_1962"},{"mode":"wide","title":"ERR_NGROK_1963: SSH Host Certificate duration must be greater than zero; got duration of DURATION","href":"/errors/err_ngrok_1963"},{"mode":"wide","title":"ERR_NGROK_1964: Can't delete SSH CA ID because an SSH certificate signed by it exists","href":"/errors/err_ngrok_1964"},{"mode":"wide","title":"ERR_NGROK_1965: The certificate ID does not exist","href":"/errors/err_ngrok_1965"},{"mode":"wide","title":"ERR_NGROK_1966: The certificate ID could not be deleted because it has an attached Managed Certificate Policy","href":"/errors/err_ngrok_1966"}]},{"group":"ERR_NGROK_2000-2999","pages":[{"mode":"wide","title":"ERR_NGROK_2032: Webhook Validation middleware requires a secret for PROVIDER","href":"/errors/err_ngrok_2032"},{"mode":"wide","title":"ERR_NGROK_2062: Paths given in HTTPMux rules must be either empty or absolute","href":"/errors/err_ngrok_2062"},{"mode":"wide","title":"ERR_NGROK_2063: The method METHOD was specified multiple times for the path PATH","href":"/errors/err_ngrok_2063"},{"mode":"wide","title":"ERR_NGROK_2065: HTTPMux must have at least one rule","href":"/errors/err_ngrok_2065"},{"mode":"wide","title":"ERR_NGROK_2067: Too many rules given to HTTPMux","href":"/errors/err_ngrok_2067"},{"mode":"wide","title":"ERR_NGROK_2069: The method (METHOD) specified in an HTTPMux rule is invalid or otherwise not currently supported","href":"/errors/err_ngrok_2069"},{"mode":"wide","title":"ERR_NGROK_2070: The path specified in an HTTPMux rule is too long","href":"/errors/err_ngrok_2070"},{"mode":"wide","title":"ERR_NGROK_2071: The path specified in an HTTPMux rule is unsupported or otherwise invalid","href":"/errors/err_ngrok_2071"},{"mode":"wide","title":"ERR_NGROK_2087: The sendgrid verification key is not a base64 encoded ecdsa public key","href":"/errors/err_ngrok_2087"},{"mode":"wide","title":"ERR_NGROK_2089: Found duplicate routing rule","href":"/errors/err_ngrok_2089"},{"mode":"wide","title":"ERR_NGROK_2090: The user agent filter regular expression REGEX is an invalid regular expression: ERR","href":"/errors/err_ngrok_2090"},{"mode":"wide","title":"ERR_NGROK_2200: Invalid policy expression","href":"/errors/err_ngrok_2200"},{"mode":"wide","title":"ERR_NGROK_2201: Invalid policy action type TYP","href":"/errors/err_ngrok_2201"},{"mode":"wide","title":"ERR_NGROK_2202: Action type TYP is not supported for PHASE traffic policy rule","href":"/errors/err_ngrok_2202"},{"mode":"wide","title":"ERR_NGROK_2203: Failed to parse the configuration for policy action type TYP","href":"/errors/err_ngrok_2203"},{"mode":"wide","title":"ERR_NGROK_2204: Configuration for policy action type TYP has invalid value: FIELD","href":"/errors/err_ngrok_2204"},{"mode":"wide","title":"ERR_NGROK_2205: Policy action type TYP does not support the PROTO protocol","href":"/errors/err_ngrok_2205"},{"mode":"wide","title":"ERR_NGROK_2206: A policy must define at least one action","href":"/errors/err_ngrok_2206"},{"mode":"wide","title":"ERR_NGROK_2207: Policy action type TYP is unreachable due to a prior terminating action","href":"/errors/err_ngrok_2207"},{"mode":"wide","title":"ERR_NGROK_2208: Failed to parse configuration for PHASE TYPE: exceeds maximum allowed name length of MAX, was VAL","href":"/errors/err_ngrok_2208"},{"mode":"wide","title":"ERR_NGROK_2209: Failed to parse configuration for PHASE TYPE: exceeds maximum allowed value length of MAX, was VAL","href":"/errors/err_ngrok_2209"},{"mode":"wide","title":"ERR_NGROK_2210: Failed to parse configuration for PHASE TYPE: name is invalid NAME","href":"/errors/err_ngrok_2210"},{"mode":"wide","title":"ERR_NGROK_2211: Failed to parse configuration for PHASE TYPE: value is invalid NAME","href":"/errors/err_ngrok_2211"},{"mode":"wide","title":"ERR_NGROK_2212: Failed to parse configuration for PHASE TYPE: can have at most MAX header values, but VAL were provided","href":"/errors/err_ngrok_2212"},{"mode":"wide","title":"ERR_NGROK_2213: Failed to parse configuration for PHASE add-headers: contained an invalid template: TEMPLATE: ERR","href":"/errors/err_ngrok_2213"},{"mode":"wide","title":"ERR_NGROK_2214: Failed to parse configuration for compress: contained an invalid algorithm: ALGORITHM","href":"/errors/err_ngrok_2214"},{"mode":"wide","title":"ERR_NGROK_2215: Failed to parse configuration for ACTION: CONFIG must be between MIN and MAX inclusive, was ACTUAL","href":"/errors/err_ngrok_2215"},{"mode":"wide","title":"ERR_NGROK_2216: Invalid IP Policy Reference(s): REFERENCE","href":"/errors/err_ngrok_2216"},{"mode":"wide","title":"ERR_NGROK_2217: Invalid CIDR(s): CIDR","href":"/errors/err_ngrok_2217"},{"mode":"wide","title":"ERR_NGROK_2218: Too many entries for FIELD","href":"/errors/err_ngrok_2218"},{"mode":"wide","title":"ERR_NGROK_2219: FIELD cannot be user-configured","href":"/errors/err_ngrok_2219"},{"mode":"wide","title":"ERR_NGROK_2221: Invalid configuration for ACTION: CONFIG length of ACTUAL exceeded limit of MAX","href":"/errors/err_ngrok_2221"},{"mode":"wide","title":"ERR_NGROK_2222: Invalid configuration for ACTION: CONFIG must be VALID, was ACTUAL","href":"/errors/err_ngrok_2222"},{"mode":"wide","title":"ERR_NGROK_2223: Invalid configuration for ACTION: CONFIG cannot be empty","href":"/errors/err_ngrok_2223"},{"mode":"wide","title":"ERR_NGROK_2224: Invalid configuration for action ACTION: failed to compile CEL template expressions in FIELD","href":"/errors/err_ngrok_2224"},{"mode":"wide","title":"ERR_NGROK_2225: Invalid configuration for ACTION: CONFIG duration of ACTUAL exceeded limit of MAX","href":"/errors/err_ngrok_2225"},{"mode":"wide","title":"ERR_NGROK_2226: Invalid configuration for ACTION: CONFIG must be a URL, but was ACTUAL","href":"/errors/err_ngrok_2226"},{"mode":"wide","title":"ERR_NGROK_2227: Invalid configuration for ACTION: The issuer URL at CONFIG with a value of ISSUERURL did not return a valid OpenID Connect Discovery document","href":"/errors/err_ngrok_2227"},{"mode":"wide","title":"ERR_NGROK_2228: Invalid configuration for ACTION: Failed to parse CONFIG: REASON","href":"/errors/err_ngrok_2228"},{"mode":"wide","title":"ERR_NGROK_2229: Failed to validate Traffic Policy for unknown protocol PROTO.'","href":"/errors/err_ngrok_2229"},{"mode":"wide","title":"ERR_NGROK_2230: Invalid Traffic Policy phase PHASE for protocol PROTO","href":"/errors/err_ngrok_2230"},{"mode":"wide","title":"ERR_NGROK_2231: Invalid configuration for ACTION: CONFIG contains duplicate values: DUPLICATES","href":"/errors/err_ngrok_2231"},{"mode":"wide","title":"ERR_NGROK_2232: Failed to resolve validated configuration for policy action type TYP","href":"/errors/err_ngrok_2232"},{"mode":"wide","title":"ERR_NGROK_2233: Failed to compile resolved configuration for policy action type TYP","href":"/errors/err_ngrok_2233"},{"mode":"wide","title":"ERR_NGROK_2234: Invalid configuration for ACTION: CONFIG is missing required element ELEMENT","href":"/errors/err_ngrok_2234"},{"mode":"wide","title":"ERR_NGROK_2235: The traffic policy provided is not guaranteed to handle traffic","href":"/errors/err_ngrok_2235"},{"mode":"wide","title":"ERR_NGROK_2236: The traffic policy was not able to be parsed:","href":"/errors/err_ngrok_2236"},{"mode":"wide","title":"ERR_NGROK_2237: Invalid configuration for ACTION: CONFIG length of ACTUAL does not satisfy minimum length of MIN","href":"/errors/err_ngrok_2237"},{"mode":"wide","title":"ERR_NGROK_2238: Failed to resolve interpolated CEL expression","href":"/errors/err_ngrok_2238"},{"mode":"wide","title":"ERR_NGROK_2239: Invalid policy: Only one auth action allowed per endpoint","href":"/errors/err_ngrok_2239"},{"mode":"wide","title":"ERR_NGROK_2240: Invalid configuration for ACTION: MISSING is required when SPECIFIED is specified","href":"/errors/err_ngrok_2240"},{"mode":"wide","title":"ERR_NGROK_2241: Invalid configuration for ACTION: The domain DOMAIN cannot be used as it doesn't belong to the endpoint","href":"/errors/err_ngrok_2241"},{"mode":"wide","title":"ERR_NGROK_2242: Invalid configuration for ACTION: CONFIG DOMAIN contains invalid puny code","href":"/errors/err_ngrok_2242"},{"mode":"wide","title":"ERR_NGROK_2243: Invalid configuration for ACTION: CONFIG DOMAIN is not a valid domain","href":"/errors/err_ngrok_2243"},{"mode":"wide","title":"ERR_NGROK_2244: Invalid configuration for PHASE ACTION: CONFIG can have at most MAX query key/value pairs, but VAL were provided","href":"/errors/err_ngrok_2244"},{"mode":"wide","title":"ERR_NGROK_2245: Invalid configuration for PHASE ACTION: CONFIG: exceeds maximum allowed key length of MAX, was VAL","href":"/errors/err_ngrok_2245"},{"mode":"wide","title":"ERR_NGROK_2246: Invalid configuration for PHASE ACTION: CONFIG: exceeds maximum allowed key length of MAX, was VAL","href":"/errors/err_ngrok_2246"},{"mode":"wide","title":"ERR_NGROK_2247: Already validated url didn't parse during STEP step: URL ERR","href":"/errors/err_ngrok_2247"},{"mode":"wide","title":"ERR_NGROK_2248: HTTPS Edges do not support the on_tcp_connect Traffic Policy phase","href":"/errors/err_ngrok_2248"},{"mode":"wide","title":"ERR_NGROK_2249: Memory limit exceeded by ACTION action: ERR","href":"/errors/err_ngrok_2249"},{"mode":"wide","title":"ERR_NGROK_2250: Invalid configuration for ACTION: Nested variables are too deep","href":"/errors/err_ngrok_2250"},{"mode":"wide","title":"ERR_NGROK_2252: Invalid format for set-vars: vars must be a list of maps of exactly size 1","href":"/errors/err_ngrok_2252"},{"mode":"wide","title":"ERR_NGROK_2253: Failed to evaluate CEL expression on FIELD for ACTION at runtime: ERR","href":"/errors/err_ngrok_2253"},{"mode":"wide","title":"ERR_NGROK_2254: Failed to resolve CEL expression","href":"/errors/err_ngrok_2254"},{"mode":"wide","title":"ERR_NGROK_2255: Invalid configuration for ACTION: Maximum ELEMENT allowed per action is MAX","href":"/errors/err_ngrok_2255"},{"mode":"wide","title":"ERR_NGROK_2256: The action ACTION is not available for your current plan","href":"/errors/err_ngrok_2256"},{"mode":"wide","title":"ERR_NGROK_2257: Invalid basic auth credential","href":"/errors/err_ngrok_2257"},{"mode":"wide","title":"ERR_NGROK_2258: Invalid basic auth credential","href":"/errors/err_ngrok_2258"},{"mode":"wide","title":"ERR_NGROK_2259: No endpoints exist in this account","href":"/errors/err_ngrok_2259"},{"mode":"wide","title":"ERR_NGROK_2260: No endpoints could be found matching the supplied combination of labels","href":"/errors/err_ngrok_2260"},{"mode":"wide","title":"ERR_NGROK_2261: Failed to parse the configuration for policy action type TYP","href":"/errors/err_ngrok_2261"},{"mode":"wide","title":"ERR_NGROK_2262: Internal HTTP/HTTPS endpoints do not support the on_tcp_connect Traffic Policy phase","href":"/errors/err_ngrok_2262"},{"mode":"wide","title":"ERR_NGROK_2263: This policy includes paid traffic policy features that are not allowed on your current plan","href":"/errors/err_ngrok_2263"},{"mode":"wide","title":"ERR_NGROK_2264: Policy configuration has exceeded its rule per policy limit of LIMIT","href":"/errors/err_ngrok_2264"},{"mode":"wide","title":"ERR_NGROK_2265: Policy configuration has exceeded its TYP per rule limit of LIMIT during PHASE at index IDX","href":"/errors/err_ngrok_2265"},{"mode":"wide","title":"ERR_NGROK_2266: Traffic policy contains more than one AI Gateway Action","href":"/errors/err_ngrok_2266"},{"mode":"wide","title":"ERR_NGROK_2267: Configuring provider API keys or key selection in Traffic Policy is no longer supported for standard providers","href":"/errors/err_ngrok_2267"},{"mode":"wide","title":"ERR_NGROK_2300: Internal gateway error occurred while processing policy action: REASON","href":"/errors/err_ngrok_2300"}]},{"group":"ERR_NGROK_3000-3999","pages":[{"mode":"wide","title":"ERR_NGROK_3002: Error performing TLS handshake: ERR","href":"/errors/err_ngrok_3002"},{"mode":"wide","title":"ERR_NGROK_3003: This client does not support TLS SNI, but the endpoint's TLS configuration requires SNI","href":"/errors/err_ngrok_3003"},{"mode":"wide","title":"ERR_NGROK_3004: The server returned an invalid or incomplete HTTP response","href":"/errors/err_ngrok_3004"},{"mode":"wide","title":"ERR_NGROK_3005: A connection to the server not be established","href":"/errors/err_ngrok_3005"},{"mode":"wide","title":"ERR_NGROK_3006: The server refused our connection","href":"/errors/err_ngrok_3006"},{"mode":"wide","title":"ERR_NGROK_3007: ngrok gateway error","href":"/errors/err_ngrok_3007"},{"mode":"wide","title":"ERR_NGROK_3008: None of the configured backends responded in time","href":"/errors/err_ngrok_3008"},{"mode":"wide","title":"ERR_NGROK_3009: Received an HTTP network error (status code 0) from a backend","href":"/errors/err_ngrok_3009"},{"mode":"wide","title":"ERR_NGROK_3010: Received an HTTP response with unknown status code CODE from a backend","href":"/errors/err_ngrok_3010"},{"mode":"wide","title":"ERR_NGROK_3100: Your session has expired due to age","href":"/errors/err_ngrok_3100"},{"mode":"wide","title":"ERR_NGROK_3101: We lack permission to retrieve your data from PROVIDER and cannot continue","href":"/errors/err_ngrok_3101"},{"mode":"wide","title":"ERR_NGROK_3102: PROVIDER requires that you correct an issue with your account prior to using this website","href":"/errors/err_ngrok_3102"},{"mode":"wide","title":"ERR_NGROK_3103: PROVIDER requires that you correct an issue with your account prior to using this website:","href":"/errors/err_ngrok_3103"},{"mode":"wide","title":"ERR_NGROK_3104: The email \"EMAIL\" associated with your PROVIDER account is not valid","href":"/errors/err_ngrok_3104"},{"mode":"wide","title":"ERR_NGROK_3105: You lack the required permission to use this site","href":"/errors/err_ngrok_3105"},{"mode":"wide","title":"ERR_NGROK_3106: The initial information required to authenticate with PROVIDER is invalid","href":"/errors/err_ngrok_3106"},{"mode":"wide","title":"ERR_NGROK_3107: The state parameter used to validate your request is missing","href":"/errors/err_ngrok_3107"},{"mode":"wide","title":"ERR_NGROK_3108: The state parameter used to validate your request cannot be read","href":"/errors/err_ngrok_3108"},{"mode":"wide","title":"ERR_NGROK_3109: PROVIDER did not provide an email for your account","href":"/errors/err_ngrok_3109"},{"mode":"wide","title":"ERR_NGROK_3110: The email permission from PROVIDER was not granted but is required","href":"/errors/err_ngrok_3110"},{"mode":"wide","title":"ERR_NGROK_3111: All requested permissions with PROVIDER must be granted in order to use this site, but the following were not: PERMISSIONS","href":"/errors/err_ngrok_3111"},{"mode":"wide","title":"ERR_NGROK_3112: PROVIDER has returned an error when attempting to authorize you to use this site:","href":"/errors/err_ngrok_3112"},{"mode":"wide","title":"ERR_NGROK_3113: PROVIDER denied access to this application when retrieving your information","href":"/errors/err_ngrok_3113"},{"mode":"wide","title":"ERR_NGROK_3114: In order to continue, you must authorize this application's access to PROVIDER","href":"/errors/err_ngrok_3114"},{"mode":"wide","title":"ERR_NGROK_3115: The redirect_uri configured for this application is not properly configured or whitelisted with PROVIDER","href":"/errors/err_ngrok_3115"},{"mode":"wide","title":"ERR_NGROK_3116: PROVIDER denied access to your data when attempting to authorize you","href":"/errors/err_ngrok_3116"},{"mode":"wide","title":"ERR_NGROK_3117: The initial link used to authorize with PROVIDER had unsupported parameters","href":"/errors/err_ngrok_3117"},{"mode":"wide","title":"ERR_NGROK_3118: PROVIDER denied access to your data","href":"/errors/err_ngrok_3118"},{"mode":"wide","title":"ERR_NGROK_3119: Logging in with PROVIDER took more than 15 minutes and was rejected for security","href":"/errors/err_ngrok_3119"},{"mode":"wide","title":"ERR_NGROK_3120: The state parameter required to finish authorization with PROVIDER is missing","href":"/errors/err_ngrok_3120"},{"mode":"wide","title":"ERR_NGROK_3121: The nonce cookie required to finish authorization with PROVIDER is missing","href":"/errors/err_ngrok_3121"},{"mode":"wide","title":"ERR_NGROK_3122: The access code from PROVIDER has expired and cannot be used","href":"/errors/err_ngrok_3122"},{"mode":"wide","title":"ERR_NGROK_3123: The access code from PROVIDER has already been used","href":"/errors/err_ngrok_3123"},{"mode":"wide","title":"ERR_NGROK_3124: The state parameter required to finish authorization with PROVIDER does not match this host","href":"/errors/err_ngrok_3124"},{"mode":"wide","title":"ERR_NGROK_3125: PROVIDER denied access to your data","href":"/errors/err_ngrok_3125"},{"mode":"wide","title":"ERR_NGROK_3126: PROVIDER rejected authorization due to a invalid or unknown scope requested by this application","href":"/errors/err_ngrok_3126"},{"mode":"wide","title":"ERR_NGROK_3127: PROVIDER rejected authorization due to invalid or expired credentials","href":"/errors/err_ngrok_3127"},{"mode":"wide","title":"ERR_NGROK_3150: An error occurred when retrieving your session","href":"/errors/err_ngrok_3150"},{"mode":"wide","title":"ERR_NGROK_3151: PROVIDER rejected use of your session's OAuth token: \"ERROR\"","href":"/errors/err_ngrok_3151"},{"mode":"wide","title":"ERR_NGROK_3152: An invalid request was sent to PROVIDER but its response is required in order to continue","href":"/errors/err_ngrok_3152"},{"mode":"wide","title":"ERR_NGROK_3160: An unexpected error occurred when communicating with PROVIDER","href":"/errors/err_ngrok_3160"},{"mode":"wide","title":"ERR_NGROK_3161: PROVIDER has throttled this application and cannot be reached right now","href":"/errors/err_ngrok_3161"},{"mode":"wide","title":"ERR_NGROK_3162: PROVIDER has throttled this application and cannot be reached right now","href":"/errors/err_ngrok_3162"},{"mode":"wide","title":"ERR_NGROK_3163: An error occurred when finishing authorization with PROVIDER","href":"/errors/err_ngrok_3163"},{"mode":"wide","title":"ERR_NGROK_3164: An error occurred when authorizing with PROVIDER:","href":"/errors/err_ngrok_3164"},{"mode":"wide","title":"ERR_NGROK_3165: PROVIDER is too busy to handle requests and authorization cannot be completed at this time","href":"/errors/err_ngrok_3165"},{"mode":"wide","title":"ERR_NGROK_3166: PROVIDER encountered an error and authorization cannot be completed at this time","href":"/errors/err_ngrok_3166"},{"mode":"wide","title":"ERR_NGROK_3167: PROVIDER is too busy to handle requests and required data cannot be retrieved right now","href":"/errors/err_ngrok_3167"},{"mode":"wide","title":"ERR_NGROK_3200","href":"/errors/err_ngrok_3200"},{"mode":"wide","title":"ERR_NGROK_3202: Circuit breaker tripped","href":"/errors/err_ngrok_3202"},{"mode":"wide","title":"ERR_NGROK_3203: Request blocked by IP Policy","href":"/errors/err_ngrok_3203"},{"mode":"wide","title":"ERR_NGROK_3204: Request failed webhook verification","href":"/errors/err_ngrok_3204"},{"mode":"wide","title":"ERR_NGROK_3205: Request blocked by Endpoints IP Restriction","href":"/errors/err_ngrok_3205"},{"mode":"wide","title":"ERR_NGROK_3206: Expected a websocket request with a \"Connection: upgrade\" header but did not receive one","href":"/errors/err_ngrok_3206"},{"mode":"wide","title":"ERR_NGROK_3208: The ngrok account that was hosting this webpage has been banned for violation of ngrok's Terms of Service","href":"/errors/err_ngrok_3208"},{"mode":"wide","title":"ERR_NGROK_3209: Tunnel not found","href":"/errors/err_ngrok_3209"},{"mode":"wide","title":"ERR_NGROK_3210: Error forwarding the connection to the ngrok agent","href":"/errors/err_ngrok_3210"},{"mode":"wide","title":"ERR_NGROK_3211: The server does not authorize requests from your user-agent","href":"/errors/err_ngrok_3211"},{"mode":"wide","title":"ERR_NGROK_3212: Tunnel HOSTNAME has multiple bindings but no binding was specified","href":"/errors/err_ngrok_3212"},{"mode":"wide","title":"ERR_NGROK_3213: Upgrade request origin forbidden","href":"/errors/err_ngrok_3213"},{"mode":"wide","title":"ERR_NGROK_3214: exceeded maximum number of redirects MAX: URLS","href":"/errors/err_ngrok_3214"},{"mode":"wide","title":"ERR_NGROK_3300: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3300"},{"mode":"wide","title":"ERR_NGROK_3301: URL \"state\" parameter is expired","href":"/errors/err_ngrok_3301"},{"mode":"wide","title":"ERR_NGROK_3302: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3302"},{"mode":"wide","title":"ERR_NGROK_3303: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3303"},{"mode":"wide","title":"ERR_NGROK_3304: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3304"},{"mode":"wide","title":"ERR_NGROK_3305: This request has expired","href":"/errors/err_ngrok_3305"},{"mode":"wide","title":"ERR_NGROK_3306: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3306"},{"mode":"wide","title":"ERR_NGROK_3307: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3307"},{"mode":"wide","title":"ERR_NGROK_3308: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3308"},{"mode":"wide","title":"ERR_NGROK_3309: The route match type TYP is incompatible with OAuth, OIDC, or SAML","href":"/errors/err_ngrok_3309"},{"mode":"wide","title":"ERR_NGROK_3310: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3310"},{"mode":"wide","title":"ERR_NGROK_3311: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3311"},{"mode":"wide","title":"ERR_NGROK_3312: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_3312"},{"mode":"wide","title":"ERR_NGROK_3313: Invalid Auth Cookie Domain: DOMAIN","href":"/errors/err_ngrok_3313"},{"mode":"wide","title":"ERR_NGROK_3401: Your request lacks valid credentials","href":"/errors/err_ngrok_3401"},{"mode":"wide","title":"ERR_NGROK_3403: You are forbidden from making this request","href":"/errors/err_ngrok_3403"},{"mode":"wide","title":"ERR_NGROK_3406: Token could not be found in request","href":"/errors/err_ngrok_3406"},{"mode":"wide","title":"ERR_NGROK_3408: Configured HTTP Header TYP was not found in request","href":"/errors/err_ngrok_3408"},{"mode":"wide","title":"ERR_NGROK_3411: Failed to parse JSON body","href":"/errors/err_ngrok_3411"},{"mode":"wide","title":"ERR_NGROK_3412: Failed to parse form","href":"/errors/err_ngrok_3412"},{"mode":"wide","title":"ERR_NGROK_3413: Configured prefix TYP not found","href":"/errors/err_ngrok_3413"},{"mode":"wide","title":"ERR_NGROK_3414: Failed to read content-type header","href":"/errors/err_ngrok_3414"},{"mode":"wide","title":"ERR_NGROK_3415: Tokens in body not supported for HTTP method TYP","href":"/errors/err_ngrok_3415"},{"mode":"wide","title":"ERR_NGROK_3416: Token could not be parsed, possibly malformed","href":"/errors/err_ngrok_3416"},{"mode":"wide","title":"ERR_NGROK_3422: Failed to fetch JWKS","href":"/errors/err_ngrok_3422"},{"mode":"wide","title":"ERR_NGROK_3501: ForwardInternal may only forward through MAX endpoints","href":"/errors/err_ngrok_3501"},{"mode":"wide","title":"ERR_NGROK_3502: The forward-internal action can't forward between endpoints that use different protocols","href":"/errors/err_ngrok_3502"},{"mode":"wide","title":"ERR_NGROK_3601: The response received from the http-request target had a size exceeding the maximum allowed","href":"/errors/err_ngrok_3601"},{"mode":"wide","title":"ERR_NGROK_3602: The configured http-request timeout was reached before a successful request could be made","href":"/errors/err_ngrok_3602"},{"mode":"wide","title":"ERR_NGROK_3603: Request rejected, A loop was detected","href":"/errors/err_ngrok_3603"},{"mode":"wide","title":"ERR_NGROK_3604: HTTP Status Code CODE does not allow including a response body","href":"/errors/err_ngrok_3604"},{"mode":"wide","title":"ERR_NGROK_3700: The request was blocked by the WAF","href":"/errors/err_ngrok_3700"},{"mode":"wide","title":"ERR_NGROK_3701: Something went wrong with the WAF","href":"/errors/err_ngrok_3701"},{"mode":"wide","title":"ERR_NGROK_3702: The response was blocked by the WAF","href":"/errors/err_ngrok_3702"},{"mode":"wide","title":"ERR_NGROK_3810: Request timed out after ACTIONTIMEOUT","href":"/errors/err_ngrok_3810"},{"mode":"wide","title":"ERR_NGROK_3811: Input too large: INPUTTOKENS tokens (max MAXALLOWED)","href":"/errors/err_ngrok_3811"},{"mode":"wide","title":"ERR_NGROK_3820: AI Gateway has a new home at https://app.ngrok.ai","href":"/errors/err_ngrok_3820"},{"mode":"wide","title":"ERR_NGROK_3900: CEL interpolation was unsuccessful in action ACTIONTYPE field FIELD","href":"/errors/err_ngrok_3900"},{"mode":"wide","title":"ERR_NGROK_3901: CEL interpolation in action ACTIONTYPE field FIELD did not result in a valid regex","href":"/errors/err_ngrok_3901"},{"mode":"wide","title":"ERR_NGROK_3902: Buffering for the body was not successfully initialized for action type ACTIONTYPE","href":"/errors/err_ngrok_3902"},{"mode":"wide","title":"ERR_NGROK_3903: The body could not be successfully buffered for action type ACTIONTYPE","href":"/errors/err_ngrok_3903"},{"mode":"wide","title":"ERR_NGROK_3904: The body content could not be successfully modified for action type ACTIONTYPE","href":"/errors/err_ngrok_3904"},{"mode":"wide","title":"ERR_NGROK_3905: The content-length header could not be successfully updated for action type ACTIONTYPE","href":"/errors/err_ngrok_3905"}]},{"group":"ERR_NGROK_4000-4999","pages":[{"mode":"wide","title":"ERR_NGROK_4001: Plan PLAN_ID does not exist","href":"/errors/err_ngrok_4001"},{"mode":"wide","title":"ERR_NGROK_4003: Account name must not be empty","href":"/errors/err_ngrok_4003"},{"mode":"wide","title":"ERR_NGROK_4004: Account name exceeds max length, LENGTH bytes, max: MAX","href":"/errors/err_ngrok_4004"},{"mode":"wide","title":"ERR_NGROK_4005: Another account is already configured with the GSuite domain DOMAIN","href":"/errors/err_ngrok_4005"},{"mode":"wide","title":"ERR_NGROK_4011: Your password must be at least LENGTH characters","href":"/errors/err_ngrok_4011"},{"mode":"wide","title":"ERR_NGROK_4012: Your account does not have access to FEATURE","href":"/errors/err_ngrok_4012"},{"mode":"wide","title":"ERR_NGROK_4013: You may not create a new account because you are already a member of the free account \"ACCOUNT_NAME\"","href":"/errors/err_ngrok_4013"},{"mode":"wide","title":"ERR_NGROK_4014: The account NAME was suspended","href":"/errors/err_ngrok_4014"},{"mode":"wide","title":"ERR_NGROK_4015: The account NAME was banned for violation of the terms of service","href":"/errors/err_ngrok_4015"},{"mode":"wide","title":"ERR_NGROK_4016: You may not create a new account because another account you were the administrator of was suspended","href":"/errors/err_ngrok_4016"},{"mode":"wide","title":"ERR_NGROK_4017: You may not create a new account because another account you were the administrator of was banned for violation of the terms of service","href":"/errors/err_ngrok_4017"},{"mode":"wide","title":"ERR_NGROK_4018: This ngrok session is not authenticated","href":"/errors/err_ngrok_4018"},{"mode":"wide","title":"ERR_NGROK_4019: This account cannot be deleted because it has an active billing subscription","href":"/errors/err_ngrok_4019"},{"mode":"wide","title":"ERR_NGROK_4020: Your password must be less then LENGTH characters","href":"/errors/err_ngrok_4020"},{"mode":"wide","title":"ERR_NGROK_4021: This account cannot be deleted because it has an unpaid invoice","href":"/errors/err_ngrok_4021"},{"mode":"wide","title":"ERR_NGROK_4022: You do not have permission to change the observability capture settings for this account","href":"/errors/err_ngrok_4022"},{"mode":"wide","title":"ERR_NGROK_4023: Your account does not have access to FEATURE","href":"/errors/err_ngrok_4023"},{"mode":"wide","title":"ERR_NGROK_4024: Your account plan cannot be downgraded: REASON","href":"/errors/err_ngrok_4024"},{"mode":"wide","title":"ERR_NGROK_4025: Your account plan cannot be upgraded: REASON","href":"/errors/err_ngrok_4025"},{"mode":"wide","title":"ERR_NGROK_4026: Your account has run out of credit, please upgrade to continue using paid actions, or use your dev domain and remove all paid traffic policy from it","href":"/errors/err_ngrok_4026"},{"mode":"wide","title":"ERR_NGROK_4027: Your account’s included bandwidth has been depleted","href":"/errors/err_ngrok_4027"},{"mode":"wide","title":"ERR_NGROK_4028: A reason is required to change MFA enforcement for this account","href":"/errors/err_ngrok_4028"},{"mode":"wide","title":"ERR_NGROK_4029: Just-in-Time provisioning now requires Domain Control","href":"/errors/err_ngrok_4029"},{"mode":"wide","title":"ERR_NGROK_4100: The email or password you entered is not valid","href":"/errors/err_ngrok_4100"},{"mode":"wide","title":"ERR_NGROK_4101: A user with the email address EMAIL already exists","href":"/errors/err_ngrok_4101"},{"mode":"wide","title":"ERR_NGROK_4103: EMAIL is not a valid email address","href":"/errors/err_ngrok_4103"},{"mode":"wide","title":"ERR_NGROK_4104: User name must not be empty","href":"/errors/err_ngrok_4104"},{"mode":"wide","title":"ERR_NGROK_4105: User name exceeds max length, LENGTH bytes, max: MAX","href":"/errors/err_ngrok_4105"},{"mode":"wide","title":"ERR_NGROK_4106: Your user EMAIL was suspended for violation of the terms of service","href":"/errors/err_ngrok_4106"},{"mode":"wide","title":"ERR_NGROK_4107: Your user EMAIL was banned for violation of the terms of service","href":"/errors/err_ngrok_4107"},{"mode":"wide","title":"ERR_NGROK_4108: Sign ups are disallowed for the email provider \"DOMAIN\"","href":"/errors/err_ngrok_4108"},{"mode":"wide","title":"ERR_NGROK_4109: Service User name must not be empty","href":"/errors/err_ngrok_4109"},{"mode":"wide","title":"ERR_NGROK_4110: Service User name exceeds max length, LENGTH bytes, max: MAX","href":"/errors/err_ngrok_4110"},{"mode":"wide","title":"ERR_NGROK_4111: You must be an admin to create, update, or delete Bots","href":"/errors/err_ngrok_4111"},{"mode":"wide","title":"ERR_NGROK_4112: Service User names must be unique within an account","href":"/errors/err_ngrok_4112"},{"mode":"wide","title":"ERR_NGROK_4114: The email domain \"DOMAIN\" does not allow self-serve user registrations","href":"/errors/err_ngrok_4114"},{"mode":"wide","title":"ERR_NGROK_4115: The email domain \"DOMAIN\" does not allow account creation","href":"/errors/err_ngrok_4115"},{"mode":"wide","title":"ERR_NGROK_4116: The domain of the email entered is registered under a domain control and must signup via SSO","href":"/errors/err_ngrok_4116"},{"mode":"wide","title":"ERR_NGROK_4117: The email address EMAIL already exists under a similar alias","href":"/errors/err_ngrok_4117"},{"mode":"wide","title":"ERR_NGROK_4118: Sign ups are disallowed for the email provided \"EMAIL\"","href":"/errors/err_ngrok_4118"},{"mode":"wide","title":"ERR_NGROK_4119: This account does not have access to service users, please upgrade to a paid plan","href":"/errors/err_ngrok_4119"},{"mode":"wide","title":"ERR_NGROK_4200: You may not delete all or your logins, you must have at least one","href":"/errors/err_ngrok_4200"},{"mode":"wide","title":"ERR_NGROK_4201: This LOGIN login is already connected to another ngrok user","href":"/errors/err_ngrok_4201"},{"mode":"wide","title":"ERR_NGROK_4202: A reason is required to convert a user to password login","href":"/errors/err_ngrok_4202"},{"mode":"wide","title":"ERR_NGROK_4203: This user already has an SSO identity bound to a different identity provider","href":"/errors/err_ngrok_4203"},{"mode":"wide","title":"ERR_NGROK_4300: No user with the email address EMAIL exists","href":"/errors/err_ngrok_4300"},{"mode":"wide","title":"ERR_NGROK_4301: You have not set a password for this account","href":"/errors/err_ngrok_4301"},{"mode":"wide","title":"ERR_NGROK_4302: Unable to redeem password: REASON","href":"/errors/err_ngrok_4302"},{"mode":"wide","title":"ERR_NGROK_4303: A message template is required when bulk expiring passwords","href":"/errors/err_ngrok_4303"},{"mode":"wide","title":"ERR_NGROK_4304: At least one email or user ID must be provided","href":"/errors/err_ngrok_4304"},{"mode":"wide","title":"ERR_NGROK_4305: Message template is not valid: REASON","href":"/errors/err_ngrok_4305"},{"mode":"wide","title":"ERR_NGROK_4400: An email address is required to invite a new user","href":"/errors/err_ngrok_4400"},{"mode":"wide","title":"ERR_NGROK_4401: The invited email address is too long: LENGTH bytes","href":"/errors/err_ngrok_4401"},{"mode":"wide","title":"ERR_NGROK_4402: The invited user would exceed your current team size limit of TEAM_SIZE","href":"/errors/err_ngrok_4402"},{"mode":"wide","title":"ERR_NGROK_4403: You cannot invite any more users","href":"/errors/err_ngrok_4403"},{"mode":"wide","title":"ERR_NGROK_4404: Unable to redeem invitation: REASON","href":"/errors/err_ngrok_4404"},{"mode":"wide","title":"ERR_NGROK_4405: EMAIL is not a valid email address","href":"/errors/err_ngrok_4405"},{"mode":"wide","title":"ERR_NGROK_4407: You are not currently permitted to enroll in the beta","href":"/errors/err_ngrok_4407"},{"mode":"wide","title":"ERR_NGROK_4408: Feature request suggestions must be between 1 and MAXLEN characters, got LENGTH","href":"/errors/err_ngrok_4408"},{"mode":"wide","title":"ERR_NGROK_4409: Your account is not allowed to set invitation permissions","href":"/errors/err_ngrok_4409"},{"mode":"wide","title":"ERR_NGROK_4410: You do not have permissions to invite an administrator to the account","href":"/errors/err_ngrok_4410"},{"mode":"wide","title":"ERR_NGROK_4411: You do not have permissions to invite users to the account","href":"/errors/err_ngrok_4411"},{"mode":"wide","title":"ERR_NGROK_4412: You may not invite users to the account with higher permissions than your own","href":"/errors/err_ngrok_4412"},{"mode":"wide","title":"ERR_NGROK_4413: Developer Read Write must be set on a user if their permissions include Invite","href":"/errors/err_ngrok_4413"},{"mode":"wide","title":"ERR_NGROK_4414: You are not allowed to create invitations, this account uses SCIM 2.0 to manage members","href":"/errors/err_ngrok_4414"},{"mode":"wide","title":"ERR_NGROK_4415: You are not allowed to redeem this invitation, this account uses SCIM 2.0 to manage members","href":"/errors/err_ngrok_4415"},{"mode":"wide","title":"ERR_NGROK_4416: Your email does not match the email intended for this invitation, EMAIL","href":"/errors/err_ngrok_4416"},{"mode":"wide","title":"ERR_NGROK_4451: A user with the email address EMAIL already exists","href":"/errors/err_ngrok_4451"},{"mode":"wide","title":"ERR_NGROK_4452: The email address being verified, EMAIL, belongs to another user","href":"/errors/err_ngrok_4452"},{"mode":"wide","title":"ERR_NGROK_4453: A similar email address to the one being verified, EMAIL, belongs to another user","href":"/errors/err_ngrok_4453"},{"mode":"wide","title":"ERR_NGROK_4454: SCIM-managed users cannot change their email","href":"/errors/err_ngrok_4454"},{"mode":"wide","title":"ERR_NGROK_4455: Users belonging to accounts that enforce SSO cannot change their email","href":"/errors/err_ngrok_4455"},{"mode":"wide","title":"ERR_NGROK_4500: The URL URL is not a valid tcp address or URL","href":"/errors/err_ngrok_4500"},{"mode":"wide","title":"ERR_NGROK_4501: The TCP port PORT in HOST is not a valid numerical TCP port","href":"/errors/err_ngrok_4501"},{"mode":"wide","title":"ERR_NGROK_4502: The TCP port PORT for HOST is not within the range of possible ngrok ports","href":"/errors/err_ngrok_4502"},{"mode":"wide","title":"ERR_NGROK_4503: The IP IP is not a known ngrok TCP IP","href":"/errors/err_ngrok_4503"},{"mode":"wide","title":"ERR_NGROK_4504: The host HOST is not a known ngrok TCP hostname","href":"/errors/err_ngrok_4504"},{"mode":"wide","title":"ERR_NGROK_4701: You must only specify a single SSO configuration but you specified both SAML and OpenID Connect","href":"/errors/err_ngrok_4701"},{"mode":"wide","title":"ERR_NGROK_4702: You cannot delete your last IdP provider when SSO enforced is enabled","href":"/errors/err_ngrok_4702"}]},{"group":"ERR_NGROK_5000-5999","pages":[{"mode":"wide","title":"ERR_NGROK_5000: Your account is limited to MAX RESOURCE","href":"/errors/err_ngrok_5000"},{"mode":"wide","title":"ERR_NGROK_5001: Your account is rate limited to MAX RESOURCE per INTERVAL","href":"/errors/err_ngrok_5001"},{"mode":"wide","title":"ERR_NGROK_5100: An event destination must specify a destination target","href":"/errors/err_ngrok_5100"},{"mode":"wide","title":"ERR_NGROK_5102: You have reached the maximum of MAX destinations for your account","href":"/errors/err_ngrok_5102"},{"mode":"wide","title":"ERR_NGROK_5103: No event destinations with ID: ID associated with this account","href":"/errors/err_ngrok_5103"},{"mode":"wide","title":"ERR_NGROK_5104: Event Destination role ARN \"ARN\" is not a valid ARN for an aws IAM role","href":"/errors/err_ngrok_5104"},{"mode":"wide","title":"ERR_NGROK_5105: Event Destination role is missing an external ID","href":"/errors/err_ngrok_5105"},{"mode":"wide","title":"ERR_NGROK_5106: Event Destination target is missing the auth field","href":"/errors/err_ngrok_5106"},{"mode":"wide","title":"ERR_NGROK_5107: Event Destination auth is missing a role or credentials to send events to the destination target","href":"/errors/err_ngrok_5107"},{"mode":"wide","title":"ERR_NGROK_5108: Update to target type not allowed","href":"/errors/err_ngrok_5108"},{"mode":"wide","title":"ERR_NGROK_5112: Event Destination \"ID\" cannot be deleted because it is still in use by at least one Event Stream","href":"/errors/err_ngrok_5112"},{"mode":"wide","title":"ERR_NGROK_5115: An event destination may not specify more than one destination target","href":"/errors/err_ngrok_5115"},{"mode":"wide","title":"ERR_NGROK_5116: An event destination may not specify more than one type of authentication","href":"/errors/err_ngrok_5116"},{"mode":"wide","title":"ERR_NGROK_5117: The property NAME is an immutable property and may not be updated","href":"/errors/err_ngrok_5117"},{"mode":"wide","title":"ERR_NGROK_5118: The partition (VALUE) of the provided FIELD (ARN) is invalid","href":"/errors/err_ngrok_5118"},{"mode":"wide","title":"ERR_NGROK_5119: The service (VALUE) of the provided FIELD (ARN) is invalid","href":"/errors/err_ngrok_5119"},{"mode":"wide","title":"ERR_NGROK_5120: The provided FIELD (ARN) is invalid","href":"/errors/err_ngrok_5120"},{"mode":"wide","title":"ERR_NGROK_5122","href":"/errors/err_ngrok_5122"},{"mode":"wide","title":"ERR_NGROK_5123: Event Subscription ID not found","href":"/errors/err_ngrok_5123"},{"mode":"wide","title":"ERR_NGROK_5124: Your account can't use the event subscriptions feature","href":"/errors/err_ngrok_5124"},{"mode":"wide","title":"ERR_NGROK_5125: Source TYP not found on Event Subscription ID","href":"/errors/err_ngrok_5125"},{"mode":"wide","title":"ERR_NGROK_5126: You have reached the maximum of MAX destinations on a subscription","href":"/errors/err_ngrok_5126"},{"mode":"wide","title":"ERR_NGROK_5127: The event type for each source must be unique within a subscription","href":"/errors/err_ngrok_5127"},{"mode":"wide","title":"ERR_NGROK_5128: Your account can't create event destinations","href":"/errors/err_ngrok_5128"},{"mode":"wide","title":"ERR_NGROK_5129: The ARN (ARN) is not valid for the SERVICE service","href":"/errors/err_ngrok_5129"},{"mode":"wide","title":"ERR_NGROK_5130: The ARN (ARN) is not valid for the RESOURCE resource type","href":"/errors/err_ngrok_5130"},{"mode":"wide","title":"ERR_NGROK_5131: You have reached the maximum of MAX event subscriptions for your account","href":"/errors/err_ngrok_5131"},{"mode":"wide","title":"ERR_NGROK_5132: The Datadog API key provided is not authorized to send events into Datadog: ERR","href":"/errors/err_ngrok_5132"},{"mode":"wide","title":"ERR_NGROK_5133: Event Destination target is missing API Key","href":"/errors/err_ngrok_5133"},{"mode":"wide","title":"ERR_NGROK_5134: The Datadog site provided (DDSITE) is not valid, please see the \"SITE\" column from https://docs.datadoghq.com/getting_started/site/#access-the-datadog-site","href":"/errors/err_ngrok_5134"},{"mode":"wide","title":"ERR_NGROK_5135: Your account can't use the event source filter feature","href":"/errors/err_ngrok_5135"},{"mode":"wide","title":"ERR_NGROK_5136: The provided azure logs ingestion data collection rule ID is missing or invalid","href":"/errors/err_ngrok_5136"},{"mode":"wide","title":"ERR_NGROK_5137: The provided azure logs ingestion data collection stream name is missing or invalid","href":"/errors/err_ngrok_5137"},{"mode":"wide","title":"ERR_NGROK_5138: The provided azure logs ingestion URI is missing or invalid","href":"/errors/err_ngrok_5138"},{"mode":"wide","title":"ERR_NGROK_5139: The provided azure configuration is invalid: $ERR","href":"/errors/err_ngrok_5139"},{"mode":"wide","title":"ERR_NGROK_5140: One or more provided fields are invalid: $ERR","href":"/errors/err_ngrok_5140"},{"mode":"wide","title":"ERR_NGROK_5141: Your account requires the Account Governance add-on to export audit events","href":"/errors/err_ngrok_5141"},{"mode":"wide","title":"ERR_NGROK_5200: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_5200"},{"mode":"wide","title":"ERR_NGROK_5201: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_5201"},{"mode":"wide","title":"ERR_NGROK_5202: Encountered an error while communicating with the OIDC provider:","href":"/errors/err_ngrok_5202"},{"mode":"wide","title":"ERR_NGROK_5203: The OIDC provider failed to return a OIDC ID Token","href":"/errors/err_ngrok_5203"},{"mode":"wide","title":"ERR_NGROK_5204: Failed to verify the OIDC ID Token:","href":"/errors/err_ngrok_5204"},{"mode":"wide","title":"ERR_NGROK_5205: Failed to extract claims from the OIDC ID Token:","href":"/errors/err_ngrok_5205"},{"mode":"wide","title":"ERR_NGROK_5206: The endpoint configuration \"ECID\" does not exist","href":"/errors/err_ngrok_5206"},{"mode":"wide","title":"ERR_NGROK_5207: OIDC is not enabled on the endpoint configuration \"ECID\"","href":"/errors/err_ngrok_5207"},{"mode":"wide","title":"ERR_NGROK_5208: Encountered an error while attempting to fetch OIDC provider metadata:","href":"/errors/err_ngrok_5208"},{"mode":"wide","title":"ERR_NGROK_5209: The authentication flow was not completed in time","href":"/errors/err_ngrok_5209"},{"mode":"wide","title":"ERR_NGROK_5210: The authentication flow was not completed in time","href":"/errors/err_ngrok_5210"},{"mode":"wide","title":"ERR_NGROK_5211: The OIDC provider returned the error code \"ERROR\" with the additional details: \"DETAILS\"","href":"/errors/err_ngrok_5211"},{"mode":"wide","title":"ERR_NGROK_5212: OIDC is not enabled on the domain \"HOSTNAME\"","href":"/errors/err_ngrok_5212"},{"mode":"wide","title":"ERR_NGROK_5300: SAML RelayState parameter is invalid","href":"/errors/err_ngrok_5300"},{"mode":"wide","title":"ERR_NGROK_5301: The SAML IdP sent an invalid SAML assertion:","href":"/errors/err_ngrok_5301"},{"mode":"wide","title":"ERR_NGROK_5302: The SAML module for the endpoint configuration \"ECID\" disallows IdP-initiated logins","href":"/errors/err_ngrok_5302"},{"mode":"wide","title":"ERR_NGROK_5303: The endpoint configuration \"ECID\" is not attached to any domains","href":"/errors/err_ngrok_5303"},{"mode":"wide","title":"ERR_NGROK_5304: Could not find the domain \"DOMAIN\" specified in the IdP-initiated RelayState","href":"/errors/err_ngrok_5304"},{"mode":"wide","title":"ERR_NGROK_5305: The SAML IdP sent an invalid SAML assertion:","href":"/errors/err_ngrok_5305"},{"mode":"wide","title":"ERR_NGROK_5306: SAML RelayState parameter is invalid","href":"/errors/err_ngrok_5306"},{"mode":"wide","title":"ERR_NGROK_5307: The domain \"DOMAIN\" specified in the IdP-initiated RelayState is not attached to the endpoint configuration \"ECID\"","href":"/errors/err_ngrok_5307"},{"mode":"wide","title":"ERR_NGROK_5308: The SAML IdP sent an invalid SAML logout response:","href":"/errors/err_ngrok_5308"},{"mode":"wide","title":"ERR_NGROK_5309: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_5309"},{"mode":"wide","title":"ERR_NGROK_5310: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_5310"},{"mode":"wide","title":"ERR_NGROK_5311: The SAML IdP sent an invalid SAML assertion with N Authn statements","href":"/errors/err_ngrok_5311"},{"mode":"wide","title":"ERR_NGROK_5312: You are not a member of the configured authorized groups on the ngrok edge","href":"/errors/err_ngrok_5312"},{"mode":"wide","title":"ERR_NGROK_5313: The authentication flow was not completed in time","href":"/errors/err_ngrok_5313"},{"mode":"wide","title":"ERR_NGROK_5314: The logout flow was not completed in time","href":"/errors/err_ngrok_5314"},{"mode":"wide","title":"ERR_NGROK_5315: The authentication flow was not completed in time","href":"/errors/err_ngrok_5315"},{"mode":"wide","title":"ERR_NGROK_5316: The logout flow was not completed in time","href":"/errors/err_ngrok_5316"},{"mode":"wide","title":"ERR_NGROK_5317: The SAML module for the edge route \"RTEID\" disallows IdP-initiated logins","href":"/errors/err_ngrok_5317"},{"mode":"wide","title":"ERR_NGROK_5318: The edge \"EDGID\" is not attached to any domains","href":"/errors/err_ngrok_5318"},{"mode":"wide","title":"ERR_NGROK_5319: Failed to complete IdP-initiated SAML login","href":"/errors/err_ngrok_5319"},{"mode":"wide","title":"ERR_NGROK_5320: The edge route \"RTEID\" does not exist","href":"/errors/err_ngrok_5320"},{"mode":"wide","title":"ERR_NGROK_5321: The RelayState must be configured with the redirect URL for IdP-initiated logins","href":"/errors/err_ngrok_5321"},{"mode":"wide","title":"ERR_NGROK_5322: The domain \"DOMAIN\" specified in the IdP-initiated RelayState is not attached to the edge \"EDGID\"","href":"/errors/err_ngrok_5322"},{"mode":"wide","title":"ERR_NGROK_5323: The SAML module is not enabled for the configuration \"ID\"","href":"/errors/err_ngrok_5323"},{"mode":"wide","title":"ERR_NGROK_5324: The ID \"ID\" that was specified is invalid","href":"/errors/err_ngrok_5324"},{"mode":"wide","title":"ERR_NGROK_5325: Failed to complete IdP-initiated SAML login","href":"/errors/err_ngrok_5325"},{"mode":"wide","title":"ERR_NGROK_5326: Failed to complete IdP-initiated SAML login","href":"/errors/err_ngrok_5326"},{"mode":"wide","title":"ERR_NGROK_5327: Failed to parse the SAML configuration for the configuration \"ID\"","href":"/errors/err_ngrok_5327"},{"mode":"wide","title":"ERR_NGROK_5400: Event Sources for the \"TYP\" event type must specify fields to capture","href":"/errors/err_ngrok_5400"},{"mode":"wide","title":"ERR_NGROK_5401: Event Sources for the \"TYP\" event may not specify fields","href":"/errors/err_ngrok_5401"},{"mode":"wide","title":"ERR_NGROK_5402: Event Sources for the \"TYP\" event may not specify a filter","href":"/errors/err_ngrok_5402"},{"mode":"wide","title":"ERR_NGROK_5403: Event Sources must be configured with fields that match its event type","href":"/errors/err_ngrok_5403"},{"mode":"wide","title":"ERR_NGROK_5404: Event Source filter is invalid: \"ERR\"","href":"/errors/err_ngrok_5404"},{"mode":"wide","title":"ERR_NGROK_5405: Invalid Event Field: \"FIELD\"","href":"/errors/err_ngrok_5405"},{"mode":"wide","title":"ERR_NGROK_5406: Field is not yet supported in event filters: \"FIELD\"","href":"/errors/err_ngrok_5406"},{"mode":"wide","title":"ERR_NGROK_5500: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_5500"},{"mode":"wide","title":"ERR_NGROK_5501: The authentication flow was not completed in time","href":"/errors/err_ngrok_5501"},{"mode":"wide","title":"ERR_NGROK_5502: Authorization with PROVIDER succeeded, but these required scopes not were granted: SCOPES","href":"/errors/err_ngrok_5502"},{"mode":"wide","title":"ERR_NGROK_5503: URL \"state\" parameter is invalid","href":"/errors/err_ngrok_5503"},{"mode":"wide","title":"ERR_NGROK_5504: The authentication flow was not completed in time","href":"/errors/err_ngrok_5504"},{"mode":"wide","title":"ERR_NGROK_5507","href":"/errors/err_ngrok_5507"},{"mode":"wide","title":"ERR_NGROK_5508: Authorization with PROVIDER succeeded, but these required scopes not were granted: SCOPES","href":"/errors/err_ngrok_5508"},{"mode":"wide","title":"ERR_NGROK_5510: PROVIDER did not provide an email for your account","href":"/errors/err_ngrok_5510"},{"mode":"wide","title":"ERR_NGROK_5511: Email \"EMAIL\" is not authorized for use by this account","href":"/errors/err_ngrok_5511"},{"mode":"wide","title":"ERR_NGROK_5512: Email is malformed","href":"/errors/err_ngrok_5512"},{"mode":"wide","title":"ERR_NGROK_5513: Email domain failed to normalize to a FQDN \"DOMAIN\":","href":"/errors/err_ngrok_5513"},{"mode":"wide","title":"ERR_NGROK_5517: PROVIDER denied access to your data during the final step of authorization: DESCRIPTION","href":"/errors/err_ngrok_5517"},{"mode":"wide","title":"ERR_NGROK_5518: PROVIDER rejected authorization with access denied: DESCRIPTION","href":"/errors/err_ngrok_5518"},{"mode":"wide","title":"ERR_NGROK_5520: PROVIDER rejected authorization due to a invalid or unknown scope requested by this application: DESCRIPTION","href":"/errors/err_ngrok_5520"},{"mode":"wide","title":"ERR_NGROK_5521: PROVIDER rejected authorization due to an internal server error: DESCRIPTION","href":"/errors/err_ngrok_5521"},{"mode":"wide","title":"ERR_NGROK_5522: PROVIDER is too busy to handle requests and authorization cannot be completed at this time: DESCRIPTION","href":"/errors/err_ngrok_5522"},{"mode":"wide","title":"ERR_NGROK_5523: PROVIDER rejected authorization as the redirect URL for this application is improperly configured: DESCRIPTION","href":"/errors/err_ngrok_5523"},{"mode":"wide","title":"ERR_NGROK_5524: PROVIDER rejected authorization: DESCRIPTION","href":"/errors/err_ngrok_5524"},{"mode":"wide","title":"ERR_NGROK_5525: PROVIDER has throttled this application and cannot be reached right now","href":"/errors/err_ngrok_5525"},{"mode":"wide","title":"ERR_NGROK_5526: PROVIDER rejected access to your information","href":"/errors/err_ngrok_5526"},{"mode":"wide","title":"ERR_NGROK_5527: PROVIDER rejected the final step of authorization due to invalid credentials","href":"/errors/err_ngrok_5527"},{"mode":"wide","title":"ERR_NGROK_5528: The access code from PROVIDER has expired and cannot be used","href":"/errors/err_ngrok_5528"},{"mode":"wide","title":"ERR_NGROK_5529: PROVIDER denied access to your data during the final step of authorization","href":"/errors/err_ngrok_5529"},{"mode":"wide","title":"ERR_NGROK_5530: OAuth is not enabled on the domain \"HOSTNAME\"","href":"/errors/err_ngrok_5530"},{"mode":"wide","title":"ERR_NGROK_5531: PROVIDER denied access to your account as the correct account could not be chosen automatically","href":"/errors/err_ngrok_5531"},{"mode":"wide","title":"ERR_NGROK_5532: PROVIDER denied access to your account as reauthentication is required","href":"/errors/err_ngrok_5532"},{"mode":"wide","title":"ERR_NGROK_5533: PROVIDER had an internal server error when refreshing your information","href":"/errors/err_ngrok_5533"},{"mode":"wide","title":"ERR_NGROK_5534: Encountered an error while attempting to fetch OIDC provider metadata:","href":"/errors/err_ngrok_5534"},{"mode":"wide","title":"ERR_NGROK_5535: The OAuth provider \"PROVIDER\" cannot be used without a user-defined client ID and client secret","href":"/errors/err_ngrok_5535"},{"mode":"wide","title":"ERR_NGROK_5536: Encountered an error while fetching user data: PROVIDER did not provide a user ID for your account","href":"/errors/err_ngrok_5536"},{"mode":"wide","title":"ERR_NGROK_5537: Encountered an error while resolving CEL expression:","href":"/errors/err_ngrok_5537"},{"mode":"wide","title":"ERR_NGROK_5538: Encountered an error while encrypting the field FIELD","href":"/errors/err_ngrok_5538"},{"mode":"wide","title":"ERR_NGROK_5539: Encountered an error while decrypting the field FIELD","href":"/errors/err_ngrok_5539"}]},{"group":"ERR_NGROK_6000-6999","pages":[{"mode":"wide","title":"ERR_NGROK_6000: This tunnel was unable to update; this may be temporary, please try again shortly","href":"/errors/err_ngrok_6000"},{"mode":"wide","title":"ERR_NGROK_6001: This tunnel is no longer available as its account was not found","href":"/errors/err_ngrok_6001"},{"mode":"wide","title":"ERR_NGROK_6002: This tunnel is no longer available as its account does not own resources required to run","href":"/errors/err_ngrok_6002"},{"mode":"wide","title":"ERR_NGROK_6003: Endpoint configurations cannot be used with agent-specified basic auth","href":"/errors/err_ngrok_6003"},{"mode":"wide","title":"ERR_NGROK_6006: The Event Destination EDID required by ECID was not found","href":"/errors/err_ngrok_6006"},{"mode":"wide","title":"ERR_NGROK_6008: This endpoint is unavailable as its account is suspended due to lack of payment","href":"/errors/err_ngrok_6008"},{"mode":"wide","title":"ERR_NGROK_6009: The ngrok account that was hosting this webpage has been suspended for violation of ngrok's Terms of Service","href":"/errors/err_ngrok_6009"},{"mode":"wide","title":"ERR_NGROK_6010: Endpoint configuration is incompatible with endpoint; module MODULE required by Endpoint Configuration ECID is incompatible with PROTO endpoints","href":"/errors/err_ngrok_6010"},{"mode":"wide","title":"ERR_NGROK_6011: You may not specify MIDDLEWARE options from the ngrok agent because this domain has a configured endpoint configuration: ECID","href":"/errors/err_ngrok_6011"},{"mode":"wide","title":"ERR_NGROK_6013: Failed to compile filter for Event Subscription ESID","href":"/errors/err_ngrok_6013"},{"mode":"wide","title":"ERR_NGROK_6014: Failed to run filter for Event Subscription ESID","href":"/errors/err_ngrok_6014"},{"mode":"wide","title":"ERR_NGROK_6018: The Endpoint HOSTPORT has both an Endpoint Configuration (EPCID) and a Tunnel with incompatible configuration (TUNNELID) online","href":"/errors/err_ngrok_6018"},{"mode":"wide","title":"ERR_NGROK_6019: The Endpoint HOSTPORT has both an Edge (EDGID) and Endpoint Configuration (EPCID) configured","href":"/errors/err_ngrok_6019"},{"mode":"wide","title":"ERR_NGROK_6020: The Endpoint HOSTPORT has both an Edge (EDGID) and Tunnel (TUNID) online","href":"/errors/err_ngrok_6020"},{"mode":"wide","title":"ERR_NGROK_6021: HTML content may only be served after you upgrade to a paid account","href":"/errors/err_ngrok_6021"},{"mode":"wide","title":"ERR_NGROK_6022: Before you can serve HTML content, you must sign up for an ngrok account and install your authtoken","href":"/errors/err_ngrok_6022"},{"mode":"wide","title":"ERR_NGROK_6023: HTML content may only be served in this region after you upgrade to a paid account","href":"/errors/err_ngrok_6023"},{"mode":"wide","title":"ERR_NGROK_6024: You are about to visit HOSTPORT SERVEDBYSTR","href":"/errors/err_ngrok_6024"},{"mode":"wide","title":"ERR_NGROK_6025: The tunnel URL is already bound to another tunnel session","href":"/errors/err_ngrok_6025"},{"mode":"wide","title":"ERR_NGROK_6026: The Endpoint HOSTPORT has both a Cloud Endpoint (CLEPID) and Tunnel (TUNID) online","href":"/errors/err_ngrok_6026"},{"mode":"wide","title":"ERR_NGROK_6027: The Endpoint HOSTPORT has both a Cloud Endpoint (CLEPID) and Edge (EDGID) configured","href":"/errors/err_ngrok_6027"},{"mode":"wide","title":"ERR_NGROK_6028: The Endpoint HOSTPORT has both a Cloud Endpoint (CLEPID) and Endpoint Configuration (TUNID) configured","href":"/errors/err_ngrok_6028"},{"mode":"wide","title":"ERR_NGROK_6029: The traffic policy configured for cloud endpoint CLEPID is non-terminating","href":"/errors/err_ngrok_6029"},{"mode":"wide","title":"ERR_NGROK_6030: The url URL has multiple endpoints, but they do not all have pooling enabled","href":"/errors/err_ngrok_6030"},{"mode":"wide","title":"ERR_NGROK_6031: HTTP endpoints are disabled for HIPAA-enabled plans","href":"/errors/err_ngrok_6031"},{"mode":"wide","title":"ERR_NGROK_6032: This ngrok account is not allowed to use the paid traffic policy features configured on this endpoint","href":"/errors/err_ngrok_6032"},{"mode":"wide","title":"ERR_NGROK_6033: Insuffiucient AI Gateway Credits - Your credit balance is too low to use AI Gateway","href":"/errors/err_ngrok_6033"},{"mode":"wide","title":"ERR_NGROK_6500: Your account is not authorized to use the backends feature","href":"/errors/err_ngrok_6500"},{"mode":"wide","title":"ERR_NGROK_6501: Cannot save backend reference ID because it does not exists","href":"/errors/err_ngrok_6501"},{"mode":"wide","title":"ERR_NGROK_6502: The backend could not be deleted because it is still referenced by at least one backend","href":"/errors/err_ngrok_6502"},{"mode":"wide","title":"ERR_NGROK_6503: Description is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_6503"},{"mode":"wide","title":"ERR_NGROK_6504: Metadata is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_6504"},{"mode":"wide","title":"ERR_NGROK_6505: Static backend requires address in the host:port form","href":"/errors/err_ngrok_6505"},{"mode":"wide","title":"ERR_NGROK_6506: Static backend address ADDR is invalid (REASON)","href":"/errors/err_ngrok_6506"},{"mode":"wide","title":"ERR_NGROK_6507: Static backend address ADDR is missing host","href":"/errors/err_ngrok_6507"},{"mode":"wide","title":"ERR_NGROK_6508: Tunnel group labels count is limited to MAX; you have VAL labels","href":"/errors/err_ngrok_6508"},{"mode":"wide","title":"ERR_NGROK_6509: Tunnel group label key length is limited to between MIN and MAX; key NAME has VAL characters","href":"/errors/err_ngrok_6509"},{"mode":"wide","title":"ERR_NGROK_6510: Tunnel group label value length is limited to between MIN and MAX; value NAME has VAL characters","href":"/errors/err_ngrok_6510"},{"mode":"wide","title":"ERR_NGROK_6511: Weighted backends count is limited to MAX; you have VAL backends","href":"/errors/err_ngrok_6511"},{"mode":"wide","title":"ERR_NGROK_6512: Weighted backend ID weight VAL is out of range; it must be between MIN and MAX","href":"/errors/err_ngrok_6512"},{"mode":"wide","title":"ERR_NGROK_6513: Failover backends may only contain up to MAX failover backends; you have VAL failover backends","href":"/errors/err_ngrok_6513"},{"mode":"wide","title":"ERR_NGROK_6514: Backend not found","href":"/errors/err_ngrok_6514"},{"mode":"wide","title":"ERR_NGROK_6515: Tunnel Group Backend ID did not match any endpoints","href":"/errors/err_ngrok_6515"},{"mode":"wide","title":"ERR_NGROK_6516: HTTP Response Backend ID had too large of a body","href":"/errors/err_ngrok_6516"},{"mode":"wide","title":"ERR_NGROK_6517: HTTP Response Backend ID had an invalid status code","href":"/errors/err_ngrok_6517"},{"mode":"wide","title":"ERR_NGROK_6522: The header beginning with PREFIX...' exceeds the maximum header name length of BYTES bytes","href":"/errors/err_ngrok_6522"},{"mode":"wide","title":"ERR_NGROK_6523: The header value for HEADERKEY beginning with PREFIX...' exceeds the maximum header value length of BYTES bytes","href":"/errors/err_ngrok_6523"},{"mode":"wide","title":"ERR_NGROK_6524: A Weighted Backend may not reference the backend ID because it is a BACKENDTYPE backend","href":"/errors/err_ngrok_6524"},{"mode":"wide","title":"ERR_NGROK_6525: A Failover Backend may not reference the backend ID because it is a BACKENDTYPE backend","href":"/errors/err_ngrok_6525"},{"mode":"wide","title":"ERR_NGROK_6526: The id ID is not a valid backend ID","href":"/errors/err_ngrok_6526"},{"mode":"wide","title":"ERR_NGROK_6527: The id ID is invalid; expected an id of type BACKENDTYPE backend","href":"/errors/err_ngrok_6527"},{"mode":"wide","title":"ERR_NGROK_6528: Traffic made it to the ngrok edge, but there are no endpoints online serving an app","href":"/errors/err_ngrok_6528"},{"mode":"wide","title":"ERR_NGROK_6529: Your account is not authorized to use the weighted backends feature","href":"/errors/err_ngrok_6529"},{"mode":"wide","title":"ERR_NGROK_6530: The ID header cannot be removed without specifying a replacement","href":"/errors/err_ngrok_6530"},{"mode":"wide","title":"ERR_NGROK_6531: The tunnel group label key/value ID may not contain '=' characters","href":"/errors/err_ngrok_6531"},{"mode":"wide","title":"ERR_NGROK_6600: The account NAME has reached its team size limit and may not add additional users","href":"/errors/err_ngrok_6600"},{"mode":"wide","title":"ERR_NGROK_6601: Failed to add USER_NAME as a member of account ACCOUNT_NAME because they are already a member","href":"/errors/err_ngrok_6601"},{"mode":"wide","title":"ERR_NGROK_6602: You may not remove the last administrator of the account","href":"/errors/err_ngrok_6602"},{"mode":"wide","title":"ERR_NGROK_6603: Your account is not allowed to set membership permissions","href":"/errors/err_ngrok_6603"},{"mode":"wide","title":"ERR_NGROK_6604: You may not remove an administrator from the account","href":"/errors/err_ngrok_6604"},{"mode":"wide","title":"ERR_NGROK_6605: You may not grant administrator privileges to an account member","href":"/errors/err_ngrok_6605"},{"mode":"wide","title":"ERR_NGROK_6606: You may not change an administrator's permissions","href":"/errors/err_ngrok_6606"},{"mode":"wide","title":"ERR_NGROK_6607: You may not change the account administrator","href":"/errors/err_ngrok_6607"},{"mode":"wide","title":"ERR_NGROK_6608: Could not transfer administrative control to membership ID because it could not be found on this account","href":"/errors/err_ngrok_6608"},{"mode":"wide","title":"ERR_NGROK_6609: Swapping administrators is not supported on accounts with RBAC enabled","href":"/errors/err_ngrok_6609"},{"mode":"wide","title":"ERR_NGROK_6612: You are not allowed to remove members","href":"/errors/err_ngrok_6612"},{"mode":"wide","title":"ERR_NGROK_6613: You are not allowed to create members","href":"/errors/err_ngrok_6613"},{"mode":"wide","title":"ERR_NGROK_6614: You are not allowed to set the permissions of members","href":"/errors/err_ngrok_6614"},{"mode":"wide","title":"ERR_NGROK_6615: You may not create users with higher permissions than your own","href":"/errors/err_ngrok_6615"},{"mode":"wide","title":"ERR_NGROK_6616: You may not set user permissions higher than your own","href":"/errors/err_ngrok_6616"},{"mode":"wide","title":"ERR_NGROK_6617: Users must have a defined billing permission","href":"/errors/err_ngrok_6617"},{"mode":"wide","title":"ERR_NGROK_6618: You are not allowed to create members, this account uses SCIM 2.0 to manage members","href":"/errors/err_ngrok_6618"},{"mode":"wide","title":"ERR_NGROK_6619: You are not allowed to remove members, this account uses SCIM 2.0 to manage members","href":"/errors/err_ngrok_6619"},{"mode":"wide","title":"ERR_NGROK_6620: You are not allowed to activate/deactivate members, this account uses SCIM 2.0 to manage members","href":"/errors/err_ngrok_6620"},{"mode":"wide","title":"ERR_NGROK_6621: You are not allowed to activate/deactivate admins","href":"/errors/err_ngrok_6621"},{"mode":"wide","title":"ERR_NGROK_6622: You may not deactivate the last administrator of the account","href":"/errors/err_ngrok_6622"},{"mode":"wide","title":"ERR_NGROK_6623: Could not transfer administrative control to membership ID because it is deactivated","href":"/errors/err_ngrok_6623"},{"mode":"wide","title":"ERR_NGROK_6700: The description is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_6700"},{"mode":"wide","title":"ERR_NGROK_6701: Metadata is limited to MAX characters, but the provided value had VAL characters","href":"/errors/err_ngrok_6701"},{"mode":"wide","title":"ERR_NGROK_6702: No DNS records were returned when querying for an NS record for the domain DOMAIN","href":"/errors/err_ngrok_6702"},{"mode":"wide","title":"ERR_NGROK_6703: The NS records for the domain DOMAIN \"GOT\" do not match the expected targets \"EXPECTED\"","href":"/errors/err_ngrok_6703"},{"mode":"wide","title":"ERR_NGROK_6704: The specified domain \"DOMAIN\" is not a valid domain name","href":"/errors/err_ngrok_6704"},{"mode":"wide","title":"ERR_NGROK_6705: The agent ingress domain \"DOMAIN\" must be a third party domain, you may not enter a domain controlled by ngrok","href":"/errors/err_ngrok_6705"},{"mode":"wide","title":"ERR_NGROK_6706: The agent ingress domain \"DOMAIN\" already exists, choose another domain","href":"/errors/err_ngrok_6706"},{"mode":"wide","title":"ERR_NGROK_6707: Your account can't reserve custom agent ingresses","href":"/errors/err_ngrok_6707"},{"mode":"wide","title":"ERR_NGROK_6708: Multiple certificate sources provided","href":"/errors/err_ngrok_6708"},{"mode":"wide","title":"ERR_NGROK_6709: Some of the dedicated IPs \"IPS\" are already used in a different agent ingress","href":"/errors/err_ngrok_6709"},{"mode":"wide","title":"ERR_NGROK_6710: Dedicated IP \"IP\" is not a valid IP","href":"/errors/err_ngrok_6710"},{"mode":"wide","title":"ERR_NGROK_6711: Dedicated IP \"IP\" is duplicated in the set of IPs","href":"/errors/err_ngrok_6711"}]},{"group":"ERR_NGROK_7000-7999","pages":[{"mode":"wide","title":"ERR_NGROK_7000: Edge not found","href":"/errors/err_ngrok_7000"},{"mode":"wide","title":"ERR_NGROK_7001: Invalid edge ID","href":"/errors/err_ngrok_7001"},{"mode":"wide","title":"ERR_NGROK_7002: Invalid edge request","href":"/errors/err_ngrok_7002"},{"mode":"wide","title":"ERR_NGROK_7007: The IP Policy ID ID specified for the IP Restriction module does not exist","href":"/errors/err_ngrok_7007"},{"mode":"wide","title":"ERR_NGROK_7008: Edges are deprecated and no longer available","href":"/errors/err_ngrok_7008"},{"mode":"wide","title":"ERR_NGROK_7009: Your account is limited to a maximum of MAX edges","href":"/errors/err_ngrok_7009"},{"mode":"wide","title":"ERR_NGROK_7011: Invalid edge, circuit breaker error threshold percentage must be between 0.0 and 1.0 inclusive, was VAL","href":"/errors/err_ngrok_7011"},{"mode":"wide","title":"ERR_NGROK_7012: The auth provider VAL does not exist","href":"/errors/err_ngrok_7012"},{"mode":"wide","title":"ERR_NGROK_7013: The edge module exceeds the max number of IP Policies","href":"/errors/err_ngrok_7013"},{"mode":"wide","title":"ERR_NGROK_7014: The edge module TLS CA certificate size exceeds the max","href":"/errors/err_ngrok_7014"},{"mode":"wide","title":"ERR_NGROK_7015: The edge module exceeds the max number of headers","href":"/errors/err_ngrok_7015"},{"mode":"wide","title":"ERR_NGROK_7016: Invalid edge module, circuit breaker tripped duration must be greater than 0, was VAL","href":"/errors/err_ngrok_7016"},{"mode":"wide","title":"ERR_NGROK_7017: Invalid edge module, circuit breaker rolling window must be greater than 0, was VAL","href":"/errors/err_ngrok_7017"},{"mode":"wide","title":"ERR_NGROK_7018: Invalid edge module, circuit breaker num buckets must be greater than 0 and less than MAX, was VAL","href":"/errors/err_ngrok_7018"},{"mode":"wide","title":"ERR_NGROK_7019: The edge could not be deleted because it is still referenced by at least one reserved domain or reserved address","href":"/errors/err_ngrok_7019"},{"mode":"wide","title":"ERR_NGROK_7020: The edge must specify a type","href":"/errors/err_ngrok_7020"},{"mode":"wide","title":"ERR_NGROK_7021: The module NAME is not supported on an edge of type TYPE","href":"/errors/err_ngrok_7021"},{"mode":"wide","title":"ERR_NGROK_7022: NAME is not a valid edge type","href":"/errors/err_ngrok_7022"},{"mode":"wide","title":"ERR_NGROK_7023: KEY is not a valid HTTP header name because it contains at least one invalid character","href":"/errors/err_ngrok_7023"},{"mode":"wide","title":"ERR_NGROK_7024: VAL is not a valid HTTP header value: REASON","href":"/errors/err_ngrok_7024"},{"mode":"wide","title":"ERR_NGROK_7025: You must specify at least one IP Policy in the IP Restriction module","href":"/errors/err_ngrok_7025"},{"mode":"wide","title":"ERR_NGROK_7026: SNS webhook verification does not accept a secret","href":"/errors/err_ngrok_7026"},{"mode":"wide","title":"ERR_NGROK_7027: Webhook verification for T requires a secret","href":"/errors/err_ngrok_7027"},{"mode":"wide","title":"ERR_NGROK_7028: There were validation errors while saving the edge:ERRS","href":"/errors/err_ngrok_7028"},{"mode":"wide","title":"ERR_NGROK_7029: You must specify a supported provider name","href":"/errors/err_ngrok_7029"},{"mode":"wide","title":"ERR_NGROK_7030: Webhook provider T is not supported","href":"/errors/err_ngrok_7030"},{"mode":"wide","title":"ERR_NGROK_7031: Your account is not authorized to use webhook verification","href":"/errors/err_ngrok_7031"},{"mode":"wide","title":"ERR_NGROK_7032: You may not configure the TLS termination parameter PARAMETER when the HTTPS module disables TLS termination","href":"/errors/err_ngrok_7032"},{"mode":"wide","title":"ERR_NGROK_7033: Invalid edge module, unmanaged provider configurations must specify a client ID and a client secret","href":"/errors/err_ngrok_7033"},{"mode":"wide","title":"ERR_NGROK_7034: Invalid edge module, custom OAuth scopes on a managed OAuth application are not allowed","href":"/errors/err_ngrok_7034"},{"mode":"wide","title":"ERR_NGROK_7035: Invalid edge module, OAuth auth check interval must be at least MIN, was ACTUAL","href":"/errors/err_ngrok_7035"},{"mode":"wide","title":"ERR_NGROK_7036: Invalid edge module, OAuth may only have one provider configuration but multiple are defined: [PROVIDER_NAMES]","href":"/errors/err_ngrok_7036"},{"mode":"wide","title":"ERR_NGROK_7037: Invalid edge module, OAuth does not define any provider configurations but one is required","href":"/errors/err_ngrok_7037"},{"mode":"wide","title":"ERR_NGROK_7038: Invalid edge module, OAuth provider PROVIDER requires at least the SCOPE scope to authenticate by AUTH_FEATURE.'","href":"/errors/err_ngrok_7038"},{"mode":"wide","title":"ERR_NGROK_7039: Invalid edge module, OAuth provider PROVIDER contains an invalid email domain: NAME","href":"/errors/err_ngrok_7039"},{"mode":"wide","title":"ERR_NGROK_7040: Invalid edge module, OAuth GitHub Teams must be listed as either numerical ids or in the format 'org_slug/team_slug', TEAM does not match either format","href":"/errors/err_ngrok_7040"},{"mode":"wide","title":"ERR_NGROK_7041: Your account is not authorized to use OAuth","href":"/errors/err_ngrok_7041"},{"mode":"wide","title":"ERR_NGROK_7042: Invalid edge module, OAuth cookie prefix PREFIX must consist of only alphanumeric characters with periods","href":"/errors/err_ngrok_7042"},{"mode":"wide","title":"ERR_NGROK_7043: Invalid edge module, OAuth provider PROVIDER contains an invalid email address, NAME","href":"/errors/err_ngrok_7043"},{"mode":"wide","title":"ERR_NGROK_7044: Invalid edge module, OAuth provider PROVIDER contains an email domain with invalid punycode: NAME","href":"/errors/err_ngrok_7044"},{"mode":"wide","title":"ERR_NGROK_7045: Invalid edge module, OAuth provider PROVIDER contains an email address with invalid punycode: NAME","href":"/errors/err_ngrok_7045"},{"mode":"wide","title":"ERR_NGROK_7046: Invalid edge module, OAuth provider PROVIDER email addresses must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_7046"},{"mode":"wide","title":"ERR_NGROK_7047: Invalid edge module, OAuth provider PROVIDER email domains must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_7047"},{"mode":"wide","title":"ERR_NGROK_7048: Invalid edge module, OAuth provider PROVIDER teams must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_7048"},{"mode":"wide","title":"ERR_NGROK_7049: Invalid edge module, OAuth provider PROVIDER organizations must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_7049"},{"mode":"wide","title":"ERR_NGROK_7050: Invalid edge module, OAuth provider PROVIDER groups must be unique, but a duplicate is present: DUPLICATE","href":"/errors/err_ngrok_7050"},{"mode":"wide","title":"ERR_NGROK_7051: Invalid edge module, OAuth provider PROVIDER email addresses must not contain empty values","href":"/errors/err_ngrok_7051"},{"mode":"wide","title":"ERR_NGROK_7052: Invalid edge module, OAuth provider PROVIDER email domains must not contain empty values","href":"/errors/err_ngrok_7052"},{"mode":"wide","title":"ERR_NGROK_7053: Invalid edge module, OAuth provider PROVIDER teams must not contain empty values","href":"/errors/err_ngrok_7053"},{"mode":"wide","title":"ERR_NGROK_7054: Invalid edge module, OAuth provider PROVIDER organizations must not contain empty values","href":"/errors/err_ngrok_7054"},{"mode":"wide","title":"ERR_NGROK_7055: Invalid edge module, OAuth provider PROVIDER groups must not contain empty values","href":"/errors/err_ngrok_7055"},{"mode":"wide","title":"ERR_NGROK_7056: The edge module exceeds the maximum number of OAuth scopes","href":"/errors/err_ngrok_7056"},{"mode":"wide","title":"ERR_NGROK_7057: The edge module exceeds the maximum number of OAuth GitHub teams","href":"/errors/err_ngrok_7057"},{"mode":"wide","title":"ERR_NGROK_7058: The edge module exceeds the maximum number of OAuth GitHub orgs","href":"/errors/err_ngrok_7058"},{"mode":"wide","title":"ERR_NGROK_7059: The edge module exceeds the maximum number of OAuth Google groups","href":"/errors/err_ngrok_7059"},{"mode":"wide","title":"ERR_NGROK_7060: The edge module exceeds the maximum number of OAuth emails","href":"/errors/err_ngrok_7060"},{"mode":"wide","title":"ERR_NGROK_7061: The edge module exceeds the maximum number of OAuth domains","href":"/errors/err_ngrok_7061"},{"mode":"wide","title":"ERR_NGROK_7062: The edge specifies the following modules which may not be enabled when TLS is not terminated: MODULE_NAMES","href":"/errors/err_ngrok_7062"},{"mode":"wide","title":"ERR_NGROK_7067: Invalid edge module, email addresses must be lowercase but EMAIL is not","href":"/errors/err_ngrok_7067"},{"mode":"wide","title":"ERR_NGROK_7068: Invalid edge module, email domains must be lowercase but DOMAIN is not","href":"/errors/err_ngrok_7068"},{"mode":"wide","title":"ERR_NGROK_7069: Duplicate 'add' header, HEADER was provided twice with different casings: CASE_ONE and CASE_TWO","href":"/errors/err_ngrok_7069"},{"mode":"wide","title":"ERR_NGROK_7070: Your account is limited to MAX edges","href":"/errors/err_ngrok_7070"},{"mode":"wide","title":"ERR_NGROK_7071: Your account is rate limited for adding MAX edges per INTERVAL","href":"/errors/err_ngrok_7071"},{"mode":"wide","title":"ERR_NGROK_7072: The CA ID ID specified for the Mutual TLS module does not exist","href":"/errors/err_ngrok_7072"},{"mode":"wide","title":"ERR_NGROK_7073: Description is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_7073"},{"mode":"wide","title":"ERR_NGROK_7074: Metadata is limited to MAX characters; you have entered VAL characters","href":"/errors/err_ngrok_7074"},{"mode":"wide","title":"ERR_NGROK_7075: The Mutual TLS configurations exceeds the limit of LIMIT attached certificate authorities","href":"/errors/err_ngrok_7075"},{"mode":"wide","title":"ERR_NGROK_7079: The edge specifies conflicting authentication modules","href":"/errors/err_ngrok_7079"},{"mode":"wide","title":"ERR_NGROK_7080: The SAML metadata exceeds the maximum length of MAX bytes, got NBYTES","href":"/errors/err_ngrok_7080"},{"mode":"wide","title":"ERR_NGROK_7081: You must specify only the SAML IdP metadata or the SAML IdP metadata URL, but not both","href":"/errors/err_ngrok_7081"},{"mode":"wide","title":"ERR_NGROK_7082: Failed to connect to IdP metadata URL MDURL: ERR","href":"/errors/err_ngrok_7082"},{"mode":"wide","title":"ERR_NGROK_7083: Failed to parse the SAML IdP metadata: ERR","href":"/errors/err_ngrok_7083"},{"mode":"wide","title":"ERR_NGROK_7084: Received unexpected status code STATUSCODE while fetching metadata URL MDURL","href":"/errors/err_ngrok_7084"},{"mode":"wide","title":"ERR_NGROK_7085: Failed to parse the SAML IdP metadata fetched from URL MDURL: ERR","href":"/errors/err_ngrok_7085"},{"mode":"wide","title":"ERR_NGROK_7086: Encountered an error while reading the response body from the IdP metadata URL MDURL: ERR","href":"/errors/err_ngrok_7086"},{"mode":"wide","title":"ERR_NGROK_7087: The specified OIDC issuer has a maximum length of MAX bytes","href":"/errors/err_ngrok_7087"},{"mode":"wide","title":"ERR_NGROK_7088: The OIDC issuer property is required","href":"/errors/err_ngrok_7088"},{"mode":"wide","title":"ERR_NGROK_7089: The OIDC Client ID property is required","href":"/errors/err_ngrok_7089"},{"mode":"wide","title":"ERR_NGROK_7090: The OIDC Client Secret property is required","href":"/errors/err_ngrok_7090"},{"mode":"wide","title":"ERR_NGROK_7091: One of the SAML IdP Metadata or IdP Metadata URL properties must be specified","href":"/errors/err_ngrok_7091"},{"mode":"wide","title":"ERR_NGROK_7092: Invalid edge module, session inactivity timeout cannot be more than one year, was ACTUAL","href":"/errors/err_ngrok_7092"},{"mode":"wide","title":"ERR_NGROK_7093: Your account is not authorized to use basic auth","href":"/errors/err_ngrok_7093"},{"mode":"wide","title":"ERR_NGROK_7094: Your account is not authorized to use compression","href":"/errors/err_ngrok_7094"},{"mode":"wide","title":"ERR_NGROK_7095: Your account is not authorized to use circuit breaker","href":"/errors/err_ngrok_7095"},{"mode":"wide","title":"ERR_NGROK_7096: Your account is not authorized to use request headers","href":"/errors/err_ngrok_7096"},{"mode":"wide","title":"ERR_NGROK_7097: Your account is not authorized to use response headers","href":"/errors/err_ngrok_7097"},{"mode":"wide","title":"ERR_NGROK_7098: Your account is not authorized to use OIDC","href":"/errors/err_ngrok_7098"},{"mode":"wide","title":"ERR_NGROK_7099: Your account is not authorized to use SAML","href":"/errors/err_ngrok_7099"},{"mode":"wide","title":"ERR_NGROK_7100: Your account is not authorized to use TLS termination","href":"/errors/err_ngrok_7100"},{"mode":"wide","title":"ERR_NGROK_7101: Your account is not authorized to use IP Restrictions","href":"/errors/err_ngrok_7101"},{"mode":"wide","title":"ERR_NGROK_7102: Your account is not authorized to use TCP address backends","href":"/errors/err_ngrok_7102"},{"mode":"wide","title":"ERR_NGROK_7103: Your account is not authorized to use mutual TLS","href":"/errors/err_ngrok_7103"},{"mode":"wide","title":"ERR_NGROK_7104: Edge has invalid hostports, must be specified in the format 'hostname:portnumber': INVALID","href":"/errors/err_ngrok_7104"},{"mode":"wide","title":"ERR_NGROK_7105: The header beginning with PREFIX...' exceeds the maximum header name length of BYTES bytes","href":"/errors/err_ngrok_7105"},{"mode":"wide","title":"ERR_NGROK_7106: The header value for HEADERKEY beginning with PREFIX...' exceeds the maximum header value length of BYTES bytes","href":"/errors/err_ngrok_7106"},{"mode":"wide","title":"ERR_NGROK_7107: The sendgrid verification key is not a base64 encoded ecdsa public key","href":"/errors/err_ngrok_7107"},{"mode":"wide","title":"ERR_NGROK_7108: Your account is not authorized to use the websocket to TCP converter","href":"/errors/err_ngrok_7108"},{"mode":"wide","title":"ERR_NGROK_7109: You may not configure the TLS termination parameter 'terminate_at' for an HTTPS edge","href":"/errors/err_ngrok_7109"},{"mode":"wide","title":"ERR_NGROK_7110: The request edge ID EID does not match the route edge ID REID","href":"/errors/err_ngrok_7110"},{"mode":"wide","title":"ERR_NGROK_7111: The edge hostport HOST:PORT does not exist","href":"/errors/err_ngrok_7111"},{"mode":"wide","title":"ERR_NGROK_7112: The hostport HOSTPORT has port out of range: PORT is not in range 1-65535","href":"/errors/err_ngrok_7112"},{"mode":"wide","title":"ERR_NGROK_7113: The address HOSTPORT is not reserved","href":"/errors/err_ngrok_7113"},{"mode":"wide","title":"ERR_NGROK_7114: The address HOSTPORT is not reserved by your account","href":"/errors/err_ngrok_7114"},{"mode":"wide","title":"ERR_NGROK_7115: The address HOSTPORT has an endpoint configuration which must be removed before it can be used by an edge","href":"/errors/err_ngrok_7115"},{"mode":"wide","title":"ERR_NGROK_7116: The domain HOSTPORT is unsupported because it does not use port 443","href":"/errors/err_ngrok_7116"},{"mode":"wide","title":"ERR_NGROK_7117: The domain HOSTPORT is not reserved","href":"/errors/err_ngrok_7117"},{"mode":"wide","title":"ERR_NGROK_7118: The domain HOSTPORT is not reserved by your account","href":"/errors/err_ngrok_7118"},{"mode":"wide","title":"ERR_NGROK_7119: The domain HOSTPORT has an endpoint configuration which must be removed before it can be used by an edge","href":"/errors/err_ngrok_7119"},{"mode":"wide","title":"ERR_NGROK_7120: TCP edges can only be associated with TCP addresses: HOSTPORT is a domain","href":"/errors/err_ngrok_7120"},{"mode":"wide","title":"ERR_NGROK_7121: HTTPS edges can only be associated with reserved domains: HOSTPORT is a TCP address","href":"/errors/err_ngrok_7121"},{"mode":"wide","title":"ERR_NGROK_7122: Hostport HOSTPORT already exists for another edge","href":"/errors/err_ngrok_7122"},{"mode":"wide","title":"ERR_NGROK_7123: Edge routes require a match expression","href":"/errors/err_ngrok_7123"},{"mode":"wide","title":"ERR_NGROK_7124: The edge route ID could not be found","href":"/errors/err_ngrok_7124"},{"mode":"wide","title":"ERR_NGROK_7125: There is a duplicate route ID for HTTPS edge","href":"/errors/err_ngrok_7125"},{"mode":"wide","title":"ERR_NGROK_7126: Route match expression MATCH must be unique across all routes for HTTPS edge","href":"/errors/err_ngrok_7126"},{"mode":"wide","title":"ERR_NGROK_7127: OAuth may not currently be configured for any route except '/', could not configure for route MATCH","href":"/errors/err_ngrok_7127"},{"mode":"wide","title":"ERR_NGROK_7128: Your account is limited to a maximum of MAX routes for a single edge","href":"/errors/err_ngrok_7128"},{"mode":"wide","title":"ERR_NGROK_7129: Your account is limited to a maximum of MAX hostports for a single edge","href":"/errors/err_ngrok_7129"},{"mode":"wide","title":"ERR_NGROK_7130: Invalid match type, valid values are \"exact_path\" and \"path_prefix\"","href":"/errors/err_ngrok_7130"},{"mode":"wide","title":"ERR_NGROK_7131: The route selector expression MATCH is invalid","href":"/errors/err_ngrok_7131"},{"mode":"wide","title":"ERR_NGROK_7132: The hostport HOSTPORT is already in use by an agent directly","href":"/errors/err_ngrok_7132"},{"mode":"wide","title":"ERR_NGROK_7133: TLS edges can only be associated with reserved domains: HOSTPORT is a TCP address","href":"/errors/err_ngrok_7133"},{"mode":"wide","title":"ERR_NGROK_7134: OAuth, OIDC and SAML may only be configured for routes with path selectors (i.e","href":"/errors/err_ngrok_7134"},{"mode":"wide","title":"ERR_NGROK_7135: The route selector expression exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7135"},{"mode":"wide","title":"ERR_NGROK_7136: The OAuth Cookie Prefix exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7136"},{"mode":"wide","title":"ERR_NGROK_7137: The OAuth Client ID exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7137"},{"mode":"wide","title":"ERR_NGROK_7138: The OAuth Client Secret exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7138"},{"mode":"wide","title":"ERR_NGROK_7139: The OAuth Email Address exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7139"},{"mode":"wide","title":"ERR_NGROK_7140: The OAuth Email Domain exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7140"},{"mode":"wide","title":"ERR_NGROK_7141: The OAuth Scope exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7141"},{"mode":"wide","title":"ERR_NGROK_7142: The edge module exceeds the maximum number of GitHub teams","href":"/errors/err_ngrok_7142"},{"mode":"wide","title":"ERR_NGROK_7143: The edge module exceeds the maximum number of GitHub orgs","href":"/errors/err_ngrok_7143"},{"mode":"wide","title":"ERR_NGROK_7144: The OAuth GitHub team exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7144"},{"mode":"wide","title":"ERR_NGROK_7145: The OAuth GitHub org exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7145"},{"mode":"wide","title":"ERR_NGROK_7146: The edge module exceeds the maximum number of Google groups","href":"/errors/err_ngrok_7146"},{"mode":"wide","title":"ERR_NGROK_7147: The OAuth Google group exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7147"},{"mode":"wide","title":"ERR_NGROK_7148: The OIDC Client ID exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7148"},{"mode":"wide","title":"ERR_NGROK_7149: The OIDC Client Secret exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7149"},{"mode":"wide","title":"ERR_NGROK_7150: The edge module exceeds the maximum number of OIDC scopes","href":"/errors/err_ngrok_7150"},{"mode":"wide","title":"ERR_NGROK_7151: The OIDC Scope exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7151"},{"mode":"wide","title":"ERR_NGROK_7152: The OIDC Authn URL exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7152"},{"mode":"wide","title":"ERR_NGROK_7153: The OIDC cookie prefix exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7153"},{"mode":"wide","title":"ERR_NGROK_7154: The Webhook Verification secret exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_7154"},{"mode":"wide","title":"ERR_NGROK_7155: Enabling OAuth, OIDC, or SAML on more than one route is not supported","href":"/errors/err_ngrok_7155"},{"mode":"wide","title":"ERR_NGROK_7158: Invalid edge module, OAuth auth check interval must be no greater than MAX, was ACTUAL","href":"/errors/err_ngrok_7158"},{"mode":"wide","title":"ERR_NGROK_7159: Invalid edge module, OIDC auth check interval must be at least MIN, was ACTUAL","href":"/errors/err_ngrok_7159"},{"mode":"wide","title":"ERR_NGROK_7160: Invalid edge module, OIDC auth check interval must be no greater than MAX, was ACTUAL","href":"/errors/err_ngrok_7160"},{"mode":"wide","title":"ERR_NGROK_7161: Invalid edge module, OAuth max session duration must be no greater than MAX, was ACTUAL","href":"/errors/err_ngrok_7161"},{"mode":"wide","title":"ERR_NGROK_7162: Invalid edge module, OIDC max session duration must be no greater than MAX, was ACTUAL","href":"/errors/err_ngrok_7162"},{"mode":"wide","title":"ERR_NGROK_7163: Your account is not authorized to use the TLS edges","href":"/errors/err_ngrok_7163"},{"mode":"wide","title":"ERR_NGROK_7164: The ID header cannot be removed without specifying a replacement","href":"/errors/err_ngrok_7164"},{"mode":"wide","title":"ERR_NGROK_7165: An unsupported OAuth Provider was configured","href":"/errors/err_ngrok_7165"},{"mode":"wide","title":"ERR_NGROK_7166: The \"PROVIDER\" OAuth Provider does not currently have a managed app available, specify a client id and client secret","href":"/errors/err_ngrok_7166"},{"mode":"wide","title":"ERR_NGROK_7167: Your account is not authorized to use user agent filter","href":"/errors/err_ngrok_7167"},{"mode":"wide","title":"ERR_NGROK_7168: Your account is not authorized to use JWT Validation","href":"/errors/err_ngrok_7168"},{"mode":"wide","title":"ERR_NGROK_7169: The TYPE token type is invalid","href":"/errors/err_ngrok_7169"},{"mode":"wide","title":"ERR_NGROK_7170: The METHOD token method is invalid","href":"/errors/err_ngrok_7170"},{"mode":"wide","title":"ERR_NGROK_7171: The JWT Validation configuration is invalid: DETAIL","href":"/errors/err_ngrok_7171"},{"mode":"wide","title":"ERR_NGROK_7172: The JWT Validation configuration must have at least one issuer in the allow list","href":"/errors/err_ngrok_7172"},{"mode":"wide","title":"ERR_NGROK_7173: The JWT Validation issuer is invalid: ISSUER is not a valid URL","href":"/errors/err_ngrok_7173"},{"mode":"wide","title":"ERR_NGROK_7174: The JWT Validation configuration must have at least one audience in the allow list","href":"/errors/err_ngrok_7174"},{"mode":"wide","title":"ERR_NGROK_7175: The JWT Validation audience is invalid: MSG","href":"/errors/err_ngrok_7175"},{"mode":"wide","title":"ERR_NGROK_7176: The JWT Validation configuration must have at least one allowed algorithm","href":"/errors/err_ngrok_7176"},{"mode":"wide","title":"ERR_NGROK_7177: The TYPE algorithm is invalid","href":"/errors/err_ngrok_7177"},{"mode":"wide","title":"ERR_NGROK_7178: The JWT Validation configuration must have at least one token configuration","href":"/errors/err_ngrok_7178"},{"mode":"wide","title":"ERR_NGROK_7179: The JWT Validation http token is invalid: MSG","href":"/errors/err_ngrok_7179"},{"mode":"wide","title":"ERR_NGROK_7180: The JWT Validation http token name NAME is invalid","href":"/errors/err_ngrok_7180"},{"mode":"wide","title":"ERR_NGROK_7181: The JWT Validation http token prefix PREFIX is invalid","href":"/errors/err_ngrok_7181"},{"mode":"wide","title":"ERR_NGROK_7182: The JWT Validation signing key must have a way to be identified such as the 'kid' token claim","href":"/errors/err_ngrok_7182"},{"mode":"wide","title":"ERR_NGROK_7183: The JWT Validation signing key must have a valid identification mechanism such as the 'kid' token claim","href":"/errors/err_ngrok_7183"},{"mode":"wide","title":"ERR_NGROK_7184: The JWT Validation signing key must have at least one source","href":"/errors/err_ngrok_7184"},{"mode":"wide","title":"ERR_NGROK_7185: The JWT Validation signing key source has an invalid additional jku: JKU is not a valid URL","href":"/errors/err_ngrok_7185"},{"mode":"wide","title":"ERR_NGROK_7186: The JWT Validation signing key source has an invalid additional jku: JKU did not serve a JWKS","href":"/errors/err_ngrok_7186"},{"mode":"wide","title":"ERR_NGROK_7187: The JWT Validation issuer ISSUER must be unique","href":"/errors/err_ngrok_7187"},{"mode":"wide","title":"ERR_NGROK_7188: The JWT Validation audience AUDIENCE must be unique","href":"/errors/err_ngrok_7188"},{"mode":"wide","title":"ERR_NGROK_7189: The JWT Validation http token identified by the method: METHOD and name: NAME must be unique","href":"/errors/err_ngrok_7189"},{"mode":"wide","title":"ERR_NGROK_7190: The JWT Validation signing key algorithm ALGORITHM must be unique","href":"/errors/err_ngrok_7190"},{"mode":"wide","title":"ERR_NGROK_7191: The JWT Validation signing key identification token claim CLAIM must be unique","href":"/errors/err_ngrok_7191"},{"mode":"wide","title":"ERR_NGROK_7192: The JWT Validation signing key source additional jku JKU must be unique","href":"/errors/err_ngrok_7192"},{"mode":"wide","title":"ERR_NGROK_7193: The JWT Validation signing key sources have too many possible sources","href":"/errors/err_ngrok_7193"},{"mode":"wide","title":"ERR_NGROK_7194: Your account is not authorized to use policies","href":"/errors/err_ngrok_7194"},{"mode":"wide","title":"ERR_NGROK_7195: This edge module has exceeded its policy rule limit of LIMIT","href":"/errors/err_ngrok_7195"},{"mode":"wide","title":"ERR_NGROK_7196: Your account has read-only access to Edges","href":"/errors/err_ngrok_7196"}]},{"group":"ERR_NGROK_8000-8999","pages":[{"mode":"wide","title":"ERR_NGROK_8000: Failed to resolve host HOST: ERR","href":"/errors/err_ngrok_8000"},{"mode":"wide","title":"ERR_NGROK_8001: Failed to establish internet connectivity: ERR","href":"/errors/err_ngrok_8001"},{"mode":"wide","title":"ERR_NGROK_8002: Failed to establish TCP connection to HOST with error: ERR","href":"/errors/err_ngrok_8002"},{"mode":"wide","title":"ERR_NGROK_8003: Failed to establish TLS connection to HOST with error: ERR","href":"/errors/err_ngrok_8003"},{"mode":"wide","title":"ERR_NGROK_8004: Failed to establish tunnel protocol connection to HOST with error: ERR","href":"/errors/err_ngrok_8004"},{"mode":"wide","title":"ERR_NGROK_8005: Failed to resolve proxy IP with error: ERR","href":"/errors/err_ngrok_8005"},{"mode":"wide","title":"ERR_NGROK_8006: Failed to connect to proxy URL with error: ERR","href":"/errors/err_ngrok_8006"},{"mode":"wide","title":"ERR_NGROK_8007: No tunnel servers were reachable via TCP","href":"/errors/err_ngrok_8007"},{"mode":"wide","title":"ERR_NGROK_8008: No tunnel servers could establish a TLS connection","href":"/errors/err_ngrok_8008"},{"mode":"wide","title":"ERR_NGROK_8009: No tunnel servers could establish a tunnel connection","href":"/errors/err_ngrok_8009"},{"mode":"wide","title":"ERR_NGROK_8010: RESOLVER was the only resolver to return IP for the hostname HOSTNAME","href":"/errors/err_ngrok_8010"},{"mode":"wide","title":"ERR_NGROK_8011: IPV6 errors encountered - it may be disabled","href":"/errors/err_ngrok_8011"},{"mode":"wide","title":"ERR_NGROK_8012: Traffic successfully made it to the ngrok agent, but the agent failed to establish a connection to the upstream web service at ADDR","href":"/errors/err_ngrok_8012"},{"mode":"wide","title":"ERR_NGROK_8013: You must add a credit or debit card before you can use TCP endpoints on a free account","href":"/errors/err_ngrok_8013"},{"mode":"wide","title":"ERR_NGROK_8014: Your agent has been blocked from connecting to ngrok because it has been suspected of violating our Acceptable Use policy: https://ngrok.com/tos Your actions have been reported to our security team","href":"/errors/err_ngrok_8014"}]},{"group":"ERR_NGROK_9000-9999","pages":[{"mode":"wide","title":"ERR_NGROK_9000: An account is required to use basic authentication","href":"/errors/err_ngrok_9000"},{"mode":"wide","title":"ERR_NGROK_9001: Your account is not authorized to use compression","href":"/errors/err_ngrok_9001"},{"mode":"wide","title":"ERR_NGROK_9002: Your account is not authorized to use circuit breaker","href":"/errors/err_ngrok_9002"},{"mode":"wide","title":"ERR_NGROK_9003: Your legacy account is not authorized to use request headers","href":"/errors/err_ngrok_9003"},{"mode":"wide","title":"ERR_NGROK_9004: Your legacy account is not authorized to use response headers","href":"/errors/err_ngrok_9004"},{"mode":"wide","title":"ERR_NGROK_9005: Your legacy account is not authorized to use OIDC","href":"/errors/err_ngrok_9005"},{"mode":"wide","title":"ERR_NGROK_9006: Your legacy account is not authorized to use SAML","href":"/errors/err_ngrok_9006"},{"mode":"wide","title":"ERR_NGROK_9007: Your legacy account is not authorized to use TLS Termination","href":"/errors/err_ngrok_9007"},{"mode":"wide","title":"ERR_NGROK_9008: Your legacy account is not authorized to run the agent as a service","href":"/errors/err_ngrok_9008"},{"mode":"wide","title":"ERR_NGROK_9009: Running the agent with an http/s proxy is a Pay-as-you-go feature","href":"/errors/err_ngrok_9009"},{"mode":"wide","title":"ERR_NGROK_9010: Your legacy account is not authorized to run the agent with socks5 proxy","href":"/errors/err_ngrok_9010"},{"mode":"wide","title":"ERR_NGROK_9011: Your legacy account is not authorized to run the agent on a custom network interface","href":"/errors/err_ngrok_9011"},{"mode":"wide","title":"ERR_NGROK_9012: Your legacy account is not authorized to run the agent with custom CAs","href":"/errors/err_ngrok_9012"},{"mode":"wide","title":"ERR_NGROK_9013: Your legacy account is not authorized to run the agent with mutual TLS","href":"/errors/err_ngrok_9013"},{"mode":"wide","title":"ERR_NGROK_9014: Your legacy account is not authorized to run the agent with proxy proto","href":"/errors/err_ngrok_9014"},{"mode":"wide","title":"ERR_NGROK_9015: Your account is not authorized to use OAuth","href":"/errors/err_ngrok_9015"},{"mode":"wide","title":"ERR_NGROK_9016: Your account is not authorized to use webhook verification","href":"/errors/err_ngrok_9016"},{"mode":"wide","title":"ERR_NGROK_9017: Your legacy account is not authorized to use ip restrictions","href":"/errors/err_ngrok_9017"},{"mode":"wide","title":"ERR_NGROK_9018: An account is required to use host header rewrite","href":"/errors/err_ngrok_9018"},{"mode":"wide","title":"ERR_NGROK_9019: Your legacy account is not authorized to use mutual TLS","href":"/errors/err_ngrok_9019"},{"mode":"wide","title":"ERR_NGROK_9020: Your legacy account is not authorized to use the websocket to TCP converter","href":"/errors/err_ngrok_9020"},{"mode":"wide","title":"ERR_NGROK_9021: You may specify at most one of subdomain, hostname, or domain for a tunnel","href":"/errors/err_ngrok_9021"},{"mode":"wide","title":"ERR_NGROK_9022: Your legacy account is not authorized to use user agent filtering","href":"/errors/err_ngrok_9022"},{"mode":"wide","title":"ERR_NGROK_9023: Your account is not authorized to use the policy module","href":"/errors/err_ngrok_9023"},{"mode":"wide","title":"ERR_NGROK_9024: The account ACCOUNT is not authorized to use the requested leg number LEG","href":"/errors/err_ngrok_9024"},{"mode":"wide","title":"ERR_NGROK_9025: You cannot specify both \"Policy\" and \"TrafficPolicy\"","href":"/errors/err_ngrok_9025"},{"mode":"wide","title":"ERR_NGROK_9026: The TrafficPolicy you provided is invalid: ERROR","href":"/errors/err_ngrok_9026"},{"mode":"wide","title":"ERR_NGROK_9027: Your account is not authorized to use internal bindings","href":"/errors/err_ngrok_9027"},{"mode":"wide","title":"ERR_NGROK_9028: You must specify a domain name for a internally bound endpoint","href":"/errors/err_ngrok_9028"},{"mode":"wide","title":"ERR_NGROK_9029: Failed to start endpoint with URL","href":"/errors/err_ngrok_9029"},{"mode":"wide","title":"ERR_NGROK_9030: Failed to start endpoint with URL URL, invalid port","href":"/errors/err_ngrok_9030"},{"mode":"wide","title":"ERR_NGROK_9031: Failed to start endpoint with URL URL","href":"/errors/err_ngrok_9031"},{"mode":"wide","title":"ERR_NGROK_9032: Provided domain DOMAIN could not be parsed: ERROR","href":"/errors/err_ngrok_9032"},{"mode":"wide","title":"ERR_NGROK_9033: Provided domain DOMAIN had a non-numeric port component","href":"/errors/err_ngrok_9033"},{"mode":"wide","title":"ERR_NGROK_9034: Malformed URL: ERRMSG","href":"/errors/err_ngrok_9034"},{"mode":"wide","title":"ERR_NGROK_9035: Invalid port for URL with scheme CURRENTSCHEME, allowed ports are WANTPORT","href":"/errors/err_ngrok_9035"},{"mode":"wide","title":"ERR_NGROK_9036: Invalid scheme UNSUPPORTEDSCHEME, allowed schemes: ALLOWEDSCHEMES","href":"/errors/err_ngrok_9036"},{"mode":"wide","title":"ERR_NGROK_9037: Invalid URL URL, PARTNAME PART is not allowed","href":"/errors/err_ngrok_9037"},{"mode":"wide","title":"ERR_NGROK_9038: Invalid URL, trailing '/' is not allowed","href":"/errors/err_ngrok_9038"},{"mode":"wide","title":"ERR_NGROK_9039: You must specify a domain name for a kubernetes operator bound endpoint","href":"/errors/err_ngrok_9039"},{"mode":"wide","title":"ERR_NGROK_9040: We do not allow agents to connect to ngrok from your IP address (IP)","href":"/errors/err_ngrok_9040"},{"mode":"wide","title":"ERR_NGROK_9041: Supported protocols for kubernetes-bound endpoints are http, tls, and tcp","href":"/errors/err_ngrok_9041"},{"mode":"wide","title":"ERR_NGROK_9042: TLS endpoints cannot be created on this version of the ngrok agent due to a vulnerability","href":"/errors/err_ngrok_9042"},{"mode":"wide","title":"ERR_NGROK_9043: HTTP endpoints are restricted for HIPAA-compliant accounts","href":"/errors/err_ngrok_9043"}]},{"group":"ERR_NGROK_10000 and above","pages":[{"mode":"wide","title":"ERR_NGROK_10077: This account does not support JIT provisioning for SSO users","href":"/errors/err_ngrok_10077"},{"mode":"wide","title":"ERR_NGROK_10078: This account requires users to be authenticated with a valid SSO provider","href":"/errors/err_ngrok_10078"},{"mode":"wide","title":"ERR_NGROK_10080: The invitation INVITE_ID was not found","href":"/errors/err_ngrok_10080"},{"mode":"wide","title":"ERR_NGROK_10081: You must specify only the correct ID for the requested team member entry","href":"/errors/err_ngrok_10081"},{"mode":"wide","title":"ERR_NGROK_10082: You must specify a user, bot, or membership ID when attempting to update a credentials owner","href":"/errors/err_ngrok_10082"},{"mode":"wide","title":"ERR_NGROK_10083: You already have a valid MFA configuration of this type enabled","href":"/errors/err_ngrok_10083"},{"mode":"wide","title":"ERR_NGROK_10084: You cannot delete the SSO Identity Provider you used to logged when SSO Enforcement is enabled on your account","href":"/errors/err_ngrok_10084"},{"mode":"wide","title":"ERR_NGROK_10085: The endpoint of the request you are trying to replay was not found","href":"/errors/err_ngrok_10085"},{"mode":"wide","title":"ERR_NGROK_10086: You have exceeded the rate limit of MAX replay requests per INTERVAL","href":"/errors/err_ngrok_10086"},{"mode":"wide","title":"ERR_NGROK_10087: Request header \"HEADER_NAME\" value too large","href":"/errors/err_ngrok_10087"},{"mode":"wide","title":"ERR_NGROK_10088: Request body size too large","href":"/errors/err_ngrok_10088"},{"mode":"wide","title":"ERR_NGROK_10089: Failed to replay the request","href":"/errors/err_ngrok_10089"},{"mode":"wide","title":"ERR_NGROK_10090: The request you are trying to view was not found","href":"/errors/err_ngrok_10090"},{"mode":"wide","title":"ERR_NGROK_10091: The usage page has timed out","href":"/errors/err_ngrok_10091"},{"mode":"wide","title":"ERR_NGROK_10092: The replay request's X-Account-Id header is missing or does not match the authenticated account","href":"/errors/err_ngrok_10092"},{"mode":"wide","title":"ERR_NGROK_10093","href":"/errors/err_ngrok_10093"},{"mode":"wide","title":"ERR_NGROK_10094","href":"/errors/err_ngrok_10094"},{"mode":"wide","title":"ERR_NGROK_10095: The client IP filter value VALUE is not an IP address that can match a request","href":"/errors/err_ngrok_10095"},{"mode":"wide","title":"ERR_NGROK_10096: The FIELD filter is too large","href":"/errors/err_ngrok_10096"},{"mode":"wide","title":"ERR_NGROK_10097: The path filter value cannot match a request path: REASON","href":"/errors/err_ngrok_10097"},{"mode":"wide","title":"ERR_NGROK_10098: The sign-in state is invalid or expired","href":"/errors/err_ngrok_10098"},{"mode":"wide","title":"ERR_NGROK_10099: SSO is not authorized for this email domain","href":"/errors/err_ngrok_10099"},{"mode":"wide","title":"ERR_NGROK_10100: Just-in-Time provisioning now requires Domain Control","href":"/errors/err_ngrok_10100"},{"mode":"wide","title":"ERR_NGROK_10101: Signup domains need the Identity \u0026 Access Governance Suite add-on","href":"/errors/err_ngrok_10101"},{"mode":"wide","title":"ERR_NGROK_10102: Signup domains send new users to your SSO identity provider","href":"/errors/err_ngrok_10102"},{"mode":"wide","title":"ERR_NGROK_10103: Enter a valid domain name, like example.com, then request your domain again","href":"/errors/err_ngrok_10103"},{"mode":"wide","title":"ERR_NGROK_10104: Signup domains aren't available on this account","href":"/errors/err_ngrok_10104"},{"mode":"wide","title":"ERR_NGROK_10105: Your signup domain request is COUNT characters, and the limit is LIMIT","href":"/errors/err_ngrok_10105"},{"mode":"wide","title":"ERR_NGROK_10106: Signup domain requests aren't available right now","href":"/errors/err_ngrok_10106"},{"mode":"wide","title":"ERR_NGROK_10107: Something went wrong and we didn't record your signup domain request","href":"/errors/err_ngrok_10107"},{"mode":"wide","title":"ERR_NGROK_14000: The ID header cannot be removed without specifying a replacement","href":"/errors/err_ngrok_14000"},{"mode":"wide","title":"ERR_NGROK_14001: Got an invalid TLS key/cert pair for TLS termination: ERR","href":"/errors/err_ngrok_14001"},{"mode":"wide","title":"ERR_NGROK_14002: The PEM data provided for mutual TLS could not be parsed as a certificate: ERROR","href":"/errors/err_ngrok_14002"},{"mode":"wide","title":"ERR_NGROK_15000: You are not allowed to create endpoints with subdomains on BASE","href":"/errors/err_ngrok_15000"},{"mode":"wide","title":"ERR_NGROK_15001: The Webhook Verification secret exceeds the maximum length of MAX, got SIZE","href":"/errors/err_ngrok_15001"},{"mode":"wide","title":"ERR_NGROK_15002: Your account is on the PLAN plan, which requires you to register a Domain or TCP Address through the ngrok Dashboard before starting an Endpoint","href":"/errors/err_ngrok_15002"},{"mode":"wide","title":"ERR_NGROK_15003: Upstream protocol is invalid: APPPROTOCOL","href":"/errors/err_ngrok_15003"},{"mode":"wide","title":"ERR_NGROK_15004: This agent has exceeded its policy rule limit of LIMIT","href":"/errors/err_ngrok_15004"},{"mode":"wide","title":"ERR_NGROK_15005: The binding BINDING is invalid","href":"/errors/err_ngrok_15005"},{"mode":"wide","title":"ERR_NGROK_15006: The binding BINDING was specified multiple times, but duplicate bindings are not allowed","href":"/errors/err_ngrok_15006"},{"mode":"wide","title":"ERR_NGROK_15007: The Webhook Verification secret was not specified","href":"/errors/err_ngrok_15007"},{"mode":"wide","title":"ERR_NGROK_15008: Invalid basic auth credential","href":"/errors/err_ngrok_15008"},{"mode":"wide","title":"ERR_NGROK_15009: Invalid basic auth credentials list","href":"/errors/err_ngrok_15009"},{"mode":"wide","title":"ERR_NGROK_15010: The binding BINDING refers to a k8s operator that does not exist","href":"/errors/err_ngrok_15010"},{"mode":"wide","title":"ERR_NGROK_15011: Invalid basic auth credential","href":"/errors/err_ngrok_15011"},{"mode":"wide","title":"ERR_NGROK_15012: Invalid basic auth credential","href":"/errors/err_ngrok_15012"},{"mode":"wide","title":"ERR_NGROK_15013: Your account is requesting a dev domain that does not exist","href":"/errors/err_ngrok_15013"},{"mode":"wide","title":"ERR_NGROK_15014: The credential ID does not have the SCOPE scope required to start a tunnel session","href":"/errors/err_ngrok_15014"},{"mode":"wide","title":"ERR_NGROK_15015: The credential ACL policy doesn't permit a Traffic Policy on agent endpoints","href":"/errors/err_ngrok_15015"},{"mode":"wide","title":"ERR_NGROK_16000: The email of the user you are trying to add, EMAIL, does not use a domain verified for your account","href":"/errors/err_ngrok_16000"},{"mode":"wide","title":"ERR_NGROK_17000: The MFA device type \"TYPE\" is invalid","href":"/errors/err_ngrok_17000"},{"mode":"wide","title":"ERR_NGROK_17001: The information supplied for MFA verification was invalid","href":"/errors/err_ngrok_17001"},{"mode":"wide","title":"ERR_NGROK_17002: You do not have any recovery codes configured","href":"/errors/err_ngrok_17002"},{"mode":"wide","title":"ERR_NGROK_17003: The information supplied for recovery code verification was invalid","href":"/errors/err_ngrok_17003"},{"mode":"wide","title":"ERR_NGROK_17004: A matching MFA device was not found","href":"/errors/err_ngrok_17004"},{"mode":"wide","title":"ERR_NGROK_17005: MFA Device verification is not supported","href":"/errors/err_ngrok_17005"},{"mode":"wide","title":"ERR_NGROK_17006: A reason is required to reset MFA for a user","href":"/errors/err_ngrok_17006"},{"mode":"wide","title":"ERR_NGROK_18001: The provided cloud endpoint configuration is invalid: url is invalid","href":"/errors/err_ngrok_18001"},{"mode":"wide","title":"ERR_NGROK_18002: The provided cloud endpoint traffic policy configuration is invalid: MESSAGE","href":"/errors/err_ngrok_18002"},{"mode":"wide","title":"ERR_NGROK_18003: The provided cloud endpoint configuration is invalid: port is invalid or missing and cannot be inferred from scheme","href":"/errors/err_ngrok_18003"},{"mode":"wide","title":"ERR_NGROK_18004: The cloud endpoint update failed because no values were provided","href":"/errors/err_ngrok_18004"},{"mode":"wide","title":"ERR_NGROK_18005: The cloud endpoint update failed because you are not allowed to change the protocol/URL scheme in-place","href":"/errors/err_ngrok_18005"},{"mode":"wide","title":"ERR_NGROK_18006: This account does not have any domains or addresses reserved that match the provided URL","href":"/errors/err_ngrok_18006"},{"mode":"wide","title":"ERR_NGROK_18008: This account does not have access to Cloud Endpoints","href":"/errors/err_ngrok_18008"},{"mode":"wide","title":"ERR_NGROK_18009: This account already has a cloud endpoint on this URL","href":"/errors/err_ngrok_18009"},{"mode":"wide","title":"ERR_NGROK_18010: You have exceeded the maximum number of cloud endpoints allowed for this account","href":"/errors/err_ngrok_18010"},{"mode":"wide","title":"ERR_NGROK_18012: The description field cannot be longer than 255 characters","href":"/errors/err_ngrok_18012"},{"mode":"wide","title":"ERR_NGROK_18013: The metadata field cannot be longer than 4096 characters","href":"/errors/err_ngrok_18013"},{"mode":"wide","title":"ERR_NGROK_18014: The provided cloud endpoint has invalid value for field FIELD","href":"/errors/err_ngrok_18014"},{"mode":"wide","title":"ERR_NGROK_18015: The provided cloud endpoint is missing the required field FIELD","href":"/errors/err_ngrok_18015"},{"mode":"wide","title":"ERR_NGROK_18016: The provided cloud endpoint was invalid because pooling was set to enabled when another endpoint exists for this url that has pooling disabled","href":"/errors/err_ngrok_18016"},{"mode":"wide","title":"ERR_NGROK_18017: The provided cloud endpoint was invalid because pooling was set to disabled when another endpoint exists for this url","href":"/errors/err_ngrok_18017"},{"mode":"wide","title":"ERR_NGROK_18018: Supported protocols for kubernetes-bound endpoints are http, tls, and tcp","href":"/errors/err_ngrok_18018"},{"mode":"wide","title":"ERR_NGROK_18019: This account does not have access to Endpoint pooling","href":"/errors/err_ngrok_18019"},{"mode":"wide","title":"ERR_NGROK_18020: The maximum number of endpoints allowed in this pool has been exceeded","href":"/errors/err_ngrok_18020"},{"mode":"wide","title":"ERR_NGROK_18021: You have exceeded the maximum number of concurrent endpoints allowed for this account","href":"/errors/err_ngrok_18021"},{"mode":"wide","title":"ERR_NGROK_18022: The provided cloud endpoint configuration is invalid: scheme is invalid or not present","href":"/errors/err_ngrok_18022"},{"mode":"wide","title":"ERR_NGROK_18023: Invalid port for URL with scheme CURRENTSCHEME, allowed ports are WANTPORT","href":"/errors/err_ngrok_18023"},{"mode":"wide","title":"ERR_NGROK_18024: AI Gateway has moved to https://app.ngrok.ai","href":"/errors/err_ngrok_18024"},{"mode":"wide","title":"ERR_NGROK_18025: ID is not a valid endpoint ID","href":"/errors/err_ngrok_18025"},{"mode":"wide","title":"ERR_NGROK_19000: Internal Server Error","href":"/errors/err_ngrok_19000"},{"mode":"wide","title":"ERR_NGROK_19001: Certificate Signing Requests Failed! Reason: ERROR","href":"/errors/err_ngrok_19001"},{"mode":"wide","title":"ERR_NGROK_19002: Failed to validate Kubernetes Operator! Reason: ERROR","href":"/errors/err_ngrok_19002"},{"mode":"wide","title":"ERR_NGROK_19003: Failed to validate endpoint selectors! Reason: ERROR","href":"/errors/err_ngrok_19003"},{"mode":"wide","title":"ERR_NGROK_20000: An internal error occurred","href":"/errors/err_ngrok_20000"},{"mode":"wide","title":"ERR_NGROK_20001: Operation failed due to a configuration error: REASON","href":"/errors/err_ngrok_20001"},{"mode":"wide","title":"ERR_NGROK_20002: Failed to create the Upstream Service for BoundEndpoint","href":"/errors/err_ngrok_20002"},{"mode":"wide","title":"ERR_NGROK_20003: Failed to create the Target Service for BoundEndpoint","href":"/errors/err_ngrok_20003"},{"mode":"wide","title":"ERR_NGROK_20004: Failed to establish a connection between the Upstream and Target Services","href":"/errors/err_ngrok_20004"},{"mode":"wide","title":"ERR_NGROK_20005: BoundEndpoint is Denied due to no matching pattern in AllowedURLs","href":"/errors/err_ngrok_20005"},{"mode":"wide","title":"ERR_NGROK_20006: Failed to create CSR","href":"/errors/err_ngrok_20006"},{"mode":"wide","title":"ERR_NGROK_21000: Failed to lookup IP IP: ERR","href":"/errors/err_ngrok_21000"},{"mode":"wide","title":"ERR_NGROK_23000: The vault name \"VAULT\" is invalid","href":"/errors/err_ngrok_23000"},{"mode":"wide","title":"ERR_NGROK_23001: The vault name cannot be empty","href":"/errors/err_ngrok_23001"},{"mode":"wide","title":"ERR_NGROK_23002: Your vault name must be less than LENGTH characters","href":"/errors/err_ngrok_23002"},{"mode":"wide","title":"ERR_NGROK_23003: A Vault must be empty before it can be deleted","href":"/errors/err_ngrok_23003"},{"mode":"wide","title":"ERR_NGROK_23004: Vault names must be unique within an account","href":"/errors/err_ngrok_23004"},{"mode":"wide","title":"ERR_NGROK_23005: You've reached the maximum number of vaults (MAX) under your current plan","href":"/errors/err_ngrok_23005"},{"mode":"wide","title":"ERR_NGROK_24000: The secret name \"SECRET\" is invalid","href":"/errors/err_ngrok_24000"},{"mode":"wide","title":"ERR_NGROK_24001: The secret name cannot be empty","href":"/errors/err_ngrok_24001"},{"mode":"wide","title":"ERR_NGROK_24002: Your secret name must be less than LENGTH characters","href":"/errors/err_ngrok_24002"},{"mode":"wide","title":"ERR_NGROK_24003: The secret value cannot be empty","href":"/errors/err_ngrok_24003"},{"mode":"wide","title":"ERR_NGROK_24004: Your secret value must be less than LENGTH bytes","href":"/errors/err_ngrok_24004"},{"mode":"wide","title":"ERR_NGROK_24005: Secret names must be unique within a vault","href":"/errors/err_ngrok_24005"},{"mode":"wide","title":"ERR_NGROK_24006: Vault with ID ID not found","href":"/errors/err_ngrok_24006"},{"mode":"wide","title":"ERR_NGROK_24007: You've reached the maximum number of secrets (MAX) allowed for vault VID under your current plan","href":"/errors/err_ngrok_24007"},{"mode":"wide","title":"ERR_NGROK_24008: Required parameter 'VaultID' is missing","href":"/errors/err_ngrok_24008"},{"mode":"wide","title":"ERR_NGROK_24009: Vault not found with name: NAME","href":"/errors/err_ngrok_24009"},{"mode":"wide","title":"ERR_NGROK_25000: Domain controls with redirect_blocked_signups_to_sso enabled cannot have an empty or null sso account IDs list","href":"/errors/err_ngrok_25000"},{"mode":"wide","title":"ERR_NGROK_26000: CAA records for domain DOMAIN found at FOUNDAT do not authorize Let's Encrypt to issue certificates: REASON","href":"/errors/err_ngrok_26000"},{"mode":"wide","title":"ERR_NGROK_26001: CAA records for domain DOMAIN found at FOUNDAT contain an accounturi parameter restriction (ACCOUNTURI)","href":"/errors/err_ngrok_26001"},{"mode":"wide","title":"ERR_NGROK_26002: CAA records for domain DOMAIN found at FOUNDAT contain unknown critical property tags TAGS which cannot be processed","href":"/errors/err_ngrok_26002"},{"mode":"wide","title":"ERR_NGROK_26004: CAA records for domain DOMAIN found at FOUNDAT restrict validation methods to ALLOWEDMETHOD, but REQUIREDMETHOD is required for this domain type","href":"/errors/err_ngrok_26004"},{"mode":"wide","title":"ERR_NGROK_26005: CAA records for domain DOMAIN found at FOUNDAT contain malformed data: ERROR","href":"/errors/err_ngrok_26005"},{"mode":"wide","title":"ERR_NGROK_26006: Certificate provisioning failed unexpectedly: ERR","href":"/errors/err_ngrok_26006"},{"mode":"wide","title":"ERR_NGROK_26007: Load CSR failed unexpectedly: ERR","href":"/errors/err_ngrok_26007"},{"mode":"wide","title":"ERR_NGROK_26008: Preflight check failed unexpectedly: ERR","href":"/errors/err_ngrok_26008"},{"mode":"wide","title":"ERR_NGROK_26009: Certificate obtain failed unexpectedly: ERR","href":"/errors/err_ngrok_26009"},{"mode":"wide","title":"ERR_NGROK_26010: Certificate conversion failed unexpectedly: ERR","href":"/errors/err_ngrok_26010"},{"mode":"wide","title":"ERR_NGROK_26011: Certificate finalization failed unexpectedly: ERR","href":"/errors/err_ngrok_26011"},{"mode":"wide","title":"ERR_NGROK_26012: Preflight check failed: CHECK","href":"/errors/err_ngrok_26012"},{"mode":"wide","title":"ERR_NGROK_26013: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26013"},{"mode":"wide","title":"ERR_NGROK_26014: CAA check failed: CAA blocked","href":"/errors/err_ngrok_26014"},{"mode":"wide","title":"ERR_NGROK_26015: DCV check failed: CNAME not found","href":"/errors/err_ngrok_26015"},{"mode":"wide","title":"ERR_NGROK_26016: DCV check failed: CNAME mismatch","href":"/errors/err_ngrok_26016"},{"mode":"wide","title":"ERR_NGROK_26017: DCV check failed: NS not found","href":"/errors/err_ngrok_26017"},{"mode":"wide","title":"ERR_NGROK_26018: DCV check failed: NS mismatch","href":"/errors/err_ngrok_26018"},{"mode":"wide","title":"ERR_NGROK_26019: DNS-01 check failed: DNS-01 challenge CNAME not found","href":"/errors/err_ngrok_26019"},{"mode":"wide","title":"ERR_NGROK_26020: DNS-01 check failed: DNS-01 challenge CNAME mismatch","href":"/errors/err_ngrok_26020"},{"mode":"wide","title":"ERR_NGROK_26021: HTTP-01 check failed: HTTP-01 unreachable","href":"/errors/err_ngrok_26021"},{"mode":"wide","title":"ERR_NGROK_26022: HTTP-01 check failed: HTTP-01 token mismatch","href":"/errors/err_ngrok_26022"},{"mode":"wide","title":"ERR_NGROK_26023: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26023"},{"mode":"wide","title":"ERR_NGROK_26024: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26024"},{"mode":"wide","title":"ERR_NGROK_26025: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26025"},{"mode":"wide","title":"ERR_NGROK_26026: CAA check failed: CAA malformed","href":"/errors/err_ngrok_26026"},{"mode":"wide","title":"ERR_NGROK_26027: CAA check failed: CAA DNS lookup failed","href":"/errors/err_ngrok_26027"},{"mode":"wide","title":"ERR_NGROK_26028: CAA check failed: CAA unknown critical flag","href":"/errors/err_ngrok_26028"},{"mode":"wide","title":"ERR_NGROK_26029: CAA check failed: CAA TLD not found","href":"/errors/err_ngrok_26029"},{"mode":"wide","title":"ERR_NGROK_26030: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26030"},{"mode":"wide","title":"ERR_NGROK_26031: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26031"},{"mode":"wide","title":"ERR_NGROK_26032: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26032"},{"mode":"wide","title":"ERR_NGROK_26033: Certificate provisioning failed: account is suspended","href":"/errors/err_ngrok_26033"},{"mode":"wide","title":"ERR_NGROK_26034: Check if account is suspended failed unexpectedly: ERR","href":"/errors/err_ngrok_26034"},{"mode":"wide","title":"ERR_NGROK_26035: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26035"},{"mode":"wide","title":"ERR_NGROK_26036: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26036"},{"mode":"wide","title":"ERR_NGROK_26037: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26037"},{"mode":"wide","title":"ERR_NGROK_26038: Certificate obtain failed: ERR","href":"/errors/err_ngrok_26038"},{"mode":"wide","title":"ERR_NGROK_26039: DCV check failed: no address records at domain apex","href":"/errors/err_ngrok_26039"},{"mode":"wide","title":"ERR_NGROK_26040: DCV check failed: domain apex does not resolve to ngrok","href":"/errors/err_ngrok_26040"},{"mode":"wide","title":"ERR_NGROK_26041: DCV check failed: authoritative nameserver unreachable","href":"/errors/err_ngrok_26041"},{"mode":"wide","title":"ERR_NGROK_27001: This account does not have access to AI Gateway API Keys","href":"/errors/err_ngrok_27001"},{"mode":"wide","title":"ERR_NGROK_27002: The specified endpoint, ENDPOINT_ID, was not found","href":"/errors/err_ngrok_27002"},{"mode":"wide","title":"ERR_NGROK_27003: The specified endpoint, ENDPOINT_ID, does not have AI Gateway action enabled","href":"/errors/err_ngrok_27003"},{"mode":"wide","title":"ERR_NGROK_27004: The description field cannot be longer than 255 characters","href":"/errors/err_ngrok_27004"},{"mode":"wide","title":"ERR_NGROK_27005: The metadata field cannot be longer than 4096 characters","href":"/errors/err_ngrok_27005"},{"mode":"wide","title":"ERR_NGROK_27006: The MISSING field is required","href":"/errors/err_ngrok_27006"},{"mode":"wide","title":"ERR_NGROK_27007: The provided API key is invalid or does not exist","href":"/errors/err_ngrok_27007"},{"mode":"wide","title":"ERR_NGROK_27008: This API key is scoped to a different gateway","href":"/errors/err_ngrok_27008"},{"mode":"wide","title":"ERR_NGROK_27009: Failed to validate API key","href":"/errors/err_ngrok_27009"},{"mode":"wide","title":"ERR_NGROK_27201: Authentication failed: REASON","href":"/errors/err_ngrok_27201"},{"mode":"wide","title":"ERR_NGROK_27202: No keys available for provider \"PROVIDERID\"","href":"/errors/err_ngrok_27202"},{"mode":"wide","title":"ERR_NGROK_27203: Cannot use ngrok-managed key for unknown model \"MODELID\": pricing required for billing","href":"/errors/err_ngrok_27203"},{"mode":"wide","title":"ERR_NGROK_27204: Unsupported API surface \"PATH\"","href":"/errors/err_ngrok_27204"},{"mode":"wide","title":"ERR_NGROK_27205: API surface \"SURFACE\" is not implemented","href":"/errors/err_ngrok_27205"},{"mode":"wide","title":"ERR_NGROK_27206: Credit check failed: REASON","href":"/errors/err_ngrok_27206"},{"mode":"wide","title":"ERR_NGROK_27207: Upstream request timed out","href":"/errors/err_ngrok_27207"},{"mode":"wide","title":"ERR_NGROK_27208: All retries exhausted, last error: LASTERROR","href":"/errors/err_ngrok_27208"},{"mode":"wide","title":"ERR_NGROK_27210: Upstream provider rejected the request: REASON","href":"/errors/err_ngrok_27210"},{"mode":"wide","title":"ERR_NGROK_27211: Upstream provider rejected the API key","href":"/errors/err_ngrok_27211"},{"mode":"wide","title":"ERR_NGROK_27212: Upstream provider denied access","href":"/errors/err_ngrok_27212"},{"mode":"wide","title":"ERR_NGROK_27213: Upstream provider returned not found","href":"/errors/err_ngrok_27213"},{"mode":"wide","title":"ERR_NGROK_27214: Upstream provider request timed out","href":"/errors/err_ngrok_27214"},{"mode":"wide","title":"ERR_NGROK_27215: Request payload exceeded upstream provider limits","href":"/errors/err_ngrok_27215"},{"mode":"wide","title":"ERR_NGROK_27216: Upstream provider could not process the request: REASON","href":"/errors/err_ngrok_27216"},{"mode":"wide","title":"ERR_NGROK_27217: Upstream provider rate limit exceeded","href":"/errors/err_ngrok_27217"},{"mode":"wide","title":"ERR_NGROK_27218: Upstream provider returned an internal server error","href":"/errors/err_ngrok_27218"},{"mode":"wide","title":"ERR_NGROK_27219: Upstream provider returned a bad gateway error","href":"/errors/err_ngrok_27219"},{"mode":"wide","title":"ERR_NGROK_27220: Upstream provider is unavailable","href":"/errors/err_ngrok_27220"},{"mode":"wide","title":"ERR_NGROK_27221: Upstream provider gateway timed out","href":"/errors/err_ngrok_27221"},{"mode":"wide","title":"ERR_NGROK_27222: Upstream provider returned an unexpected status: REASON","href":"/errors/err_ngrok_27222"},{"mode":"wide","title":"ERR_NGROK_27223: Network error contacting upstream provider: REASON","href":"/errors/err_ngrok_27223"},{"mode":"wide","title":"ERR_NGROK_27224: Unknown model \"MODELID\".SUGGESTION","href":"/errors/err_ngrok_27224"},{"mode":"wide","title":"ERR_NGROK_27225: Unknown provider \"PROVIDERID\"","href":"/errors/err_ngrok_27225"},{"mode":"wide","title":"ERR_NGROK_27226: Provider \"PROVIDERID\" does not support API surface \"SURFACE\"","href":"/errors/err_ngrok_27226"},{"mode":"wide","title":"ERR_NGROK_27227: No backend available: REASON","href":"/errors/err_ngrok_27227"},{"mode":"wide","title":"ERR_NGROK_27228: Invalid request: REASON","href":"/errors/err_ngrok_27228"},{"mode":"wide","title":"ERR_NGROK_27229: Invalid model address \"ADDRESS\"","href":"/errors/err_ngrok_27229"},{"mode":"wide","title":"ERR_NGROK_27230: \"MODEL\" is not a known model, and \"PROVIDER\" is not a recognized provider","href":"/errors/err_ngrok_27230"},{"mode":"wide","title":"ERR_NGROK_27231: Provider \"PROVIDERID\" is not allowed by the access policy","href":"/errors/err_ngrok_27231"},{"mode":"wide","title":"ERR_NGROK_27232: Model \"MODELID\" is not allowed by the access policy","href":"/errors/err_ngrok_27232"},{"mode":"wide","title":"ERR_NGROK_27233: ngrok has no catalog entry for \"MODELID\" on provider \"PROVIDERID\", so an ngrok-managed key can't serve it","href":"/errors/err_ngrok_27233"},{"mode":"wide","title":"ERR_NGROK_27234: Upstream provider returned a non-streaming response (content-type CONTENTTYPE) despite a streaming request","href":"/errors/err_ngrok_27234"},{"mode":"wide","title":"ERR_NGROK_27235: Upstream provider failed to respond","href":"/errors/err_ngrok_27235"},{"mode":"wide","title":"ERR_NGROK_27236: Model \"MODELID\" is not priced for managed billing yet for provider \"PROVIDERID\"; add your own provider key to use it","href":"/errors/err_ngrok_27236"},{"mode":"wide","title":"ERR_NGROK_27237: Request rejected: a routing loop was detected","href":"/errors/err_ngrok_27237"},{"mode":"wide","title":"ERR_NGROK_27238: An ngrok-managed key can't serve this request, because ngrok can't bill FEATURE for \"MODELID\" on provider \"PROVIDERID\"","href":"/errors/err_ngrok_27238"},{"mode":"wide","title":"ERR_NGROK_27239: ngrok can't serve \"MODELID\" on provider \"PROVIDERID\" with an ngrok-managed key right now","href":"/errors/err_ngrok_27239"},{"mode":"wide","title":"ERR_NGROK_27240: Your account has no FILES for provider \"PROVIDERID\"","href":"/errors/err_ngrok_27240"},{"mode":"wide","title":"ERR_NGROK_27241: The HEADER header is required on Files API requests","href":"/errors/err_ngrok_27241"},{"mode":"wide","title":"ERR_NGROK_27242: Provider \"PROVIDERID\" does not support the Files API","href":"/errors/err_ngrok_27242"},{"mode":"wide","title":"ERR_NGROK_27243: The Files API \"PARAMETER\" parameter must be a whole number from 1 to MAXIMUM","href":"/errors/err_ngrok_27243"},{"mode":"wide","title":"ERR_NGROK_27244: Your account has no file \"FILEID\" for provider \"PROVIDERID\"","href":"/errors/err_ngrok_27244"},{"mode":"wide","title":"ERR_NGROK_27245: The Files API cannot apply \"PARAMETER\" to a listing served by an ngrok-managed key for provider \"PROVIDERID\"","href":"/errors/err_ngrok_27245"},{"mode":"wide","title":"ERR_NGROK_27246: Your account already holds USEDBYTES of the LIMITBYTES an ngrok-managed key allows for provider \"PROVIDERID\"","href":"/errors/err_ngrok_27246"},{"mode":"wide","title":"ERR_NGROK_27247: A Files API upload for provider \"PROVIDERID\" must be a multipart/form-data request","href":"/errors/err_ngrok_27247"},{"mode":"wide","title":"ERR_NGROK_27248: A Files API upload can be at most LIMIT","href":"/errors/err_ngrok_27248"},{"mode":"wide","title":"ERR_NGROK_27249: ngrok doesn't offer \"MODELID\" on provider \"PROVIDERID\" with an ngrok-managed key","href":"/errors/err_ngrok_27249"},{"mode":"wide","title":"ERR_NGROK_27250: ngrok doesn't store interactions yet, so \"store\" can't be true","href":"/errors/err_ngrok_27250"},{"mode":"wide","title":"ERR_NGROK_27501: The name field cannot be longer than 255 characters","href":"/errors/err_ngrok_27501"},{"mode":"wide","title":"ERR_NGROK_27502: The description field cannot be longer than 255 characters","href":"/errors/err_ngrok_27502"},{"mode":"wide","title":"ERR_NGROK_27503: The metadata field cannot be longer than 4096 characters","href":"/errors/err_ngrok_27503"},{"mode":"wide","title":"ERR_NGROK_27504: This account does not have access to AI Gateway Provider Keys","href":"/errors/err_ngrok_27504"},{"mode":"wide","title":"ERR_NGROK_27505: AI Gateway provider key encryption is not configured for this deployment","href":"/errors/err_ngrok_27505"},{"mode":"wide","title":"ERR_NGROK_27506: Cannot create more than MAXKEYS provider keys for provider \"PROVIDERID\" on a single managed key","href":"/errors/err_ngrok_27506"},{"mode":"wide","title":"ERR_NGROK_27507: The value field is required and cannot be empty","href":"/errors/err_ngrok_27507"},{"mode":"wide","title":"ERR_NGROK_27508: The provider_id \"PROVIDERID\" is not a supported AI provider","href":"/errors/err_ngrok_27508"},{"mode":"wide","title":"ERR_NGROK_27509: The specified AI Gateway API Key, AIGKID, was not found","href":"/errors/err_ngrok_27509"},{"mode":"wide","title":"ERR_NGROK_27510: The MISSING field is required","href":"/errors/err_ngrok_27510"},{"mode":"wide","title":"ERR_NGROK_27511: This provider key cannot be deleted because it is referenced by a router rule","href":"/errors/err_ngrok_27511"},{"mode":"wide","title":"ERR_NGROK_27601: AI Gateway is currently in pre-release and not yet available to your account","href":"/errors/err_ngrok_27601"},{"mode":"wide","title":"ERR_NGROK_27602: The MISSING field is required","href":"/errors/err_ngrok_27602"},{"mode":"wide","title":"ERR_NGROK_27603: The name field cannot be longer than 255 characters","href":"/errors/err_ngrok_27603"},{"mode":"wide","title":"ERR_NGROK_27604: The metadata field cannot be longer than 4096 characters","href":"/errors/err_ngrok_27604"},{"mode":"wide","title":"ERR_NGROK_27605: Invalid router configuration: REASON","href":"/errors/err_ngrok_27605"},{"mode":"wide","title":"ERR_NGROK_27606","href":"/errors/err_ngrok_27606"},{"mode":"wide","title":"ERR_NGROK_27607: Resource already exists","href":"/errors/err_ngrok_27607"},{"mode":"wide","title":"ERR_NGROK_27609: Request canceled","href":"/errors/err_ngrok_27609"},{"mode":"wide","title":"ERR_NGROK_27610: Request deadline exceeded","href":"/errors/err_ngrok_27610"},{"mode":"wide","title":"ERR_NGROK_27611: RESOURCE not found","href":"/errors/err_ngrok_27611"},{"mode":"wide","title":"ERR_NGROK_27612: Operation not implemented: OPERATION","href":"/errors/err_ngrok_27612"},{"mode":"wide","title":"ERR_NGROK_27613: Upstream service error","href":"/errors/err_ngrok_27613"},{"mode":"wide","title":"ERR_NGROK_27614: Method not allowed","href":"/errors/err_ngrok_27614"},{"mode":"wide","title":"ERR_NGROK_27615: The resource is still in use and cannot be deleted","href":"/errors/err_ngrok_27615"},{"mode":"wide","title":"ERR_NGROK_27616: A credit purchase is already in progress","href":"/errors/err_ngrok_27616"},{"mode":"wide","title":"ERR_NGROK_27617: The idempotency key was already used for a different request","href":"/errors/err_ngrok_27617"},{"mode":"wide","title":"ERR_NGROK_27701: The name field cannot be longer than 255 characters","href":"/errors/err_ngrok_27701"},{"mode":"wide","title":"ERR_NGROK_27702: The metadata field cannot be longer than 4096 characters","href":"/errors/err_ngrok_27702"},{"mode":"wide","title":"ERR_NGROK_27703: The base_url field cannot be longer than 2048 characters","href":"/errors/err_ngrok_27703"},{"mode":"wide","title":"ERR_NGROK_27704: The MISSING field is required","href":"/errors/err_ngrok_27704"},{"mode":"wide","title":"ERR_NGROK_27705: The provider_id \"PROVIDERID\" is reserved by a built-in ngrok provider and cannot be used for a user-defined provider","href":"/errors/err_ngrok_27705"},{"mode":"wide","title":"ERR_NGROK_27706: The provider_id field cannot be longer than 255 characters","href":"/errors/err_ngrok_27706"},{"mode":"wide","title":"ERR_NGROK_27707: The API surface format \"FORMAT\" is not a supported ngrok format","href":"/errors/err_ngrok_27707"},{"mode":"wide","title":"ERR_NGROK_27708: The API surface \"SURFACE\" is not a supported ngrok surface","href":"/errors/err_ngrok_27708"},{"mode":"wide","title":"ERR_NGROK_27709: The model_id field cannot be longer than 255 characters","href":"/errors/err_ngrok_27709"},{"mode":"wide","title":"ERR_NGROK_27710: This provider cannot be deleted because it is referenced by a provider key or an access key configuration","href":"/errors/err_ngrok_27710"},{"mode":"wide","title":"ERR_NGROK_27711: The model_id \"MODELID\" is listed more than once for this provider","href":"/errors/err_ngrok_27711"},{"mode":"wide","title":"ERR_NGROK_27712: A provider with provider_id \"PROVIDERID\" already exists for this account","href":"/errors/err_ngrok_27712"},{"mode":"wide","title":"ERR_NGROK_27713: The provider_model_id field cannot be longer than 255 characters","href":"/errors/err_ngrok_27713"},{"mode":"wide","title":"ERR_NGROK_27714: An unsupported_params entry cannot be longer than 255 characters","href":"/errors/err_ngrok_27714"},{"mode":"wide","title":"ERR_NGROK_27715: The unsupported_params entry \"PARAM\" is listed more than once for this model","href":"/errors/err_ngrok_27715"},{"mode":"wide","title":"ERR_NGROK_27716: The unsupported_params array cannot contain more than 100 entries","href":"/errors/err_ngrok_27716"},{"mode":"wide","title":"ERR_NGROK_27717: The unsupported_params array contains an empty string; every entry must be a non-empty param name","href":"/errors/err_ngrok_27717"},{"mode":"wide","title":"ERR_NGROK_27718: The base_url host \"HOST\" is not allowed","href":"/errors/err_ngrok_27718"},{"mode":"wide","title":"ERR_NGROK_28000: Pod identity metadata too large: REASON","href":"/errors/err_ngrok_28000"},{"mode":"wide","title":"ERR_NGROK_28001: Failed to retrieve pod identity metadata: ensure pod has proper annotations and service account configuration","href":"/errors/err_ngrok_28001"},{"mode":"wide","title":"ERR_NGROK_29000: Your account is limited to MAX access tokens","href":"/errors/err_ngrok_29000"},{"mode":"wide","title":"ERR_NGROK_29001: You don't have permission to perform this action","href":"/errors/err_ngrok_29001"}]},{"group":"Named error codes","pages":[{"mode":"wide","title":"ERR_NGROK_AGENT_INVALID_REQUEST: The agent request is invalid: REASON","href":"/errors/err_ngrok_agent_invalid_request"},{"mode":"wide","title":"ERR_NGROK_AGENT_NOT_FOUND: Agent ID was not found","href":"/errors/err_ngrok_agent_not_found"},{"mode":"wide","title":"ERR_NGROK_AGENT_OWNER_MISMATCH: Agent ID is owned by OWNER","href":"/errors/err_ngrok_agent_owner_mismatch"},{"mode":"wide","title":"ERR_NGROK_AGENT_RETIRED: Agent ID was retired and cannot be restored","href":"/errors/err_ngrok_agent_retired"},{"mode":"wide","title":"ERR_NGROK_AI_ASSISTANT_ENTITLEMENT_DENIED: Your plan doesn't include the ngrok AI assistant","href":"/errors/err_ngrok_ai_assistant_entitlement_denied"},{"mode":"wide","title":"ERR_NGROK_AI_ASSISTANT_SUSPENDED_ACCOUNT_DENIED: This account is suspended, so the AI assistant is not available","href":"/errors/err_ngrok_ai_assistant_suspended_account_denied"},{"mode":"wide","title":"ERR_NGROK_AI_ASSISTANT_UNPAID_ACCOUNT_DENIED: This account is suspended for non-payment, so the AI assistant is not available","href":"/errors/err_ngrok_ai_assistant_unpaid_account_denied"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_ACCESS_CONFIG_ALLOWLIST_LAST_ENTRY_NOT_ALLOWED: The change removes every entry from the DIMENSION allowlist, which denies all of them","href":"/errors/err_ngrok_ai_gateway_access_config_allowlist_last_entry_not_allowed"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_ACCESS_CONFIG_ALLOWLIST_NOT_CONFIGURED: The access key configuration allows all DIMENSION, so it has no allowlist to change","href":"/errors/err_ngrok_ai_gateway_access_config_allowlist_not_configured"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_ACCESS_CONFIG_ALLOWLIST_PATCH_CONFLICT: ENTRY is in both the add and the remove list of the DIMENSION allowlist","href":"/errors/err_ngrok_ai_gateway_access_config_allowlist_patch_conflict"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_ACCESS_CONFIG_DESCRIPTION_TOO_LONG: Access key configuration description is too long","href":"/errors/err_ngrok_ai_gateway_access_config_description_too_long"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_ACCESS_CONFIG_VIRTUAL_MODEL_NOT_ALLOWED: NAME is a virtual model","href":"/errors/err_ngrok_ai_gateway_access_config_virtual_model_not_allowed"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_ACCESS_KEY_DESCRIPTION_TOO_LONG: Access key description is too long","href":"/errors/err_ngrok_ai_gateway_access_key_description_too_long"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_ACCESS_KEY_METADATA_TOO_LONG: Access key metadata is too long","href":"/errors/err_ngrok_ai_gateway_access_key_metadata_too_long"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_ACCESS_KEY_NAME_TOO_LONG: Access key name is too long","href":"/errors/err_ngrok_ai_gateway_access_key_name_too_long"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_AUDIO_ID_MANAGED_KEY_REQUIRED: Audio ID AUDIOID came from an ngrok-managed key, so only an ngrok-managed key can use it","href":"/errors/err_ngrok_ai_gateway_audio_id_managed_key_required"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_AUDIO_ID_NOT_FOUND: No audio with the ID AUDIOID exists on this account","href":"/errors/err_ngrok_ai_gateway_audio_id_not_found"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_AUDIO_ID_PROVIDER_KEY_REQUIRED: Audio ID AUDIOID did not come from ngrok, so only your own provider key can use it","href":"/errors/err_ngrok_ai_gateway_audio_id_provider_key_required"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_AUDIO_ID_SOURCE_CONFLICT: This request mixes audio IDs from ngrok-managed keys and from your own provider key","href":"/errors/err_ngrok_ai_gateway_audio_id_source_conflict"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_EMBEDDINGS_ENCODING_FORMAT_UNSUPPORTED: Model MODELID on provider PROVIDERID doesn't accept 'encoding_format'","href":"/errors/err_ngrok_ai_gateway_embeddings_encoding_format_unsupported"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_EMBEDDINGS_MODELS_CONFLICT: An embeddings request can fail over only between providers of one model","href":"/errors/err_ngrok_ai_gateway_embeddings_models_conflict"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_MODEL_GONE: Model MODELID is retiredREPLACEMENT","href":"/errors/err_ngrok_ai_gateway_model_gone"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_MODEL_MODALITY_UNSUPPORTED: MODELS can't support MODALITY","href":"/errors/err_ngrok_ai_gateway_model_modality_unsupported"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_MODELS_OUTPUT_CONFLICT: MODEL bills per UNIT, so the request can fail over only between models that return the same outputs","href":"/errors/err_ngrok_ai_gateway_models_output_conflict"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_PROVIDER_MODEL_ID_VIRTUAL_MODEL_CONFLICT: MODELID is already a virtual model","href":"/errors/err_ngrok_ai_gateway_provider_model_id_virtual_model_conflict"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_REQUEST_BODY_TOO_LONG: Request body is too long","href":"/errors/err_ngrok_ai_gateway_request_body_too_long"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_REQUEST_CAPACITY_UNAVAILABLE: The AI gateway is busy","href":"/errors/err_ngrok_ai_gateway_request_capacity_unavailable"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_RESOURCE_VERSION_CONFLICT: The RESOURCE changed after you read it","href":"/errors/err_ngrok_ai_gateway_resource_version_conflict"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_SUSPENDED_ACCOUNT_DENIED: This account is suspended","href":"/errors/err_ngrok_ai_gateway_suspended_account_denied"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_UNPAID_ACCOUNT_DENIED: This account is suspended for non-payment","href":"/errors/err_ngrok_ai_gateway_unpaid_account_denied"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_UPSTREAM_RESPONSE_TOO_LONG: The provider's response is too long","href":"/errors/err_ngrok_ai_gateway_upstream_response_too_long"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_DESCRIPTION_TOO_LONG: Virtual model descriptions can be at most LIMIT characters","href":"/errors/err_ngrok_ai_gateway_virtual_model_description_too_long"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_LIMIT_EXCEEDED: This account can have at most LIMIT virtual models","href":"/errors/err_ngrok_ai_gateway_virtual_model_limit_exceeded"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_NAME_ALREADY_EXISTS: A virtual model named NAME already exists","href":"/errors/err_ngrok_ai_gateway_virtual_model_name_already_exists"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_NAME_CONFLICT: NAME is already a model name","href":"/errors/err_ngrok_ai_gateway_virtual_model_name_conflict"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_NAME_ILLEGAL_CHARACTER: Virtual model names can use letters, numbers, '.', '_', and '-'","href":"/errors/err_ngrok_ai_gateway_virtual_model_name_illegal_character"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_NAME_REQUIRED: Virtual model name is required","href":"/errors/err_ngrok_ai_gateway_virtual_model_name_required"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_NAME_TOO_LONG: Virtual model names can be at most LIMIT characters","href":"/errors/err_ngrok_ai_gateway_virtual_model_name_too_long"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_TARGET_AUTO_MIXED_NOT_ALLOWED: 'ngrok/auto' must be the only model in a virtual model","href":"/errors/err_ngrok_ai_gateway_virtual_model_target_auto_mixed_not_allowed"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_TARGET_DUPLICATED: TARGET is in this virtual model more than once","href":"/errors/err_ngrok_ai_gateway_virtual_model_target_duplicated"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_TARGET_NESTING_NOT_ALLOWED: TARGET is a virtual model","href":"/errors/err_ngrok_ai_gateway_virtual_model_target_nesting_not_allowed"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_TARGET_NOT_FOUND: TARGET isn't a valid model","href":"/errors/err_ngrok_ai_gateway_virtual_model_target_not_found"},{"mode":"wide","title":"ERR_NGROK_AI_GATEWAY_VIRTUAL_MODEL_TARGETS_OUT_OF_RANGE: A virtual model needs MIN to MAX models","href":"/errors/err_ngrok_ai_gateway_virtual_model_targets_out_of_range"},{"mode":"wide","title":"ERR_NGROK_BILLING_ACCOUNT_SUSPENSION_RESTORE_UNSUPPORTED: This account was suspended for nonpayment long ago","href":"/errors/err_ngrok_billing_account_suspension_restore_unsupported"},{"mode":"wide","title":"ERR_NGROK_BILLING_CARD_BRAND_INDIA_MANDATE_UNSUPPORTED: This card can't make automatic payments","href":"/errors/err_ngrok_billing_card_brand_india_mandate_unsupported"},{"mode":"wide","title":"ERR_NGROK_BILLING_CARD_MANDATE_IN_PROGRESS: Your bank is still approving this card for automatic payments","href":"/errors/err_ngrok_billing_card_mandate_in_progress"},{"mode":"wide","title":"ERR_NGROK_BILLING_CARD_MANDATE_REFUSED: Your bank refused to approve this card for automatic payments","href":"/errors/err_ngrok_billing_card_mandate_refused"},{"mode":"wide","title":"ERR_NGROK_BILLING_CHECKOUT_IN_PROGRESS: Another checkout on this account is in progress","href":"/errors/err_ngrok_billing_checkout_in_progress"},{"mode":"wide","title":"ERR_NGROK_DASH_SESSION_LIFETIME_NOT_ALLOWED: Dashboard session lifetime needs the Identity \u0026 Access Governance Suite add-on","href":"/errors/err_ngrok_dash_session_lifetime_not_allowed"},{"mode":"wide","title":"ERR_NGROK_EVENTS_DESTINATION_DATADOG_API_KEY_REQUIRED: The api_key is required when you change the Datadog intake_host","href":"/errors/err_ngrok_events_destination_datadog_api_key_required"},{"mode":"wide","title":"ERR_NGROK_EVENTS_DESTINATION_DATADOG_AUTH_SCHEME_UNSUPPORTED: The Datadog auth_scheme SCHEME is not supported","href":"/errors/err_ngrok_events_destination_datadog_auth_scheme_unsupported"},{"mode":"wide","title":"ERR_NGROK_EVENTS_DESTINATION_DATADOG_INTAKE_HOST_INVALID: The Datadog intake_host is not valid","href":"/errors/err_ngrok_events_destination_datadog_intake_host_invalid"},{"mode":"wide","title":"ERR_NGROK_EVENTS_DESTINATION_DATADOG_INTAKE_HOST_NOT_FOUND: ngrok can't find a DNS record for the Datadog intake_host","href":"/errors/err_ngrok_events_destination_datadog_intake_host_not_found"},{"mode":"wide","title":"ERR_NGROK_EVENTS_DESTINATION_DATADOG_INTAKE_HOST_REFUSED: The Datadog intake_host refused the test event with HTTP status STATUS","href":"/errors/err_ngrok_events_destination_datadog_intake_host_refused"},{"mode":"wide","title":"ERR_NGROK_EVENTS_DESTINATION_DATADOG_SITE_CONFLICT: A Datadog destination can set ddsite or intake_host, but not both","href":"/errors/err_ngrok_events_destination_datadog_site_conflict"},{"mode":"wide","title":"ERR_NGROK_IAM_ACCESS_TOKEN_OWNER_ROLE_REQUIRED: The token owner has no role that grants access","href":"/errors/err_ngrok_iam_access_token_owner_role_required"},{"mode":"wide","title":"ERR_NGROK_IAM_SERVICE_USER_PERMISSIONS_USE_ROLES: You can't set a service user's permissions directly","href":"/errors/err_ngrok_iam_service_user_permissions_use_roles"},{"mode":"wide","title":"ERR_NGROK_IAM_SERVICE_USER_ROLE_CONFLICT: A service user can hold only one of the roles 'developer' and 'developer-readonly'","href":"/errors/err_ngrok_iam_service_user_role_conflict"},{"mode":"wide","title":"ERR_NGROK_IAM_SERVICE_USER_ROLE_NOT_ALLOWED: A service user can't hold the role ROLE","href":"/errors/err_ngrok_iam_service_user_role_not_allowed"},{"mode":"wide","title":"ERR_NGROK_NOTIFICATIONS_SLACK_CHANNEL_JOIN_DENIED: The ngrok app can't join the Slack channel CHANNEL","href":"/errors/err_ngrok_notifications_slack_channel_join_denied"},{"mode":"wide","title":"ERR_NGROK_NOTIFICATIONS_SLACK_CHANNEL_POST_DENIED: The ngrok app is not in the Slack channel CHANNEL","href":"/errors/err_ngrok_notifications_slack_channel_post_denied"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_ACCOUNT_CHECK_UNAVAILABLE: We could not check whether this account can use private links","href":"/errors/err_ngrok_private_link_account_check_unavailable"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_ACCOUNT_NOT_ALLOWED: This account can't use private links","href":"/errors/err_ngrok_private_link_account_not_allowed"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_ALLOWED_ACCOUNT_ALREADY_EXISTS: This AWS account is already an allowed account on this private link","href":"/errors/err_ngrok_private_link_allowed_account_already_exists"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_ALLOWED_ACCOUNT_LIMIT_EXCEEDED: A private link can admit at most LIMIT AWS accounts","href":"/errors/err_ngrok_private_link_allowed_account_limit_exceeded"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_ALLOWED_ACCOUNT_NOT_FOUND: No private link allowed account with the ID ID exists on this account","href":"/errors/err_ngrok_private_link_allowed_account_not_found"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_CONSUMER_AWS_ACCOUNT_ID_INVALID: The 'consumer_aws_account_id' value is not an AWS account ID","href":"/errors/err_ngrok_private_link_consumer_aws_account_id_invalid"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_ENDPOINT_CONNECTION_NOT_FOUND: AWS reports no connection from VPC endpoint VPCE_ID in AWS_REGION","href":"/errors/err_ngrok_private_link_endpoint_connection_not_found"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_ENDPOINT_DESCRIBE_FAILED: Could not describe VPC endpoint VPCE_ID in AWS_REGION","href":"/errors/err_ngrok_private_link_endpoint_describe_failed"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_FIELD_ILLEGAL_CHARACTER: The FIELD value must be valid UTF-8 and must not contain null bytes","href":"/errors/err_ngrok_private_link_field_illegal_character"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_FIELD_TOO_LONG: The FIELD value is too long","href":"/errors/err_ngrok_private_link_field_too_long"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_GRANT_ALREADY_EXISTS: This VPC endpoint already has a grant in this AWS region","href":"/errors/err_ngrok_private_link_grant_already_exists"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_GRANT_LIMIT_EXCEEDED: A private link can admit at most LIMIT VPC endpoints","href":"/errors/err_ngrok_private_link_grant_limit_exceeded"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_GRANT_NOT_FOUND: No private link grant with the ID ID exists on this account","href":"/errors/err_ngrok_private_link_grant_not_found"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_GRANT_OWNER_NOT_ALLOWED: The AWS account that owns this VPC endpoint is not an allowed account on this private link","href":"/errors/err_ngrok_private_link_grant_owner_not_allowed"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_GRANT_REGION_NOT_ALLOWED: This private link does not cover the VPC endpoint's AWS region","href":"/errors/err_ngrok_private_link_grant_region_not_allowed"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_HOSTNAME_DUPLICATED: Hostname HOSTNAME appears more than once in 'hostnames'","href":"/errors/err_ngrok_private_link_hostname_duplicated"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_HOSTNAME_INVALID: Hostname HOSTNAME is not a valid DNS name","href":"/errors/err_ngrok_private_link_hostname_invalid"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_HOSTNAME_LIMIT_EXCEEDED: A private link can advertise at most LIMIT hostnames","href":"/errors/err_ngrok_private_link_hostname_limit_exceeded"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_HOSTNAME_REQUIRED: A 'hostnames' value must not be empty","href":"/errors/err_ngrok_private_link_hostname_required"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_ID_INVALID: ID ID is not a RESOURCE ID","href":"/errors/err_ngrok_private_link_id_invalid"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_LIMIT_EXCEEDED: This account can have at most LIMIT private links","href":"/errors/err_ngrok_private_link_limit_exceeded"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_METADATA_TOO_LONG: The 'metadata' field is too long","href":"/errors/err_ngrok_private_link_metadata_too_long"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_NAME_ALREADY_EXISTS: A private link with this name already exists on this account","href":"/errors/err_ngrok_private_link_name_already_exists"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_NAME_REQUIRED: Private link name must not be empty","href":"/errors/err_ngrok_private_link_name_required"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_NOT_FOUND: No private link with the ID ID exists on this account","href":"/errors/err_ngrok_private_link_not_found"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_REGION_DUPLICATED: AWS region REGION appears more than once in 'regions'","href":"/errors/err_ngrok_private_link_region_duplicated"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_REGION_UNSUPPORTED: Private links are not available in this AWS region","href":"/errors/err_ngrok_private_link_region_unsupported"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_UPDATE_CONFLICT: The private link changed while this request ran","href":"/errors/err_ngrok_private_link_update_conflict"},{"mode":"wide","title":"ERR_NGROK_PRIVATE_LINK_VPC_ENDPOINT_ID_INVALID: The 'vpc_endpoint_id' value is not a VPC endpoint ID","href":"/errors/err_ngrok_private_link_vpc_endpoint_id_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_BUILD_CONFIG_NOT_ALLOWED: The 'build_config' field applies only to repository apps","href":"/errors/err_ngrok_ship_app_build_config_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_ENVIRONMENT_BRANCH_REQUIRED: The 'environments[INDEX].branch' field must not be empty","href":"/errors/err_ngrok_ship_app_environment_branch_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_ENVIRONMENT_NAME_DUPLICATED: Environment name NAME is used more than once in 'environments'","href":"/errors/err_ngrok_ship_app_environment_name_duplicated"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_ENVIRONMENT_NAME_REQUIRED: The 'environments[INDEX].name' field is required","href":"/errors/err_ngrok_ship_app_environment_name_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_ENVIRONMENT_TRACKING_REF_REQUIRED: Environment NAME must have a 'tracking_ref'","href":"/errors/err_ngrok_ship_app_environment_tracking_ref_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_ENVIRONMENT_URL_DUPLICATED: Environment URL URL is used more than once in 'environments'","href":"/errors/err_ngrok_ship_app_environment_url_duplicated"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_ENVIRONMENTS_OR_PR_PREVIEWS_REQUIRED: The request must include at least one environment or 'pr_previews'","href":"/errors/err_ngrok_ship_app_environments_or_pr_previews_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_ENVIRONMENTS_REQUIRED: The 'environments' list must include at least one environment","href":"/errors/err_ngrok_ship_app_environments_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_IMAGE_REPOSITORY_REQUIRED: The 'image_repository' field must not be empty","href":"/errors/err_ngrok_ship_app_image_repository_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_NAME_ALREADY_EXISTS: An app named \"NAME\" already exists on this account","href":"/errors/err_ngrok_ship_app_name_already_exists"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_NAME_BAD_START_OR_END: App name NAME must not start or end with CHAR","href":"/errors/err_ngrok_ship_app_name_bad_start_or_end"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_NAME_ILLEGAL_CHARACTER: App name NAME contains the illegal character CHAR","href":"/errors/err_ngrok_ship_app_name_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_NAME_NOT_FOUND: No app named NAME exists on this account","href":"/errors/err_ngrok_ship_app_name_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_NAME_REQUIRED: App name must not be empty","href":"/errors/err_ngrok_ship_app_name_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_NAME_TOO_LONG: App name is too long","href":"/errors/err_ngrok_ship_app_name_too_long"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_NOT_FOUND: No app with the ID ID exists on this account","href":"/errors/err_ngrok_ship_app_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_PULL_CREDENTIAL_NOT_FOUND: No registry credential with the ID ID exists on this account","href":"/errors/err_ngrok_ship_app_pull_credential_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_PULL_CREDENTIAL_REGISTRY_CONFLICT: Image repository REPOSITORY is not on HOST, the registry the credential signs in to","href":"/errors/err_ngrok_ship_app_pull_credential_registry_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_PULL_CREDENTIAL_REQUIRED: A private repository that publishes to ghcr.io needs a 'pull_credential_id'","href":"/errors/err_ngrok_ship_app_pull_credential_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_REF_REQUIRED: A ship ref is 'ship/' followed by the app name","href":"/errors/err_ngrok_ship_app_ref_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_REPOSITORY_CONNECTION_UNAVAILABLE: The ngrok GitHub app is STATE for this repository","href":"/errors/err_ngrok_ship_app_repository_connection_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_REPOSITORY_NOT_CONFIGURED: App NAME has no connected repository","href":"/errors/err_ngrok_ship_app_repository_not_configured"},{"mode":"wide","title":"ERR_NGROK_SHIP_APP_REPOSITORY_WORKFLOW_ALREADY_EXISTS: Workflow PATH in this repository is already connected to another app","href":"/errors/err_ngrok_ship_app_repository_workflow_already_exists"},{"mode":"wide","title":"ERR_NGROK_SHIP_BUILD_CONFIG_BUILD_COMMAND_TOO_LONG: The 'build_config.build_command' field is too long","href":"/errors/err_ngrok_ship_build_config_build_command_too_long"},{"mode":"wide","title":"ERR_NGROK_SHIP_BUILD_CONFIG_COMMANDS_NOT_ALLOWED: The 'build_command' and 'run_command' fields apply only to automatic builds","href":"/errors/err_ngrok_ship_build_config_commands_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_BUILD_CONFIG_DOCKERFILE_PATH_FILE_REQUIRED: The 'dockerfile_path' value VALUE must name a file","href":"/errors/err_ngrok_ship_build_config_dockerfile_path_file_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_BUILD_CONFIG_DOCKERFILE_PATH_NOT_ALLOWED: The 'dockerfile_path' field applies only to Dockerfile builds","href":"/errors/err_ngrok_ship_build_config_dockerfile_path_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_BUILD_CONFIG_PATH_BAD_START_OR_END: The FIELD value VALUE must not start or end with '/'","href":"/errors/err_ngrok_ship_build_config_path_bad_start_or_end"},{"mode":"wide","title":"ERR_NGROK_SHIP_BUILD_CONFIG_PATH_NOT_ALLOWED: The FIELD value VALUE leaves the repository","href":"/errors/err_ngrok_ship_build_config_path_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_BUILD_CONFIG_PATH_REQUIRED: The FIELD field must not be empty","href":"/errors/err_ngrok_ship_build_config_path_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_BUILD_CONFIG_PROVIDER_UNSUPPORTED: Build provider PROVIDER is not supported","href":"/errors/err_ngrok_ship_build_config_provider_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_BUILD_CONFIG_RUN_COMMAND_TOO_LONG: The 'build_config.run_command' field is too long","href":"/errors/err_ngrok_ship_build_config_run_command_too_long"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_ACCOUNT_CONNECTION_ALREADY_EXISTS: This ngrok account is already connected to a Slack workspace","href":"/errors/err_ngrok_ship_chatbot_account_connection_already_exists"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_ANSWER_TIME_LIMIT_EXCEEDED: The assistant did not finish its answer in LIMIT","href":"/errors/err_ngrok_ship_chatbot_answer_time_limit_exceeded"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_CHANNEL_NAME_REQUIRED: PROVIDER returned no name for channel CHANNEL","href":"/errors/err_ngrok_ship_chatbot_channel_name_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_CHANNEL_READ_UNAVAILABLE: We could not read channel CHANNEL from PROVIDER: REASON","href":"/errors/err_ngrok_ship_chatbot_channel_read_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_CONVERSATION_HISTORY_TOO_LONG: This conversation is too long for the assistant to read","href":"/errors/err_ngrok_ship_chatbot_conversation_history_too_long"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_ENTITLEMENT_DENIED: Your plan doesn't include the ngrok chat agent","href":"/errors/err_ngrok_ship_chatbot_entitlement_denied"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_INSTALLATION_ENABLED_REQUIRED: The chat agent is paused for this workspace","href":"/errors/err_ngrok_ship_chatbot_installation_enabled_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_INSTALLATION_NOT_FOUND: No chat agent installation with the ID ID exists on this account","href":"/errors/err_ngrok_ship_chatbot_installation_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_INSTALLER_NOT_ALLOWED: Only a Slack workspace admin or owner can connect ngrok to this workspace","href":"/errors/err_ngrok_ship_chatbot_installer_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_INTEGRATION_NOT_CONFIGURED: This Slack integration is not connected","href":"/errors/err_ngrok_ship_chatbot_integration_not_configured"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_INTEGRATION_PROVIDER_UNSUPPORTED: Integration ID is not a chat platform integration","href":"/errors/err_ngrok_ship_chatbot_integration_provider_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_PROVIDER_CREDENTIAL_REFUSED: PROVIDER rejected the integration's credential (REASON)","href":"/errors/err_ngrok_ship_chatbot_provider_credential_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_PROVIDER_UNAVAILABLE: We could not reach PROVIDER to verify the integration: REASON","href":"/errors/err_ngrok_ship_chatbot_provider_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_SUBSCRIPTION_FILTER_INVALID: Invalid subscription filter: DETAIL","href":"/errors/err_ngrok_ship_chatbot_subscription_filter_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_SUBSCRIPTION_NOT_FOUND: Subscription ID not found","href":"/errors/err_ngrok_ship_chatbot_subscription_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_SUBSCRIPTION_SUBJECT_UNSUPPORTED: REF is not something I can subscribe to","href":"/errors/err_ngrok_ship_chatbot_subscription_subject_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHATBOT_WORKSPACE_CONNECTION_ALREADY_EXISTS: This ngrok account has already connected this Slack workspace","href":"/errors/err_ngrok_ship_chatbot_workspace_connection_already_exists"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_LIMIT_EXCEEDED: Too many health checks","href":"/errors/err_ngrok_ship_check_limit_exceeded"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_NAME_BAD_START: Health check name NAME must start with a lowercase letter","href":"/errors/err_ngrok_ship_check_name_bad_start"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_NAME_DUPLICATED: Health check name NAME is used more than once","href":"/errors/err_ngrok_ship_check_name_duplicated"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_NAME_ILLEGAL_CHARACTER: Health check name NAME contains the illegal character CHAR","href":"/errors/err_ngrok_ship_check_name_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_NAME_REQUIRED: The 'checks[INDEX].name' field must not be empty","href":"/errors/err_ngrok_ship_check_name_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_NAME_TOO_LONG: The 'checks[INDEX].name' field is too long","href":"/errors/err_ngrok_ship_check_name_too_long"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_PATH_BAD_START: Health check NAME path PATH must start with '/'","href":"/errors/err_ngrok_ship_check_path_bad_start"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_PATH_ILLEGAL_CHARACTER: Health check NAME path PATH must not contain '?' or '#'","href":"/errors/err_ngrok_ship_check_path_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_PATH_REQUIRED: Health check NAME must have a 'path'","href":"/errors/err_ngrok_ship_check_path_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_PATH_TOO_LONG: Health check NAME path is too long","href":"/errors/err_ngrok_ship_check_path_too_long"},{"mode":"wide","title":"ERR_NGROK_SHIP_CHECK_PORT_OUT_OF_RANGE: Health check NAME port must be 1 to 65535, or 0 for the default","href":"/errors/err_ngrok_ship_check_port_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_COMPUTE_INSTANCE_OFFERING_ID_REQUIRED: The 'offering_id' field is required","href":"/errors/err_ngrok_ship_compute_instance_offering_id_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTAINER_IMAGE_NOT_FOUND: Image IMAGE was not found at HOST, or the credential cannot see it","href":"/errors/err_ngrok_ship_container_image_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTAINER_IMAGE_PLATFORM_REQUIRED: Image IMAGE lists no runnable platform","href":"/errors/err_ngrok_ship_container_image_platform_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTAINER_IMAGE_PULL_CREDENTIAL_REQUIRED: Registry HOST requires a credential to read IMAGE","href":"/errors/err_ngrok_ship_container_image_pull_credential_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTAINER_IMAGE_PULL_DENIED: Registry HOST rejected the pull credential for IMAGE (HTTP STATUS)","href":"/errors/err_ngrok_ship_container_image_pull_denied"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTAINER_IMAGE_REFERENCE_INVALID: The image reference IMAGE is not valid: REASON","href":"/errors/err_ngrok_ship_container_image_reference_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTAINER_IMAGE_REFERENCE_REQUIRED: The 'image_ref' field must not be empty","href":"/errors/err_ngrok_ship_container_image_reference_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTAINER_IMAGE_REGISTRY_ADDRESS_NOT_ALLOWED: Registry HOST resolves to a private or reserved address","href":"/errors/err_ngrok_ship_container_image_registry_address_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTAINER_IMAGE_REGISTRY_UNAVAILABLE: Registry HOST did not answer for IMAGE: REASON","href":"/errors/err_ngrok_ship_container_image_registry_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTAINER_IMAGE_TAG_NOT_FOUND: Image REPOSITORY has no tag or digest REFERENCE at HOST","href":"/errors/err_ngrok_ship_container_image_tag_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTINUOUS_DELIVERY_NOT_FOUND: No continuous delivery with the ID ID exists on this account","href":"/errors/err_ngrok_ship_continuous_delivery_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTINUOUS_DELIVERY_PREVIEW_TRACKING_REF_NOT_ALLOWED: A pull request preview tracks its pull request's branch","href":"/errors/err_ngrok_ship_continuous_delivery_preview_tracking_ref_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTINUOUS_DELIVERY_TRACKING_REF_NOT_FOUND: Branch BRANCH does not exist in the repository, or the ngrok GitHub app cannot see it","href":"/errors/err_ngrok_ship_continuous_delivery_tracking_ref_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_CONTINUOUS_DELIVERY_TRACKING_REF_REQUIRED: The 'tracking_ref' field must not be empty","href":"/errors/err_ngrok_ship_continuous_delivery_tracking_ref_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_CPU_MILLICORES_OUT_OF_RANGE: The 'cpu_millicores' field must be 0 or more, got VALUE","href":"/errors/err_ngrok_ship_cpu_millicores_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_DEPLOYMENT_NOT_FOUND: No deployment with the ID ID exists on this account","href":"/errors/err_ngrok_ship_deployment_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOCKERFILE_FROM_REQUIRED: Dockerfile PATH on branch BRANCH has no FROM instruction","href":"/errors/err_ngrok_ship_dockerfile_from_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOCKERFILE_NOT_FOUND: Dockerfile PATH is missing or empty on branch BRANCH","href":"/errors/err_ngrok_ship_dockerfile_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOCKERFILE_READ_REFUSED: GitHub refused to read Dockerfile PATH from branch BRANCH (HTTP STATUS)","href":"/errors/err_ngrok_ship_dockerfile_read_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOCKERFILE_READ_UNAVAILABLE: GitHub failed to return Dockerfile PATH from branch BRANCH (HTTP STATUS)","href":"/errors/err_ngrok_ship_dockerfile_read_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_APEX_UNSUPPORTED: PROVIDER cannot point a root domain at ngrok","href":"/errors/err_ngrok_ship_domain_apex_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_AUTOMATION_NOT_CONFIGURED: Automated DNS setup is not configured in this environment","href":"/errors/err_ngrok_ship_domain_automation_not_configured"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_AUTOMATION_PROVIDER_UNSUPPORTED: ngrok cannot create DNS records at this provider yet","href":"/errors/err_ngrok_ship_domain_automation_provider_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_CERT_ID_REQUIRED: The 'cert_id' field must not be empty when 'cert' is 'uploaded'","href":"/errors/err_ngrok_ship_domain_cert_id_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_DNS_RECORDS_UNSUPPORTED: This domain needs no DNS records","href":"/errors/err_ngrok_ship_domain_dns_records_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_INTEGRATION_CREDENTIAL_REFUSED: The PROVIDER integration is not connected or its credential was revoked","href":"/errors/err_ngrok_ship_domain_integration_credential_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_MANAGED_CERT_REQUIRED: This domain does not use a managed certificate","href":"/errors/err_ngrok_ship_domain_managed_cert_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_NAME_HOST_REQUIRED: Domain name has no hostname","href":"/errors/err_ngrok_ship_domain_name_host_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_NAME_REQUIRED: Domain name must not be empty","href":"/errors/err_ngrok_ship_domain_name_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_PROVIDER_ACCESS_DENIED: PROVIDER refused the integration's credential for ZONE (HTTP STATUS)","href":"/errors/err_ngrok_ship_domain_provider_access_denied"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_PROVIDER_RATE_LIMITED: PROVIDER is rate limiting DNS API calls for ZONE","href":"/errors/err_ngrok_ship_domain_provider_rate_limited"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_PROVIDER_ZONE_NOT_FOUND: PROVIDER does not have ZONE, or its API access is turned off for that domain","href":"/errors/err_ngrok_ship_domain_provider_zone_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_ZONE_NOT_FOUND: We could not find the DNS zone for this domain","href":"/errors/err_ngrok_ship_domain_zone_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_DOMAIN_ZONE_READ_UNAVAILABLE: We could not read ZONE at PROVIDER: REASON","href":"/errors/err_ngrok_ship_domain_zone_read_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_EARLY_ACCESS_NOT_ALLOWED: Ship is in early access","href":"/errors/err_ngrok_ship_early_access_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_TEMPLATE_NAME_BAD_START: Endpoint template name NAME must start with a lowercase letter","href":"/errors/err_ngrok_ship_endpoint_template_name_bad_start"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_TEMPLATE_NAME_DUPLICATED: Endpoint template name NAME is used more than once","href":"/errors/err_ngrok_ship_endpoint_template_name_duplicated"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_TEMPLATE_NAME_ILLEGAL_CHARACTER: Endpoint template name NAME contains the illegal character CHAR","href":"/errors/err_ngrok_ship_endpoint_template_name_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_TEMPLATE_NAME_REQUIRED: The 'endpoint_templates[INDEX].name' field must not be empty","href":"/errors/err_ngrok_ship_endpoint_template_name_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_TEMPLATE_NAME_TOO_LONG: The 'endpoint_templates[INDEX].name' field is too long","href":"/errors/err_ngrok_ship_endpoint_template_name_too_long"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_TEMPLATE_PRIMARY_REQUIRED: The 'endpoint_templates' list must include a template named 'primary'","href":"/errors/err_ngrok_ship_endpoint_template_primary_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_URL_DUPLICATED: Endpoint URL URL is used more than once in 'endpoint_templates'","href":"/errors/err_ngrok_ship_endpoint_url_duplicated"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_URL_HOST_REQUIRED: The FIELD value VALUE has no hostname","href":"/errors/err_ngrok_ship_endpoint_url_host_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_URL_INVALID: The FIELD value is not a valid URL: REASON","href":"/errors/err_ngrok_ship_endpoint_url_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_URL_PORT_REQUIRED: The FIELD value VALUE must include a port for the SCHEME scheme","href":"/errors/err_ngrok_ship_endpoint_url_port_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_URL_PRIVATE_HOSTNAME_LABEL_LIMIT_EXCEEDED: The FIELD hostname HOST has too many labels","href":"/errors/err_ngrok_ship_endpoint_url_private_hostname_label_limit_exceeded"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_URL_PRIVATE_HOSTNAME_NAME_REQUIRED: The FIELD hostname HOST has no name in front of its private suffix","href":"/errors/err_ngrok_ship_endpoint_url_private_hostname_name_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_URL_REQUIRED: The FIELD field must not be empty","href":"/errors/err_ngrok_ship_endpoint_url_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_URL_SCHEME_REQUIRED: The FIELD value VALUE has no scheme","href":"/errors/err_ngrok_ship_endpoint_url_scheme_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENDPOINT_URL_SCHEME_UNSUPPORTED: The FIELD value VALUE uses the unsupported scheme SCHEME","href":"/errors/err_ngrok_ship_endpoint_url_scheme_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_ARCHIVED_ENABLE_NOT_ALLOWED: Environment ID is archived","href":"/errors/err_ngrok_ship_environment_archived_enable_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_CONTINUOUS_DELIVERY_NOT_CONFIGURED: Environment ID has no continuous delivery, so it cannot be rolled back","href":"/errors/err_ngrok_ship_environment_continuous_delivery_not_configured"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_NAME_ALREADY_EXISTS: An environment named \"NAME\" already exists on this app","href":"/errors/err_ngrok_ship_environment_name_already_exists"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_NAME_BAD_START_OR_END: Environment name NAME must not start or end with CHAR","href":"/errors/err_ngrok_ship_environment_name_bad_start_or_end"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_NAME_ILLEGAL_CHARACTER: Environment name NAME contains the illegal character CHAR","href":"/errors/err_ngrok_ship_environment_name_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_NAME_REQUIRED: Environment name must not be empty","href":"/errors/err_ngrok_ship_environment_name_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_NAME_TOO_LONG: Environment name is too long","href":"/errors/err_ngrok_ship_environment_name_too_long"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_NOT_FOUND: No environment with the ID ID exists on this account","href":"/errors/err_ngrok_ship_environment_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_POOL_CONFIG_SECTION_NOT_ALLOWED: The SECTION settings do not match pool ID, which is a KIND pool","href":"/errors/err_ngrok_ship_environment_pool_config_section_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_POOL_ID_INVALID: The pool_id VALUE in 'pools' is not a pool ID: REASON","href":"/errors/err_ngrok_ship_environment_pool_id_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_POOL_ID_NOT_FOUND: No pool with the ID ID exists on this account","href":"/errors/err_ngrok_ship_environment_pool_id_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_POOL_IDS_REQUIRED: The 'pools' list must include at least one pool","href":"/errors/err_ngrok_ship_environment_pool_ids_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_POOLS_POOL_ID_DUPLICATED: Pool ID is in 'pools' more than once","href":"/errors/err_ngrok_ship_environment_pools_pool_id_duplicated"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_POOLS_POOL_ID_REQUIRED: Each entry in 'pools' must have a 'pool_id'","href":"/errors/err_ngrok_ship_environment_pools_pool_id_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_PREVIEW_NAME_NOT_ALLOWED: Environment ID is a pull request preview","href":"/errors/err_ngrok_ship_environment_preview_name_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_ROLLOUT_IN_PROGRESS: Environment ID already has a rollout in progress","href":"/errors/err_ngrok_ship_environment_rollout_in_progress"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_STATE_CONFLICT: Environment ID is STATE","href":"/errors/err_ngrok_ship_environment_state_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_TASK_ROLE_ACCOUNT_NOT_ALLOWED: The 'task_role_arn' role must be in the AWS account of pool ID","href":"/errors/err_ngrok_ship_environment_task_role_account_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_TASK_ROLE_ARN_INVALID: The 'task_role_arn' value is not an IAM role ARN: REASON","href":"/errors/err_ngrok_ship_environment_task_role_arn_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_TASK_ROLE_NAME_BAD_START: The 'task_role_arn' value must have 'ngrok-ship-task-' directly after 'role/', with no path before it","href":"/errors/err_ngrok_ship_environment_task_role_name_bad_start"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_VAR_KEY_BAD_START: Environment variable KEY must not start with a digit","href":"/errors/err_ngrok_ship_environment_var_key_bad_start"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_VAR_KEY_ILLEGAL_CHARACTER: Environment variable KEY contains the illegal character CHAR","href":"/errors/err_ngrok_ship_environment_var_key_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_VAR_KEY_NOT_ALLOWED: Environment variable KEY is reserved","href":"/errors/err_ngrok_ship_environment_var_key_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_VAR_KEY_REQUIRED: Environment variable names must not be empty","href":"/errors/err_ngrok_ship_environment_var_key_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ENVIRONMENT_VAR_VALUE_EXPRESSION_INVALID: Environment variable KEY has an invalid expression: REASON","href":"/errors/err_ngrok_ship_environment_var_value_expression_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_GATEWAY_CONFIG_INVALID: The gateway configuration is invalid: REASON","href":"/errors/err_ngrok_ship_gateway_config_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_GATEWAY_CONFIG_REQUIRED: The FIELD field is required","href":"/errors/err_ngrok_ship_gateway_config_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_GATEWAY_CONFIG_UNSUPPORTED: A SCHEME endpoint can't use these gateway settings: SETTINGS","href":"/errors/err_ngrok_ship_gateway_config_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_AUTHORIZATION_REQUIRED: Your GitHub authorization has expired or was revoked","href":"/errors/err_ngrok_ship_github_authorization_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_INSTALLATION_NOT_ALLOWED: Your GitHub user cannot see GitHub installation INSTALLATIONID","href":"/errors/err_ngrok_ship_github_installation_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_RATE_LIMITED: GitHub is rate limiting requests for repository REPO (HTTP STATUS)","href":"/errors/err_ngrok_ship_github_rate_limited"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_READ_UNAVAILABLE: GitHub did not return RESOURCE: REASON","href":"/errors/err_ngrok_ship_github_read_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_REPOSITORY_ACCESS_REFUSED: GitHub refused the ngrok GitHub app's request for repository REPO (HTTP 403)","href":"/errors/err_ngrok_ship_github_repository_access_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_REPOSITORY_CONFLICT: GitHub reported a conflict for repository REPO: REASON","href":"/errors/err_ngrok_ship_github_repository_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_REPOSITORY_NOT_ALLOWED: Your GitHub user cannot see repository REPOID through installation INSTALLATIONID","href":"/errors/err_ngrok_ship_github_repository_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_REPOSITORY_NOT_FOUND: Repository REPO was not found on GitHub, or the ngrok GitHub app has no access to it","href":"/errors/err_ngrok_ship_github_repository_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_REPOSITORY_SELECTION_REQUIRED: The 'installation_id' and 'repo_id' fields must not be 0","href":"/errors/err_ngrok_ship_github_repository_selection_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_GITHUB_UNAVAILABLE: GitHub did not answer a request for repository REPO (HTTP STATUS)","href":"/errors/err_ngrok_ship_github_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_AUTHORIZATION_REQUIRED: Integration ID has not been authorized at the provider yet","href":"/errors/err_ngrok_ship_integration_authorization_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_AWS_ROLE_ARN_REQUIRED: The 'aws.role_arn' field must not be empty","href":"/errors/err_ngrok_ship_integration_aws_role_arn_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_CLIENT_CREDENTIALS_REQUIRED: The 'client_credentials.client_id' and 'client_credentials.client_secret' fields must not be empty","href":"/errors/err_ngrok_ship_integration_client_credentials_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_CLIENT_ID_REQUIRED: The 'client_credentials_reference.client_id' field must not be empty","href":"/errors/err_ngrok_ship_integration_client_id_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_CREDENTIAL_FIELD_UNSUPPORTED: Provider PROVIDERID has no credential field NAME","href":"/errors/err_ngrok_ship_integration_credential_field_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_CREDENTIAL_INPUT_UNSUPPORTED: Provider PROVIDERID does not take a INPUT credential","href":"/errors/err_ngrok_ship_integration_credential_input_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_CREDENTIAL_REFERENCE_UNSUPPORTED: Provider PROVIDERID needs COUNT credential values (FIELDS)","href":"/errors/err_ngrok_ship_integration_credential_reference_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_CREDENTIAL_REQUIRED: Provider PROVIDERID needs a credential","href":"/errors/err_ngrok_ship_integration_credential_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_CREDENTIAL_VALUE_DUPLICATED: Credential value NAME is sent more than once","href":"/errors/err_ngrok_ship_integration_credential_value_duplicated"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_CREDENTIAL_VALUE_REQUIRED: Credential value NAME must not be empty","href":"/errors/err_ngrok_ship_integration_credential_value_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_ENABLED_REQUIRED: Integration ID is disabled","href":"/errors/err_ngrok_ship_integration_enabled_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_MEMBER_NOT_ALLOWED: Integration ID belongs to another member of this account","href":"/errors/err_ngrok_ship_integration_member_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_NOT_FOUND: No integration with the ID ID exists on this account","href":"/errors/err_ngrok_ship_integration_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_PROVIDER_ID_UNSUPPORTED: The 'provider_id' value PROVIDERID is not a provider ngrok supports in this environment","href":"/errors/err_ngrok_ship_integration_provider_id_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_PROVIDER_NOT_FOUND: No integration provider with the ID PROVIDERID exists","href":"/errors/err_ngrok_ship_integration_provider_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_REVOCATION_REFUSED: PROVIDER refused to revoke the authorization (HTTP STATUS)","href":"/errors/err_ngrok_ship_integration_revocation_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_REVOCATION_UNAVAILABLE: PROVIDER did not answer the revocation request: REASON","href":"/errors/err_ngrok_ship_integration_revocation_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_INTEGRATION_REVOCATION_UNSUPPORTED: ngrok cannot revoke a PROVIDERID credential at the provider","href":"/errors/err_ngrok_ship_integration_revocation_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_MEMORY_MIB_OUT_OF_RANGE: The 'memory_mib' field must be 0 or more, got VALUE","href":"/errors/err_ngrok_ship_memory_mib_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_AWS_REGION_UNSUPPORTED: The 'region' value REGION is not an AWS region code like 'us-east-1'","href":"/errors/err_ngrok_ship_pool_aws_region_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_CLUSTER_NAME_NOT_ALLOWED: The 'cluster_name' field must be empty for an 'aws_ecs_managed' pool","href":"/errors/err_ngrok_ship_pool_cluster_name_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_CLUSTER_NOT_FOUND: The pool's Kubernetes cluster no longer exists at PROVIDER","href":"/errors/err_ngrok_ship_pool_cluster_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_COREWEAVE_NODE_POOL_COUNT_OUT_OF_RANGE: The 'node_pool.count' field must be at least 1, got COUNT","href":"/errors/err_ngrok_ship_pool_coreweave_node_pool_count_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_DETAILS_FIELD_REQUIRED: The FIELD field must not be empty","href":"/errors/err_ngrok_ship_pool_details_field_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_DETAILS_LIST_REQUIRED: The FIELD list must have at least one entry","href":"/errors/err_ngrok_ship_pool_details_list_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_DETAILS_REQUIRED: A KIND pool needs KIND details","href":"/errors/err_ngrok_ship_pool_details_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_ECS_CLUSTER_NAME_ILLEGAL_CHARACTER: The 'cluster_name' value NAME contains the illegal character CHAR","href":"/errors/err_ngrok_ship_pool_ecs_cluster_name_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_ECS_CLUSTER_NAME_TOO_LONG: The 'cluster_name' field is too long","href":"/errors/err_ngrok_ship_pool_ecs_cluster_name_too_long"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_EXECUTION_ROLE_ARN_INVALID: The 'execution_role_arn' value is not an IAM role ARN: REASON","href":"/errors/err_ngrok_ship_pool_execution_role_arn_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_EXECUTION_ROLE_NAME_BAD_START: The 'execution_role_arn' role name NAME must start with 'ngrok-ship-'","href":"/errors/err_ngrok_ship_pool_execution_role_name_bad_start"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_EXECUTION_ROLE_NAME_NOT_ALLOWED: The 'execution_role_arn' value must not have 'ngrok-ship-task-' directly after 'role/'","href":"/errors/err_ngrok_ship_pool_execution_role_name_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_INTEGRATION_AUTHORIZATION_REQUIRED: Integration ID is not authorized yet","href":"/errors/err_ngrok_ship_pool_integration_authorization_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_INTEGRATION_CREDENTIAL_REFUSED: PROVIDER did not accept the integration's credential","href":"/errors/err_ngrok_ship_pool_integration_credential_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_INTEGRATION_ENABLED_REQUIRED: Integration ID is disabled","href":"/errors/err_ngrok_ship_pool_integration_enabled_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_INTEGRATION_ID_REQUIRED: The 'integration_id' field must not be empty","href":"/errors/err_ngrok_ship_pool_integration_id_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_INTEGRATION_PROVIDER_CONFLICT: Integration ID is for PROVIDER","href":"/errors/err_ngrok_ship_pool_integration_provider_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_INTEGRATION_UNSUPPORTED: Pool kind KIND does not take an 'integration_id'","href":"/errors/err_ngrok_ship_pool_integration_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_JOIN_KEY_ALREADY_EXISTS: A pool with this join key already exists on this account","href":"/errors/err_ngrok_ship_pool_join_key_already_exists"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_JOIN_KEY_NOT_ALLOWED: The 'join_key' field must not start with 'cp_'","href":"/errors/err_ngrok_ship_pool_join_key_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_KIND_NOT_CONFIGURED: Pool kind KIND is not available in this environment","href":"/errors/err_ngrok_ship_pool_kind_not_configured"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_KIND_SCALE_UNSUPPORTED: Compute pools of kind KIND have no node counts to change","href":"/errors/err_ngrok_ship_pool_kind_scale_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_KIND_UNSUPPORTED: Pool kind KIND is not supported","href":"/errors/err_ngrok_ship_pool_kind_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_LAMBDA_SSH_KEY_CREATE_UNAVAILABLE: Lambda Cloud did not answer the request to create the SSH key: REASON","href":"/errors/err_ngrok_ship_pool_lambda_ssh_key_create_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_LAMBDA_SSH_KEY_NAME_REQUIRED: SSH key name must not be empty","href":"/errors/err_ngrok_ship_pool_lambda_ssh_key_name_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_LAMBDA_SSH_KEY_REFUSED: Lambda Cloud refused the SSH key (HTTP STATUS): REASON","href":"/errors/err_ngrok_ship_pool_lambda_ssh_key_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_LIFECYCLE_SCALE_NOT_ALLOWED: The compute pool is LIFECYCLE","href":"/errors/err_ngrok_ship_pool_lifecycle_scale_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_NODE_POOL_COUNT_OUT_OF_RANGE: The 'node_pools[INDEX].count' field must be 1 to 10, got COUNT","href":"/errors/err_ngrok_ship_pool_node_pool_count_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_NODE_POOL_COUNTS_LENGTH_CONFLICT: The 'node_pool_counts' field must have one entry for each of the WANT node pools, got GOT","href":"/errors/err_ngrok_ship_pool_node_pool_counts_length_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_NODE_POOL_FIELD_REQUIRED: The 'node_pools[INDEX].FIELD field must not be empty","href":"/errors/err_ngrok_ship_pool_node_pool_field_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_NODE_POOL_OS_ID_ILLEGAL_CHARACTER: The 'node_pools[INDEX].os_id' value VALUE must be a whole number","href":"/errors/err_ngrok_ship_pool_node_pool_os_id_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_NODE_POOL_ZONE_CONFLICT: The 'node_pools[INDEX].zone' value ZONE is not in region REGION","href":"/errors/err_ngrok_ship_pool_node_pool_zone_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_NOT_FOUND: No compute pool with the ID ID exists on this account","href":"/errors/err_ngrok_ship_pool_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_PROVIDER_READ_UNAVAILABLE: PROVIDER did not answer the request to OPERATION: REASON","href":"/errors/err_ngrok_ship_pool_provider_read_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_RUNPOD_COMPUTE_TYPE_UNSUPPORTED: The 'compute_type' value VALUE is not supported","href":"/errors/err_ngrok_ship_pool_runpod_compute_type_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_RUNPOD_CPU_FLAVOR_NOT_FOUND: RunPod has no CPU flavor with the ID ID","href":"/errors/err_ngrok_ship_pool_runpod_cpu_flavor_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_RUNPOD_DATA_CENTER_NOT_FOUND: RunPod has no data center with the ID ID","href":"/errors/err_ngrok_ship_pool_runpod_data_center_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_RUNPOD_GPU_TYPE_NOT_FOUND: RunPod has no GPU type with the ID ID","href":"/errors/err_ngrok_ship_pool_runpod_gpu_type_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_SCALE_CONFLICT: The compute pool changed while this request ran","href":"/errors/err_ngrok_ship_pool_scale_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_SCALEWAY_REGION_UNSUPPORTED: The 'region' value REGION is not a Scaleway region","href":"/errors/err_ngrok_ship_pool_scaleway_region_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_POOL_SCALEWAY_ZONE_UNSUPPORTED: The 'zone' value ZONE is not a Scaleway instance zone","href":"/errors/err_ngrok_ship_pool_scaleway_zone_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_PORT_OUT_OF_RANGE: The 'port' field must be 1 to 65535, got PORT","href":"/errors/err_ngrok_ship_port_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_APP_CONFLICT: Publish target ID is used by COUNT apps: NAMES","href":"/errors/err_ngrok_ship_publish_target_app_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_BUILTIN_DELETE_NOT_ALLOWED: The built-in publish target cannot be deleted","href":"/errors/err_ngrok_ship_publish_target_builtin_delete_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_DOCKER_HUB_LOGIN_REFUSED: Docker Hub rejected the push credential of publish target ID (HTTP STATUS)","href":"/errors/err_ngrok_ship_publish_target_docker_hub_login_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_DOCKER_HUB_REPOSITORY_REFUSED: Docker Hub refused to create repository REPOSITORY (HTTP STATUS)","href":"/errors/err_ngrok_ship_publish_target_docker_hub_repository_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_DOCKER_HUB_UNAVAILABLE: Docker Hub did not answer while ngrok prepared repository REPOSITORY: REASON","href":"/errors/err_ngrok_ship_publish_target_docker_hub_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_HOST_NOT_ALLOWED: The 'host' field must be empty for a builtin publish target","href":"/errors/err_ngrok_ship_publish_target_host_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_HOST_UNSUPPORTED: A KIND publish target always publishes to FIXEDHOST","href":"/errors/err_ngrok_ship_publish_target_host_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_KIND_UNSUPPORTED: The 'kind' value KIND is not supported","href":"/errors/err_ngrok_ship_publish_target_kind_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_NOT_FOUND: No publish target with the ID ID exists on this account","href":"/errors/err_ngrok_ship_publish_target_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_PUSH_CREDENTIAL_NOT_FOUND: No registry credential with the ID ID exists on this account","href":"/errors/err_ngrok_ship_publish_target_push_credential_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_PUSH_CREDENTIAL_REQUIRED: A KIND publish target needs a 'push_credential_id'","href":"/errors/err_ngrok_ship_publish_target_push_credential_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_REPOSITORY_PREFIX_BAD_START: Docker Hub namespace PREFIX must start with a lowercase letter or digit","href":"/errors/err_ngrok_ship_publish_target_repository_prefix_bad_start"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_REPOSITORY_PREFIX_ILLEGAL_CHARACTER: Docker Hub namespace PREFIX contains the illegal character CHAR","href":"/errors/err_ngrok_ship_publish_target_repository_prefix_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_REPOSITORY_PREFIX_LENGTH_OUT_OF_RANGE: Docker Hub namespace must be 2 to 255 bytes, got LENGTH bytes","href":"/errors/err_ngrok_ship_publish_target_repository_prefix_length_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_REPOSITORY_PREFIX_NOT_ALLOWED: The 'repository_prefix' field must be empty for a KIND publish target","href":"/errors/err_ngrok_ship_publish_target_repository_prefix_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_PUBLISH_TARGET_REPOSITORY_PREFIX_REQUIRED: The 'repository_prefix' field must not be empty for a KIND publish target","href":"/errors/err_ngrok_ship_publish_target_repository_prefix_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_PULL_REQUEST_TEMPLATE_NOT_FOUND: No pull request template with the ID ID exists on this account","href":"/errors/err_ngrok_ship_pull_request_template_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_CREDENTIAL_ALREADY_EXISTS: A credential for USERNAME at HOST already exists on this account: ID","href":"/errors/err_ngrok_ship_registry_credential_already_exists"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_CREDENTIAL_APP_CONFLICT: Credential ID is the pull credential of COUNT apps: NAMES","href":"/errors/err_ngrok_ship_registry_credential_app_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_CREDENTIAL_NOT_FOUND: No registry credential with the ID ID exists on this account","href":"/errors/err_ngrok_ship_registry_credential_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_CREDENTIAL_PASSWORD_REQUIRED: The 'password' field must not be empty","href":"/errors/err_ngrok_ship_registry_credential_password_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_CREDENTIAL_PUBLISH_TARGET_CONFLICT: Credential ID is the push credential of COUNT publish targets","href":"/errors/err_ngrok_ship_registry_credential_publish_target_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_CREDENTIAL_REFUSED: Registry HOST rejected the credential for user USERNAME","href":"/errors/err_ngrok_ship_registry_credential_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_CREDENTIAL_USERNAME_REQUIRED: The 'username' field must not be empty","href":"/errors/err_ngrok_ship_registry_credential_username_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_HOST_ILLEGAL_CHARACTER: The 'host' value HOST contains the illegal character CHAR","href":"/errors/err_ngrok_ship_registry_host_illegal_character"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_HOST_INVALID: The 'host' value HOST is not a registry host: REASON","href":"/errors/err_ngrok_ship_registry_host_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_REGISTRY_HOST_REQUIRED: The 'host' field must not be empty","href":"/errors/err_ngrok_ship_registry_host_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_RELEASE_FEED_CURSOR_INVALID: The 'cursor' value is not a cursor this feed returned: REASON","href":"/errors/err_ngrok_ship_release_feed_cursor_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_RELEASE_NOT_FOUND: No release with the ID ID exists on this account","href":"/errors/err_ngrok_ship_release_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_COUNT_OUT_OF_RANGE: The 'replica_count' field must be at least 1, got COUNT","href":"/errors/err_ngrok_ship_replica_count_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_ID_REQUIRED: The 'replica_id' field is required","href":"/errors/err_ngrok_ship_replica_id_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_AWS_ACCESS_DENIED: The AWS integration role is not permitted to read replica logs","href":"/errors/err_ngrok_ship_replica_logs_aws_access_denied"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_AWS_UNAVAILABLE: AWS did not answer the replica log read: REASON","href":"/errors/err_ngrok_ship_replica_logs_aws_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_CLOUDWATCH_LOG_GROUP_UNAVAILABLE: The replica's CloudWatch log group is unavailable","href":"/errors/err_ngrok_ship_replica_logs_cloudwatch_log_group_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_CURSOR_INVALID","href":"/errors/err_ngrok_ship_replica_logs_cursor_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_CURSOR_REQUIRED: The 'cursor' field must not be empty when it is the selected position","href":"/errors/err_ngrok_ship_replica_logs_cursor_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_ECS_DEPLOYMENT_UNAVAILABLE: The replica's current ECS deployment is not available yet","href":"/errors/err_ngrok_ship_replica_logs_ecs_deployment_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_INTEGRATION_CREDENTIAL_REFUSED: PROVIDER did not accept the integration's credential, so replica logs cannot be read","href":"/errors/err_ngrok_ship_replica_logs_integration_credential_refused"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_KUBERNETES_POD_UNAVAILABLE: The replica's current Kubernetes Pod is not available yet","href":"/errors/err_ngrok_ship_replica_logs_kubernetes_pod_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_KUBERNETES_RBAC_DENIED: Kubernetes RBAC does not permit reading replica Pod logs","href":"/errors/err_ngrok_ship_replica_logs_kubernetes_rbac_denied"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_KUBERNETES_UNAVAILABLE: The replica's Kubernetes cluster did not answer the log read: REASON","href":"/errors/err_ngrok_ship_replica_logs_kubernetes_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_LIMIT_OUT_OF_RANGE: The 'limit' field must be 1 to MAX, got LIMIT","href":"/errors/err_ngrok_ship_replica_logs_limit_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_PLACEMENT_REQUIRED: The replica has not been placed on a compute pool yet, so it has no logs","href":"/errors/err_ngrok_ship_replica_logs_placement_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_PREVIOUS_CONTAINER_NOT_FOUND: The replica has no terminated container to read logs from","href":"/errors/err_ngrok_ship_replica_logs_previous_container_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_REMOTE_KUBERNETES_UNSUPPORTED: The runner does not provide access to remote Kubernetes logs","href":"/errors/err_ngrok_ship_replica_logs_remote_kubernetes_unsupported"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_REPLICA_GONE: The replica's current RESOURCE no longer exists","href":"/errors/err_ngrok_ship_replica_logs_replica_gone"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_RUNNER_ACCESS_UNAVAILABLE: The replica's runner has not reported its Kubernetes access as ready","href":"/errors/err_ngrok_ship_replica_logs_runner_access_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_RUNPOD_ACCESS_DENIED: The RunPod integration is not permitted to read replica logs","href":"/errors/err_ngrok_ship_replica_logs_runpod_access_denied"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_RUNPOD_RATE_LIMITED: RunPod is temporarily rate limiting replica log reads","href":"/errors/err_ngrok_ship_replica_logs_runpod_rate_limited"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_RUNPOD_RESOURCE_CONFLICT: More than one current RunPod resource matches this replica","href":"/errors/err_ngrok_ship_replica_logs_runpod_resource_conflict"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_RUNPOD_UNAVAILABLE: RunPod did not answer the replica log read: REASON","href":"/errors/err_ngrok_ship_replica_logs_runpod_unavailable"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_TAIL_LINES_LIMIT_EXCEEDED: The 'tail_lines' value TAILLINES must not exceed the 'limit' value LIMIT","href":"/errors/err_ngrok_ship_replica_logs_tail_lines_limit_exceeded"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_LOGS_TAIL_LINES_OUT_OF_RANGE: The 'tail_lines' field must be 0 to MAX, got TAILLINES","href":"/errors/err_ngrok_ship_replica_logs_tail_lines_out_of_range"},{"mode":"wide","title":"ERR_NGROK_SHIP_REPLICA_NOT_FOUND: No replica with the ID ID exists on this account","href":"/errors/err_ngrok_ship_replica_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_ROLLBACK_DEPLOYMENT_ID_REQUIRED: The 'deployment_id' field must not be empty","href":"/errors/err_ngrok_ship_rollback_deployment_id_required"},{"mode":"wide","title":"ERR_NGROK_SHIP_ROLLBACK_DEPLOYMENT_NOT_FOUND: No deployment with the ID ID exists in this environment","href":"/errors/err_ngrok_ship_rollback_deployment_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_ROLLBACK_RELEASE_NOT_FOUND: Deployment ID has no release to roll back to","href":"/errors/err_ngrok_ship_rollback_release_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_ROLLOUT_NOT_FOUND: No rollout with the ID ID exists on this account","href":"/errors/err_ngrok_ship_rollout_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_RUNNER_DECOMMISSION_NOT_ALLOWED: Runner ID runs the whole compute pool, so it cannot be removed on its own","href":"/errors/err_ngrok_ship_runner_decommission_not_allowed"},{"mode":"wide","title":"ERR_NGROK_SHIP_RUNNER_NOT_FOUND: No runner with the ID ID exists on this account","href":"/errors/err_ngrok_ship_runner_not_found"},{"mode":"wide","title":"ERR_NGROK_SHIP_SCHEDULING_POLICY_INVALID: The 'scheduling_policy' expression fails to compile: REASON","href":"/errors/err_ngrok_ship_scheduling_policy_invalid"},{"mode":"wide","title":"ERR_NGROK_SHIP_START_COMMAND_NOT_ALLOWED: The 'start_command' field is not supported for repository apps","href":"/errors/err_ngrok_ship_start_command_not_allowed"},{"mode":"wide","title":"ERR_NGROK_TRAFFIC_INSPECT_CONNECTION_NOT_FOUND: This connection was not found","href":"/errors/err_ngrok_traffic_inspect_connection_not_found"}]}]}]}]},{"item":"Changelogs","anchors":[{"anchor":"Reference","icon":"book-open","pages":[{"group":"ngrok Agent","pages":[{"title":"ngrok Agent Changelog","sidebarTitle":"Changelog","href":"/gateway/agent/changelog"}]},{"group":"Kubernetes Operator","pages":[{"title":"Kubernetes Operator Changelog","sidebarTitle":"Changelog","href":"/gateway/k8s/changelog"}]},{"group":"All Products","pages":[{"title":"ngrok Changelog","sidebarTitle":"Changelog","url":"https://ngrok.com/changelog","href":"/reference/changelog"}]}]}]}]},{"tab":"Pricing","anchors":[{"anchor":"Pricing","icon":"credit-card","pages":[{"title":"Pricing and Limits","href":"/pricing-limits"},{"title":"Free Plan Limits","href":"/pricing-limits/free-plan-limits"},{"title":"Traffic Policy Unit (TPU) Pricing","sidebarTitle":"TPUs","href":"/pricing-limits/traffic-policy-unit-pricing"},{"title":"Pricing Glossary","href":"/pricing-limits/pricing-glossary"}]}]}]},"basePath":"","title":"Edges (Deprecated) - ngrok documentation","buildId":"dpl_eBQnj73Q1gDRVNqNsS3Yt9yPkTEW","deploymentId":"dpl_eBQnj73Q1gDRVNqNsS3Yt9yPkTEW","dynamics":[],"chunks":[]}