ngrok Backends API

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

Documentation

Specifications

SDKs

Schemas & Data

Other Resources

OpenAPI Specification

ngrok-backends-api-openapi.yml Raw ↑
openapi: 3.1.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:
  schemas:
    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
    StaticAddressBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/StaticAddressBackend'
        uri:
          type: string
        next_page_uri:
          type: string
    HttpResponseBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/HttpResponseBackend'
        uri:
          type: string
        next_page_uri:
          type: string
    TunnelGroupBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/TunnelGroupBackend'
        uri:
          type: string
        next_page_uri:
          type: string
    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
    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
    WeightedBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/WeightedBackend'
        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.
    FailoverBackendList:
      type: object
      properties:
        backends:
          type: array
          items:
            $ref: '#/components/schemas/FailoverBackend'
        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'
    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
  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.
  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 '.