Perimeter 81 Enhanced Route Tables API

The Enhanced Route Tables API allows you to manage and configure enhanced route tables of static and dynamic tunnels.

Operations 6

GET /v2.3/networks/enhanced/{networkId}/route-table Get route table #
POST /v2.3/networks/enhanced/{networkId}/route-table/static Create static route #
POST /v2.3/networks/enhanced/{networkId}/route-table/dynamic Create dynamic route #
GET /v2.3/networks/enhanced/{networkId}/route-table/{routeId} Get route entry #
PUT /v2.3/networks/enhanced/{networkId}/route-table/{routeId} Update route entry #
DELETE /v2.3/networks/enhanced/{networkId}/route-table/{routeId} Delete route entry #

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/perimeter-81-enhanced-route-tables-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

perimeter-81-enhanced-route-tables-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.3.0
  title: Harmony SASE Public Application Enhanced Route Tables API
  description: 'The YAML for Harmony SASE Public API.

    '
  contact: {}
servers:
- description: SwaggerHub API Auto Mocking
  url: https://virtserver.swaggerhub.com/perimeter81/public-api-yaml/1.0.0
- description: Harmony SASE API US
  url: https://api.perimeter81.com/api/rest
- description: Harmony SASE API EU
  url: https://api.eu.sase.checkpoint.com/api/rest
- description: Harmony SASE API Australia
  url: https://api.au.sase.checkpoint.com/api/rest
- description: Harmony SASE API India
  url: https://api.in.sase.checkpoint.com/api/rest
security:
- bearer: []
tags:
- name: Enhanced Route Tables
  description: 'The Enhanced Route Tables API allows you to manage and configure enhanced route tables of static and dynamic tunnels.

    '
paths:
  /v2.3/networks/enhanced/{networkId}/route-table:
    get:
      tags:
      - Enhanced Route Tables
      summary: Get route table
      description: Get the complete route table for an enhanced network
      operationId: getEnhancedRouteTable
      parameters:
      - $ref: '#/components/parameters/networkId'
      - name: page
        in: query
        required: false
        description: Specifies the current page of the paginated result set
        schema:
          type: integer
      - name: limit
        in: query
        required: false
        description: Defines the number of results per page
        schema:
          type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/EnhancedRouteTable'
                  itemsTotal:
                    type: number
                  page:
                    type: number
                  totalPage:
                    type: number
                required:
                - data
                - itemsTotal
                - page
                - totalPage
        '401':
          $ref: '#/components/responses/401_Unauthorized'
        '403':
          $ref: '#/components/responses/403_Forbidden'
        '404':
          $ref: '#/components/responses/404_NotFound'
  /v2.3/networks/enhanced/{networkId}/route-table/static:
    post:
      tags:
      - Enhanced Route Tables
      summary: Create static route
      description: Create a new static route entry. The selected static tunnel must not already have a route table.
      operationId: createStaticRoute
      parameters:
      - $ref: '#/components/parameters/networkId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnhancedRouteTableStaticCreate'
      responses:
        '202':
          $ref: '#/components/responses/202_Accepted'
        '400':
          $ref: '#/components/responses/400_BadRequest'
        '401':
          $ref: '#/components/responses/401_Unauthorized'
        '403':
          $ref: '#/components/responses/403_Forbidden'
        '404':
          $ref: '#/components/responses/404_NotFound'
  /v2.3/networks/enhanced/{networkId}/route-table/dynamic:
    post:
      tags:
      - Enhanced Route Tables
      summary: Create dynamic route
      description: Create a new dynamic route entry. The selected dynamic tunnel must not already have a route table.
      operationId: createDynamicRoute
      parameters:
      - $ref: '#/components/parameters/networkId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnhancedRouteTableDynamicCreate'
      responses:
        '202':
          $ref: '#/components/responses/202_Accepted'
        '400':
          $ref: '#/components/responses/400_BadRequest'
        '401':
          $ref: '#/components/responses/401_Unauthorized'
        '403':
          $ref: '#/components/responses/403_Forbidden'
        '404':
          $ref: '#/components/responses/404_NotFound'
  /v2.3/networks/enhanced/{networkId}/route-table/{routeId}:
    get:
      tags:
      - Enhanced Route Tables
      summary: Get route entry
      description: Get a specific route entry
      operationId: getRouteEntry
      parameters:
      - $ref: '#/components/parameters/networkId'
      - $ref: '#/components/parameters/routeId'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnhancedRouteTable'
        '401':
          $ref: '#/components/responses/401_Unauthorized'
        '403':
          $ref: '#/components/responses/403_Forbidden'
        '404':
          $ref: '#/components/responses/404_NotFound'
    put:
      tags:
      - Enhanced Route Tables
      summary: Update route entry
      description: Update a specific route entry. Only non-propagated route tables can be edited.
      operationId: updateRouteEntry
      parameters:
      - $ref: '#/components/parameters/networkId'
      - $ref: '#/components/parameters/routeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouteTableUpdate'
      responses:
        '202':
          $ref: '#/components/responses/202_Accepted'
        '400':
          $ref: '#/components/responses/400_BadRequest'
        '401':
          $ref: '#/components/responses/401_Unauthorized'
        '403':
          $ref: '#/components/responses/403_Forbidden'
        '404':
          $ref: '#/components/responses/404_NotFound'
    delete:
      tags:
      - Enhanced Route Tables
      summary: Delete route entry
      description: Delete a specific route entry. Only non-propagated route tables can be deleted.
      operationId: deleteRouteEntry
      parameters:
      - $ref: '#/components/parameters/networkId'
      - $ref: '#/components/parameters/routeId'
      responses:
        '202':
          $ref: '#/components/responses/202_Accepted'
        '401':
          $ref: '#/components/responses/401_Unauthorized'
        '403':
          $ref: '#/components/responses/403_Forbidden'
        '404':
          $ref: '#/components/responses/404_NotFound'
