ngrok Backends API

Backends define how traffic is handled, including tunnel group, weighted, failover, HTTP response, and static address backends.

Operations 25

POST /backends/tunnel_group Ngrok Create Tunnel Group Backend #
GET /backends/tunnel_group Ngrok List Tunnel Group Backends #
GET /backends/tunnel_group/{id} Ngrok Get Tunnel Group Backend #
PATCH /backends/tunnel_group/{id} Ngrok Update Tunnel Group Backend #
DELETE /backends/tunnel_group/{id} Ngrok Delete Tunnel Group Backend #
POST /backends/weighted Ngrok Create Weighted Backend #
GET /backends/weighted Ngrok List Weighted Backends #
GET /backends/weighted/{id} Ngrok Get Weighted Backend #
PATCH /backends/weighted/{id} Ngrok Update Weighted Backend #
DELETE /backends/weighted/{id} Ngrok Delete Weighted Backend #
POST /backends/failover Ngrok Create Failover Backend #
GET /backends/failover Ngrok List Failover Backends #
GET /backends/failover/{id} Ngrok Get Failover Backend #
PATCH /backends/failover/{id} Ngrok Update Failover Backend #
DELETE /backends/failover/{id} Ngrok Delete Failover Backend #
POST /backends/http_response Ngrok Create HTTP Response Backend #
GET /backends/http_response Ngrok List HTTP Response Backends #
GET /backends/http_response/{id} Ngrok Get HTTP Response Backend #
PATCH /backends/http_response/{id} Ngrok Update HTTP Response Backend #
DELETE /backends/http_response/{id} Ngrok Delete HTTP Response Backend #
POST /backends/static_address Ngrok Create Static Address Backend #
GET /backends/static_address Ngrok List Static Address Backends #
GET /backends/static_address/{id} Ngrok Get Static Address Backend #
PATCH /backends/static_address/{id} Ngrok Update Static Address Backend #
DELETE /backends/static_address/{id} Ngrok Delete Static Address Backend #

Documentation

Specifications

SDKs

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ngrok-backends-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ngrok-backends-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ngrok Abuse Reports Backends API
  description: The ngrok API provides programmatic access to all of ngrok's resources. The API is REST-ish. It follows most of the conventions of a REST API but diverges slightly when the REST model does not fit well. The API listens only on port 443 to help avoid any accidental unencrypted requests. All API access requires an API key.
  version: 2.0.0
  contact:
    name: Ngrok
    url: https://ngrok.com
  license:
    name: Proprietary
    url: https://ngrok.com/tos
servers:
- url: https://api.ngrok.com
  description: Ngrok API Production Server
security:
- bearerAuth: []
- apiKeyAuth: []
tags:
- name: Backends
  description: Backends define how traffic is handled, including tunnel group, weighted, failover, HTTP response, and static address backends.
