{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ngrok documentation","colors":{"primary":"#273FC3","light":"#699AFC","dark":"#699AFC"},"logo":{"light":"https://mintcdn.com/ngrok/uPrboN8usISU3fq0/logo/light.svg?fit=max\u0026auto=format\u0026n=uPrboN8usISU3fq0\u0026q=85\u0026s=6a4a2c8995f8731e1bac3f795a68130d","dark":"https://mintcdn.com/ngrok/uPrboN8usISU3fq0/logo/dark.svg?fit=max\u0026auto=format\u0026n=uPrboN8usISU3fq0\u0026q=85\u0026s=e363c8b6e09a92e726a981e0156ba233","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"}],"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"}},"integrations":{"posthog":{"apiKey":"phc_mUGMN4JlTzthGcz0XNK0z6NKUqdeQMn7rPRAM3mifjQ","apiHost":"https://e.ngrok.com"}},"contextual":{"options":["copy","view","mcp","add-mcp","claude","cursor","vscode","assistant","chatgpt","perplexity","grok","aistudio","devin","windsurf","devin-mcp","download-spec"],"display":"header"},"styling":{"latex":false},"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":""},"chroma":{"liveDeploymentHistoryId":"6ae2544d911be5d0758ab395","collectionId":"491303b3-c16e-4efb-9f3d-8d6390410ff6","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae2544d911be5d0758ab395"},"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":"6ae2544d911be5d0758ab395","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Reference","count":266},{"language":"default","tag":"Gateway","count":242},{"language":"default","tag":"Platform API","count":239},{"language":"default","tag":"Integrations","count":150},{"language":"default","tag":"AI Gateway","count":119},{"language":"default","tag":"Connectivity","count":91},{"language":"default","tag":"Webhooks","count":65},{"language":"default","tag":"Kubernetes Operators","count":58},{"language":"default","tag":"Traffic Policy","count":58},{"language":"default","tag":"Examples","count":46}],"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":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","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:700;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,.8)}.light .tooltip,:root .tooltip,[data-theme=light] .tooltip{color:rgba(0,0,0,.8)}.light .tooltip::after,:root .tooltip::after,[data-theme=light] .tooltip::after{border-bottom-color:rgba(0,0,0,.8)}.dark .tooltip,[data-theme=dark] .tooltip{color:rgba(255,255,255,.8)}.dark .tooltip::after,[data-theme=dark] .tooltip::after{border-bottom-color:rgba(255,255,255,.8)}@media (prefers-color-scheme:light){.tooltip{color:rgba(0,0,0,.8)}.tooltip::after{border-bottom-color:rgba(0,0,0,.8)}}@media (prefers-color-scheme:dark){.tooltip{color:rgba(255,255,255,.8)}.tooltip::after{border-bottom-color:rgba(255,255,255,.8)}}:root td .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 code,td pre{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}td pre{white-space:pre-wrap;min-width:200px}td:has(code),td:has(pre){min-width:240px;width:auto}td code{min-width:150px}@font-face{font-family:\"Roobert\";src:url(https://assets.ngrok.com/fonts/roobert/roobert-proportional-vf.woff2) format(\"woff2 supports variations\"),url(https://assets.ngrok.com/fonts/roobert/roobert-proportional-vf.woff2) 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) format(\"woff2 supports variations\"),url(https://assets.ngrok.com/fonts/jetbrains/jetbrainsmono-wght.woff2) 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) format(\"woff2 supports variations\"),url(https://assets.ngrok.com/fonts/jetbrains/jetbrainsmono-italic-wght.woff2) format(\"woff2-variations\");font-weight:100 800;font-display:swap;font-style:italic}.hljs,.token,code,pre,pre code{font-family:\"JetBrains Mono\",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,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,#topbar-cta-button svg{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,.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,.dark #topbar-cta-button svg,[data-theme=dark] #topbar-cta-button span.text-white,[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}}.nav-tabs-item>div.absolute.bottom-0{height:2px!important}.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(39 63 195 / 35%);--ngrok-consent-shadow: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(105 154 252 / 35%);--ngrok-consent-shadow: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:.75rem;width:fit-content;max-width:100%;padding:.5rem .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,.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:.875rem;line-height:1.25rem}.ngrok-consent-actions{display:flex;align-items:center;gap:.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:.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,.2,1)}.ngrok-consent-icon-button:hover{background-color:var(--ngrok-consent-action-bg-hover)}.ngrok-consent-icon-button:active{transform:scale(.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}"}],"page":{"pagePath":"errors/err_ngrok_7069","slug":"/errors/err_ngrok_7069","pageMetadata":{"mode":"wide","title":"Error 7069","description":"Learn what ERR_NGROK_7069 means, why ngrok returns it, and how to fix it.","keywords":["ERR_NGROK_7069","error 7069"],"href":"/errors/err_ngrok_7069"},"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: \"Learn what ERR_NGROK_7069 means, why ngrok returns it, and how to fix it.\"\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`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`err_ngrok_7069`,children:`ERR_NGROK_7069`}),`\n`,_jsxs(_components.p,{children:[`Duplicate ‘add’ header, `,_jsx(_components.code,{children:`HEADER`}),` was provided twice with different casings: `,_jsx(_components.code,{children:`CASE_ONE`}),` and `,_jsx(_components.code,{children:`CASE_TWO`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`further-help`,children:`Further help`}),`\n`,_jsxs(_components.p,{children:[`If you’re having trouble resolving this error, please reach out to `,_jsx(_components.a,{href:`mailto:support@ngrok.com?subject=Help%20with%20ERR_NGROK_7069`,children:`support@ngrok.com`})]})]})}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":{"config":{},"pageMetadata":{"mode":"wide","title":"Error 7069","description":"Learn what ERR_NGROK_7069 means, why ngrok returns it, and how to fix it.","keywords":["ERR_NGROK_7069","error 7069"],"href":"/errors/err_ngrok_7069"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"ERR_NGROK_7069","slug":"err_ngrok_7069","depth":2,"children":[]},{"title":"Further help","slug":"further-help","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/09633916ed60fa29/definition-wrapper.js","/docs/_mintlify/custom/ngrok/6167f7a3c0c9913f/consent.js"],"subdomain":"ngrok","siteName":"ngrok documentation","title":"Error 7069 - ngrok documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T15:21:22.658Z","originalFileLocation":"errors/err_ngrok_7069.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=\"Learn what ERR_NGROK_7069 means, why ngrok returns it, and how to fix it.\">\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=\"Error 7069 - ngrok documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn what ERR_NGROK_7069 means, why ngrok returns it, and how to fix it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ngrok documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://ngrok.com/docs/errors/err_ngrok_7069\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ngrok.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Error+7069\u0026amp;description=Learn+what+ERR_NGROK_7069+means%2C+why+ngrok+returns+it%2C+and+how+to+fix+it.\u0026amp;theme=dd59335b8ec10833612cbd2f\u0026amp;signature=a90083be4ec0448ce6382b261cf3d5e79ffa610164fb4159febf09df749646fe\">\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=\"Error 7069 - ngrok documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn what ERR_NGROK_7069 means, why ngrok returns it, and how to fix it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ngrok.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Error+7069\u0026amp;description=Learn+what+ERR_NGROK_7069+means%2C+why+ngrok+returns+it%2C+and+how+to+fix+it.\u0026amp;theme=dd59335b8ec10833612cbd2f\u0026amp;signature=a90083be4ec0448ce6382b261cf3d5e79ffa610164fb4159febf09df749646fe\">\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=\"#273FC3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://ngrok.com/docs/errors/err_ngrok_7069\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/errors/err_ngrok_7069.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ngrok documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"ngrok documentation","nav":{"global":null,"tabs":[{"tab":"Start","pages":[{"title":"Get Started with ngrok","mode":"center","href":"/start"}]},{"tab":"Gateway","pages":[{"group":"Getting Started","pages":[{"title":"Gateway Overview","sidebarTitle":"Overview","icon":"house","href":"/gateway/overview"},{"title":"Agent 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","sidebarTitle":"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 Agent 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 Agent CLI and SDK Connectivity","sidebarTitle":"Connectivity","href":"/gateway/agent/connectivity"},{"group":"Agent CLI setup","pages":[{"title":"Install the ngrok Agent 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 Agent 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":"Agent CLI TLS Termination","sidebarTitle":"TLS Termination","href":"/gateway/agent/agent-tls-termination"},{"title":"ngrok Agent CLI Web Inspection Interface","sidebarTitle":"Web Inspection Interface","href":"/gateway/agent/web-inspection-interface"}]},{"group":"Configuration File","pages":[{"title":"ngrok Agent 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 Agent CLI API Commands","sidebarTitle":"CLI API Commands","href":"/gateway/agent/cli-api"},{"title":"ngrok Agent 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 \u0026 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","href":"/gateway/k8s/crds/agentendpoint"},{"title":"CloudEndpoint","href":"/gateway/k8s/crds/cloudendpoint"},{"title":"NgrokTrafficPolicy","href":"/gateway/k8s/crds/ngroktrafficpolicy"},{"title":"BoundEndpoint","href":"/gateway/k8s/crds/boundendpoint"},{"title":"Domain","href":"/gateway/k8s/crds/domain"},{"title":"KubernetesOperator","href":"/gateway/k8s/crds/kubernetesoperator"},{"title":"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":"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":"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/oidc"},{"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 \u0026 Replace Action","sidebarTitle":"Request Body Find \u0026 Replace","href":"/gateway/traffic-policy/actions/request-body-find-replace"},{"title":"Response Body Find \u0026 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":"Coming Soon","href":"/gateway/traffic-policy/actions/saml"},{"title":"Set Vars Action","sidebarTitle":"Set Vars","href":"/gateway/traffic-policy/actions/set-vars"},{"title":"SSE Find \u0026 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":"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":"Events","sidebarTitle":"Overview","href":"/obs/events/index"},{"title":"Event Source Reference","href":"/obs/events/reference"}]}]},{"group":"Network","pages":[{"group":"Domains","pages":[{"title":"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 \u0026 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 \u0026 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","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","pages":[{"title":"AI Gateway Overview","sidebarTitle":"Overview","icon":"house","href":"/ai-gateway/overview"},{"title":"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":"Changelog","icon":"clock-rotate-left","href":"/ai-gateway/changelog"},{"title":"FAQ","icon":"circle-question","href":"/ai-gateway/faq"},{"group":"Concepts","pages":[{"title":"Access Keys","sidebarTitle":"Access Keys","href":"/ai-gateway/concepts/access-keys"},{"title":"Credits","href":"/ai-gateway/concepts/credits"},{"title":"Providers","href":"/ai-gateway/concepts/providers"},{"title":"Models","href":"/ai-gateway/concepts/models"},{"title":"Custom Providers","href":"/ai-gateway/concepts/custom-providers"},{"title":"Bring Your Own Keys","href":"/ai-gateway/concepts/bring-your-own-keys"},{"title":"Firewall","sidebarTitle":"Firewall","href":"/ai-gateway/concepts/firewall"}]},{"group":"Getting Started With","pages":[{"title":"OpenAI","href":"/ai-gateway/providers/openai"},{"title":"Anthropic","href":"/ai-gateway/providers/anthropic"},{"title":"OpenRouter","href":"/ai-gateway/providers/openrouter"},{"title":"Google","href":"/ai-gateway/providers/google"},{"title":"Groq","href":"/ai-gateway/providers/groq"},{"title":"DeepSeek","href":"/ai-gateway/providers/deepseek"},{"title":"xAI","href":"/ai-gateway/providers/xai"},{"title":"Mistral AI","href":"/ai-gateway/providers/mistral"},{"title":"Moonshot AI","href":"/ai-gateway/providers/moonshotai"},{"title":"Z.ai","href":"/ai-gateway/providers/z-ai"},{"title":"QwenCloud","href":"/ai-gateway/providers/qwencloud"},{"title":"MiniMax","href":"/ai-gateway/providers/minimax"},{"title":"Tencent TokenHub","href":"/ai-gateway/providers/tokenhub"},{"title":"Typesafe AI","href":"/ai-gateway/providers/typesafeai"},{"title":"Hyperbolic","href":"/ai-gateway/providers/hyperbolic"},{"title":"InceptionLabs","href":"/ai-gateway/providers/inceptionlabs"},{"title":"Inference.net","href":"/ai-gateway/providers/inference-net"},{"title":"Ollama","sidebarTitle":"Ollama","href":"/ai-gateway/custom-providers/ollama"},{"title":"LM Studio","sidebarTitle":"LM Studio","href":"/ai-gateway/custom-providers/lm-studio"},{"title":"vLLM","sidebarTitle":"vLLM","href":"/ai-gateway/custom-providers/vllm"},{"title":"Azure OpenAI","sidebarTitle":"Azure OpenAI","href":"/ai-gateway/custom-providers/azure-openai"}]},{"group":"SDKs","pages":[{"title":"SDK Integration","sidebarTitle":"Overview","href":"/ai-gateway/sdks/index"},{"title":"OpenAI SDK","sidebarTitle":"OpenAI SDK","href":"/ai-gateway/sdks/openai"},{"title":"Anthropic SDK","sidebarTitle":"Anthropic SDK","href":"/ai-gateway/sdks/anthropic"},{"title":"Google Gen AI SDK","sidebarTitle":"Google Gen AI SDK","href":"/ai-gateway/sdks/google"},{"title":"Vercel AI SDK","sidebarTitle":"Vercel AI SDK","href":"/ai-gateway/sdks/vercel-ai-sdk"},{"title":"TanStack AI","sidebarTitle":"TanStack AI","href":"/ai-gateway/sdks/tanstack-ai"},{"title":"LangChain","sidebarTitle":"LangChain","href":"/ai-gateway/sdks/langchain"},{"title":"Other SDKs","sidebarTitle":"Other SDKs","href":"/ai-gateway/sdks/other"}]},{"group":"Agents","pages":[{"title":"Agents","sidebarTitle":"Overview","href":"/ai-gateway/agents/index"},{"title":"Claude Code","sidebarTitle":"Claude Code","href":"/ai-gateway/agents/claude-code"},{"title":"Codex","sidebarTitle":"Codex","href":"/ai-gateway/agents/codex"},{"title":"Cursor","sidebarTitle":"Cursor","href":"/ai-gateway/agents/cursor"},{"title":"Hermes","sidebarTitle":"Hermes","href":"/ai-gateway/agents/hermes"},{"title":"OpenCode","sidebarTitle":"OpenCode","href":"/ai-gateway/agents/opencode"},{"title":"Pi","sidebarTitle":"Pi","href":"/ai-gateway/agents/pi"},{"title":"Zed","sidebarTitle":"Zed","href":"/ai-gateway/agents/zed"},{"title":"Other agents","sidebarTitle":"Other agents","href":"/ai-gateway/agents/other"}]},{"group":"Guides","pages":[{"title":"Choose how to reach providers","sidebarTitle":"Choose how to reach providers","href":"/ai-gateway/guides/configuring-providers"},{"title":"Pay with credits","sidebarTitle":"Pay with credits","href":"/ai-gateway/guides/pay-with-credits"},{"title":"Bring your own provider key","sidebarTitle":"Bring your own provider key","href":"/ai-gateway/guides/attaching-provider-keys"},{"title":"Use a model you run yourself","sidebarTitle":"Use a model you run yourself","href":"/ai-gateway/guides/use-a-model-you-run-yourself"},{"title":"Choose a model","sidebarTitle":"Choose a model","href":"/ai-gateway/guides/model-selection-strategies"},{"title":"Automatic model selection","sidebarTitle":"Automatic model selection","href":"/ai-gateway/guides/automatic-model-selection"},{"title":"Configure fallback models","sidebarTitle":"Configure fallback models","href":"/ai-gateway/guides/configure-fallback-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","sidebarTitle":"Restrict providers and models","href":"/ai-gateway/guides/restrict-providers-and-models"},{"title":"Set up an access key configuration","sidebarTitle":"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","sidebarTitle":"Configure provider key failover","href":"/ai-gateway/guides/key-selection-failover"},{"title":"Secure your gateway","sidebarTitle":"Secure your gateway","href":"/ai-gateway/guides/securing-endpoints"},{"title":"Configure account settings","sidebarTitle":"Configure account settings","href":"/ai-gateway/guides/account-settings"},{"title":"Handle gateway errors","sidebarTitle":"Handle gateway errors","href":"/ai-gateway/guides/error-handling"},{"title":"Debug failed requests","sidebarTitle":"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":"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","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":"Authentication","sidebarTitle":"Authentication","href":"/share-localhost/auth"},{"title":"Network Security","sidebarTitle":"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","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","pages":[{"title":"ngrok for AI Agents","sidebarTitle":"Overview","href":"/for-agents"},{"title":"ngrok MCP Server","sidebarTitle":"MCP server","href":"/mcp-server/index"},{"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","pages":[{"title":"Integrations Hub","mode":"wide","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":"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 (MAMP, WAMP, etc)","sidebarTitle":"Virtual hosts (MAMP, WAMP, etc)","href":"/using-ngrok-with/virtualHosts"},{"title":"Using ngrok with gRPC","sidebarTitle":"gRPC","href":"/using-ngrok-with/gRPC"}]}]},{"tab":"Reference","menu":[{"item":"Platform API","pages":[{"title":"ngrok API Overview","sidebarTitle":"Overview","href":"/api"},{"title":"API Filtering","sidebarTitle":"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"}]},{"title":"Service Users (Bot Users)","href":"/api-reference/service-users"}]},{"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"}]}]},{"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":"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":"AIGatewayProviderKeys","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ai_gateway_provider_keys","href":"/api-reference/aigatewayproviderkeys/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ai_gateway_provider_keys","href":"/api-reference/aigatewayproviderkeys/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ai_gateway_provider_keys/{id}","href":"/api-reference/aigatewayproviderkeys/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ai_gateway_provider_keys/{id}","href":"/api-reference/aigatewayproviderkeys/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ai_gateway_provider_keys/{id}","href":"/api-reference/aigatewayproviderkeys/update"}]},{"group":"AIGatewayAPIKeys","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ai_gateway_api_keys","href":"/api-reference/aigatewayapikeys/list"},{"title":"Create","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml post /ai_gateway_api_keys","href":"/api-reference/aigatewayapikeys/create"},{"title":"Get","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml get /ai_gateway_api_keys/{id}","href":"/api-reference/aigatewayapikeys/get"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml delete /ai_gateway_api_keys/{id}","href":"/api-reference/aigatewayapikeys/delete"},{"title":"Update","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /ai_gateway_api_keys/{id}","href":"/api-reference/aigatewayapikeys/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","pages":[{"title":"ngrok Agent CLI API","sidebarTitle":"API","href":"/gateway/agent/api"}]},{"item":"Agent CLI","pages":[{"title":"ngrok Agent Command Line Interface (CLI)","sidebarTitle":"CLI","href":"/gateway/agent/cli"},{"title":"ngrok Agent CLI API Commands","sidebarTitle":"CLI API Commands","href":"/gateway/agent/cli-api"}]},{"item":"Agent Config File","pages":[{"title":"ngrok Agent 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":"Agent SDKs","pages":[{"title":"Agent 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"}]},{"item":"Errors","pages":[{"title":"Errors","href":"/errors"},{"title":"Errors Reference","href":"/errors/reference"}]},{"item":"Changelogs","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":"AI Gateway","pages":[{"title":"Changelog","icon":"clock-rotate-left","href":"/ai-gateway/changelog"}]}]}]},{"tab":"Pricing","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","sidebarTitle":"Pricing Glossary","href":"/pricing-limits/pricing-glossary"}]},{"tab":"About","pages":[{"title":"What is ngrok?","sidebarTitle":"What is ngrok?","href":"/about"},{"title":"FAQ","href":"/faq/index"},{"title":"Glossary of Terms","sidebarTitle":"Glossary","href":"/glossary"}]}]},"title":"Error 7069 - ngrok documentation","buildId":"dpl_AUojGTPodKNPTVaxVPcxnNvkSVqo","deploymentId":"dpl_AUojGTPodKNPTVaxVPcxnNvkSVqo","dynamics":[],"chunks":[]}