components:
  schemas:
    AsyncOperationResponse:
      type: object
      properties:
        statusUrl:
          type: string
        samplingTime:
          type: integer
    EnhancedRouteTableDynamicCreate:
      type: object
      properties:
        tunnelIds:
          type: array
          items:
            type: string
          minItems: 1
          uniqueItems: true
          description: All IDs of dynamic tunnels
        subnets:
          type: array
          items:
            type: string
          minItems: 1
          uniqueItems: true
          description: List of subnet CIDR blocks
      required:
      - tunnelIds
      - subnets
    EnhancedRouteTableStaticCreate:
      type: object
      properties:
        tunnelId:
          type: string
          description: Static tunnel ID
        subnets:
          type: array
          items:
            type: string
          minItems: 1
          uniqueItems: true
          description: List of subnet CIDR blocks
      required:
      - tunnelId
      - subnets
    RouteTableUpdate:
      type: object
      properties:
        subnets:
          type: array
          items:
            type: string
          minItems: 1
          uniqueItems: true
          description: List of subnet CIDR blocks
      required:
      - subnets
    EnhancedRouteTable:
      type: object
      properties:
        id:
          type: string
          description: Route table entry ID
        tunnelIds:
          type: array
          items:
            type: string
          minItems: 1
          description: List of tunnels ID
        subnets:
          type: array
          items:
            type: string
          minItems: 1
          description: List of subnet CIDR blocks
        propagated:
          type: boolean
          description: Whether the route is propagated automatically
          default: false
      required:
      - id
      - tunnelIds
      - subnets
      - propagated
    Error:
      type: object
      properties:
        id:
          type: string
        message:
          type: string
  parameters:
    routeId:
      name: routeId
      in: path
      required: true
      schema:
        type: string
    networkId:
      name: networkId
      in: path
      required: true
      schema:
        type: string
  responses:
    400_BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    401_Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    404_NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    403_Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    202_Accepted:
      description: Request accepted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AsyncOperationResponse'
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http