paths:
  /backends/tunnel_group:
    post:
      operationId: createTunnelGroupBackend
      summary: Ngrok Create Tunnel Group Backend
      description: Create a new Tunnel Group backend.
      tags:
      - Backends
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                labels:
                  type: object
                  additionalProperties:
                    type: string
                  description: Labels to watch for tunnels on this backend.
      responses:
        '201':
          description: Tunnel group backend created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TunnelGroupBackend'
    get:
      operationId: listTunnelGroupBackends
      summary: Ngrok List Tunnel Group Backends
      description: List all Tunnel Group backends on this account.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/BeforeId'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: List of tunnel group backends.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TunnelGroupBackendList'
  /backends/tunnel_group/{id}:
    get:
      operationId: getTunnelGroupBackend
      summary: Ngrok Get Tunnel Group Backend
      description: Get a Tunnel Group backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: Tunnel group backend details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TunnelGroupBackend'
    patch:
      operationId: updateTunnelGroupBackend
      summary: Ngrok Update Tunnel Group Backend
      description: Update a Tunnel Group backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                labels:
                  type: object
                  additionalProperties:
                    type: string
      responses:
        '200':
          description: Tunnel group backend updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TunnelGroupBackend'
    delete:
      operationId: deleteTunnelGroupBackend
      summary: Ngrok Delete Tunnel Group Backend
      description: Delete a Tunnel Group backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '204':
          description: Tunnel group backend deleted.
  /backends/weighted:
    post:
      operationId: createWeightedBackend
      summary: Ngrok Create Weighted Backend
      description: Create a new Weighted backend.
      tags:
      - Backends
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                backends:
                  type: object
                  additionalProperties:
                    type: integer
                  description: Map of backend ID to weight.
      responses:
        '201':
          description: Weighted backend created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WeightedBackend'
    get:
      operationId: listWeightedBackends
      summary: Ngrok List Weighted Backends
      description: List all Weighted backends on this account.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/BeforeId'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: List of weighted backends.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WeightedBackendList'
  /backends/weighted/{id}:
    get:
      operationId: getWeightedBackend
      summary: Ngrok Get Weighted Backend
      description: Get a Weighted backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: Weighted backend details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WeightedBackend'
    patch:
      operationId: updateWeightedBackend
      summary: Ngrok Update Weighted Backend
      description: Update a Weighted backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                backends:
                  type: object
                  additionalProperties:
                    type: integer
      responses:
        '200':
          description: Weighted backend updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WeightedBackend'
    delete:
      operationId: deleteWeightedBackend
      summary: Ngrok Delete Weighted Backend
      description: Delete a Weighted backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '204':
          description: Weighted backend deleted.
  /backends/failover:
    post:
      operationId: createFailoverBackend
      summary: Ngrok Create Failover Backend
      description: Create a new Failover backend.
      tags:
      - Backends
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                backends:
                  type: array
                  items:
                    type: string
                  description: The IDs of the backends in order of failover priority.
      responses:
        '201':
          description: Failover backend created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailoverBackend'
    get:
      operationId: listFailoverBackends
      summary: Ngrok List Failover Backends
      description: List all Failover backends on this account.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/BeforeId'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: List of failover backends.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailoverBackendList'
  /backends/failover/{id}:
    get:
      operationId: getFailoverBackend
      summary: Ngrok Get Failover Backend
      description: Get a Failover backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: Failover backend details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailoverBackend'
    patch:
      operationId: updateFailoverBackend
      summary: Ngrok Update Failover Backend
      description: Update a Failover backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                backends:
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: Failover backend updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailoverBackend'
    delete:
      operationId: deleteFailoverBackend
      summary: Ngrok Delete Failover Backend
      description: Delete a Failover backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '204':
          description: Failover backend deleted.
  /backends/http_response:
    post:
      operationId: createHttpResponseBackend
      summary: Ngrok Create HTTP Response Backend
      description: Create a new HTTP Response backend that returns a static response.
      tags:
      - Backends
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                body:
                  type: string
                  description: The response body to return.
                headers:
                  type: object
                  additionalProperties:
                    type: string
                  description: Headers to include in the response.
                status_code:
                  type: integer
                  description: The HTTP status code to return.
      responses:
        '201':
          description: HTTP response backend created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResponseBackend'
    get:
      operationId: listHttpResponseBackends
      summary: Ngrok List HTTP Response Backends
      description: List all HTTP Response backends on this account.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/BeforeId'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: List of HTTP response backends.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResponseBackendList'
  /backends/http_response/{id}:
    get:
      operationId: getHttpResponseBackend
      summary: Ngrok Get HTTP Response Backend
      description: Get an HTTP Response backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: HTTP response backend details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResponseBackend'
    patch:
      operationId: updateHttpResponseBackend
      summary: Ngrok Update HTTP Response Backend
      description: Update an HTTP Response backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                body:
                  type: string
                headers:
                  type: object
                  additionalProperties:
                    type: string
                status_code:
                  type: integer
      responses:
        '200':
          description: HTTP response backend updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResponseBackend'
    delete:
      operationId: deleteHttpResponseBackend
      summary: Ngrok Delete HTTP Response Backend
      description: Delete an HTTP Response backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '204':
          description: HTTP response backend deleted.
  /backends/static_address:
    post:
      operationId: createStaticAddressBackend
      summary: Ngrok Create Static Address Backend
      description: Create a new Static Address backend.
      tags:
      - Backends
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                address:
                  type: string
                  description: The address to forward traffic to.
                tls:
                  type: object
                  properties:
                    enabled:
                      type: boolean
      responses:
        '201':
          description: Static address backend created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaticAddressBackend'
    get:
      operationId: listStaticAddressBackends
      summary: Ngrok List Static Address Backends
      description: List all Static Address backends on this account.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/BeforeId'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: List of static address backends.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaticAddressBackendList'
  /backends/static_address/{id}:
    get:
      operationId: getStaticAddressBackend
      summary: Ngrok Get Static Address Backend
      description: Get a Static Address backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: Static address backend details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaticAddressBackend'
    patch:
      operationId: updateStaticAddressBackend
      summary: Ngrok Update Static Address Backend
      description: Update a Static Address backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                metadata:
                  type: string
                address:
                  type: string
      responses:
        '200':
          description: Static address backend updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaticAddressBackend'
    delete:
      operationId: deleteStaticAddressBackend
      summary: Ngrok Delete Static Address Backend
      description: Delete a Static Address backend by ID.
      tags:
      - Backends
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '204':
          description: Static address backend deleted.
components:
  parameters:
    Id:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: A unique identifier for the resource.
    BeforeId:
      name: before_id
      in: query
      required: false
      schema:
        type: string
      description: An ID to use for pagination. Results returned will be before this ID.
    Limit:
      name: limit
      in: query
      required: false
      schema:
        type: string
      description: The maximum number of results to return. Maximum is 100.
  schemas:
    TunnelGroupBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/TunnelGroupBackend'
        uri:
          type: string
        next_page_uri:
          type: string
    TunnelGroupBackend:
      type: object
      properties:
        id:
          type: string
        uri:
          type: string
        created_at:
          type: string
          format: date-time
        description:
          type: string
        metadata:
          type: string
        labels:
          type: object
          additionalProperties:
            type: string
        tunnels:
          type: array
          items:
            $ref: '#/components/schemas/Ref'
    StaticAddressBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/StaticAddressBackend'
        uri:
          type: string
        next_page_uri:
          type: string
    StaticAddressBackend:
      type: object
      properties:
        id:
          type: string
        uri:
          type: string
        created_at:
          type: string
          format: date-time
        description:
          type: string
        metadata:
          type: string
        address:
          type: string
        tls:
          type: object
    FailoverBackend:
      type: object
      properties:
        id:
          type: string
        uri:
          type: string
        created_at:
          type: string
          format: date-time
        description:
          type: string
        metadata:
          type: string
        backends:
          type: array
          items:
            type: string
    WeightedBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/WeightedBackend'
        uri:
          type: string
        next_page_uri:
          type: string
    HttpResponseBackend:
      type: object
      properties:
        id:
          type: string
        uri:
          type: string
        created_at:
          type: string
          format: date-time
        description:
          type: string
        metadata:
          type: string
        body:
          type: string
        headers:
          type: object
          additionalProperties:
            type: string
        status_code:
          type: integer
    FailoverBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/FailoverBackend'
        uri:
          type: string
        next_page_uri:
          type: string
    Ref:
      type: object
      properties:
        id:
          type: string
          description: A resource identifier.
        uri:
          type: string
          description: A URI for locating a resource.
    WeightedBackend:
      type: object
      properties:
        id:
          type: string
        uri:
          type: string
        created_at:
          type: string
          format: date-time
        description:
          type: string
        metadata:
          type: string
        backends:
          type: object
          additionalProperties:
            type: integer
    HttpResponseBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/HttpResponseBackend'
        uri:
          type: string
        next_page_uri:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Use an ngrok API key as a Bearer token. Create API keys from the ngrok dashboard or via the API Keys endpoints.
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Pass the API key in the Authorization header prefixed with 'Bearer '.