Perimeter 81 Gateways API

The Gateways API from Perimeter 81 — 2 operation(s) for gateways.

Operations 3

POST /v2.3/networks/standard/{networkId}/instances Add gateway #
DELETE /v2.3/networks/standard/{networkId}/instances Remove Gateways from Network #
GET /v2.3/networks/standard/{networkId}/instances/{gatewayId} Get Instance of a GW by ID #

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-gateways-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-gateways-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.3.0
  title: Harmony SASE Public Application Gateways 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: Gateways
paths:
  /v2.3/networks/standard/{networkId}/instances:
    post:
      operationId: Standard_NetworksControllerV2_addNetworkInstance
      summary: Add gateway
      description: 'Required permissions: `["network:create"]`<br><br>Add gateway.'
      parameters:
      - name: networkId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInstancesInNetworkPayload'
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncOperationResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '402':
          description: Insufficient licenses
        '403':
          description: Forbidden
        '404':
          description: Network not found
      tags:
      - Gateways
    delete:
      operationId: Standard_NetworksControllerV2_deleteNetworkInstance
      summary: Remove Gateways from Network
      description: 'Required permissions: `["network:update"]`<br><br>Remove Gateways from Network.'
      parameters:
      - name: networkId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveRegionInstance'
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncOperationResult'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Network not found
      tags:
      - Gateways
  /v2.3/networks/standard/{networkId}/instances/{gatewayId}:
    get:
      operationId: Standard_GetInstance
      summary: Get Instance of a GW by ID
      description: 'Required permissions: `["network:read"]`<br><br>Get Gateway.'
      parameters:
      - name: networkId
        required: true
        in: path
        schema:
          type: string
      - name: gatewayId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Completed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkInstance'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Gateway not found
      tags:
      - Gateways
components:
  schemas:
    RemoveRegionInstance:
      properties:
        regions:
          items:
            $ref: '#/components/schemas/RemoveRegionPayload'
          type: array
          description: Region list.
      type: object
      required:
      - regions
    NetworkInstance:
      allOf:
      - $ref: '#/components/schemas/BaseDates'
      - type: object
        properties:
          network:
            type: string
            description: ID of the network.
          region:
            type: string
            description: ID of the network region.
          instanceType:
            type: string
          imageType:
            type: string
          imageVersion:
            type: string
          dns:
            type: string
          ip:
            type: string
          tunnels:
            items:
              $ref: '#/components/schemas/NetworkTunnel'
            type: array
            description: List of network tunnels.
          id:
            type: string
            description: Unique ID.
          tenantId:
            type: string
            description: ID of the tenant.
        required:
        - network
        - region
        - instanceType
        - imageType
        - imageVersion
        - dns
        - ip
        - tunnels
        - id
        - tenantId
    AsyncOperationResult:
      type: object
      properties:
        resource:
          type: string
        statusCode:
          type: integer
        reason:
          items:
            type: string
          type: array
          description: Reasons list.
    NetworkIpsecBase:
      allOf:
      - $ref: '#/components/schemas/IPSecAdvancedSettings'
      - type: object
        properties:
          right:
            $ref: '#/components/schemas/IP'
          rightID:
            oneOf:
            - $ref: '#/components/schemas/IP'
            - type: string
              pattern: ^[a-zA-Z0-9]{3,25}$
          passphrase:
            $ref: '#/components/schemas/Passphrase'
          dpdAction:
            type: string
            description: dpdAction.
          leftSubnets:
            minLength: 1
            uniqueItems: true
            type: array
            items:
              type: string
          rightSubnets:
            minLength: 1
            uniqueItems: true
            type: array
            items:
              type: string
        required:
        - right
        - rightID
        - passphrase
        - dpdAction
        - leftSubnets
        - rightSubnets
        additionalProperties: false
    Lifetime:
      type: string
      pattern: ^((1[0-9]|[2-9][0-9]|[1-9][0-9]{2,3}|[1-7][0-9]{4}|8[0-5][0-9]{3}|86[0-3][0-9]{2}|86400)s)|(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|1[0-3][0-9][0-9]|14[0-3][0-9]|1440)m)|(([1-9]|1[0-9]|2[0-4])h)$
    AsyncOperationResponse:
      type: object
      properties:
        statusUrl:
          type: string
        samplingTime:
          type: integer
    RemoveInstancePayload:
      properties:
        id:
          type: string
    DPDTime:
      type: string
      pattern: ^([5-9]|[1-5][0-9]|60)s$
    IPSecAdvancedSettings:
      type: object
      properties:
        keyExchange:
          type: string
          enum:
          - ikev1
          - ikev2
        ikeLifeTime:
          $ref: '#/components/schemas/Lifetime'
        lifetime:
          $ref: '#/components/schemas/Lifetime'
        dpdDelay:
          $ref: '#/components/schemas/DPDTime'
        dpdTimeout:
          $ref: '#/components/schemas/DPDTime'
        phase1:
          $ref: '#/components/schemas/IPSecPhaseConfig'
        phase2:
          $ref: '#/components/schemas/IPSecPhaseConfig'
      required:
      - keyExchange
      - ikeLifeTime
      - lifetime
      - dpdDelay
      - dpdTimeout
      - phase1
      - phase2
      additionalProperties: false
    IP:
      type: string
      format: ipv4
    RemoveRegionPayload:
      properties:
        regionId:
          type: string
          description: Region ID.
        instances:
          items:
            $ref: '#/components/schemas/RemoveInstancePayload'
          type: array
    NetworkTunnelWireguard:
      allOf:
      - $ref: '#/components/schemas/NetworkTunnelBase'
      - type: object
        properties:
          leftAllowedIP:
            minLength: 1
            uniqueItems: true
            type: array
            items:
              type: string
          leftEndpoint:
            $ref: '#/components/schemas/IP'
          vault:
            type: string
            description: vault.
          requestConfigToken:
            type: string
            description: requestConfigToken.
        required:
        - leftAllowedIP
        - leftEndpoint
        - vault
        - requestConfigToken
        additionalProperties: false
    CreateInstancesInNetworkPayload:
      properties:
        regionId:
          type: string
          description: Region ID.
        idle:
          type: boolean
          default: true
          description: Create the gateway as disabled if true.
      type: object
      required:
      - regionId
      - idle
    IPSecPhaseConfig:
      allOf:
      - $ref: '#/components/schemas/IPSecAlgorithms'
      - $ref: '#/components/schemas/IPSecPhaseCommon'
    NetworkTunnelBase:
      allOf:
      - type: object
        properties:
          id:
            type: string
            description: Unique ID.
          network:
            type: string
            description: ID of the network.
          region:
            type: string
            description: ID of the network region.
          instance:
            type: string
            description: ID of the network instance.
          interfaceName:
            type: string
          type:
            enum:
            - connector
            - ipsec
            - openvpn
            type: string
          isHA:
            type: boolean
            description: Indicates if it's a redundant tunnel.
          tenantId:
            type: string
            description: ID of the tenant.
        required:
        - id
        - network
        - region
        - instance
        - interfaceName
        - type
        - isHA
        - tenantId
        additionalProperties: false
      - $ref: '#/components/schemas/BaseDates'
    Passphrase:
      type: string
      pattern: ^[$a-zA-Z1-9_\/\.][$a-zA-Z0-9_\/\.]{7,101}$
    NetworkTunnelIpsecRedundant:
      allOf:
      - $ref: '#/components/schemas/NetworkTunnelBase'
      - $ref: '#/components/schemas/NetworkIpsecBase'
      - type: object
        properties:
          haTunnelID:
            $ref: '#/components/schemas/NetworkHaTunnelID'
          rightASN:
            $ref: '#/components/schemas/ASN'
          rightPrivateIP:
            $ref: '#/components/schemas/IP'
          leftPrivateIP:
            $ref: '#/components/schemas/IP'
        required:
        - haTunnelID
        - rightASN
        - rightPrivateIP
        - leftPrivateIP
        additionalProperties: false
    IPSecAlgorithms:
      type: object
      properties:
        auth:
          minLength: 1
          uniqueItems: true
          type: array
          items:
            type: string
            enum:
            - md5
            - sha1
            - sha384
            - sha256
            - sha512
            - aesxcbc
            - aescmac
            - prfmd5
            - prfsha1
            - prfaesxcbc
            - prfaescmac
            - prfsha256
            - prfsha384
            - prfsha512
        encryption:
          minLength: 1
          uniqueItems: true
          type: array
          items:
            type: string
            enum:
            - 3des
            - blowfish128
            - blowfish192
            - blowfish256
            - aes128
            - aes192
            - aes256
            - aes128ctr
            - aes192ctr
            - aes256ctr
            - camellia128
            - camellia192
            - camellia256
            - camellia128ctr
            - camellia192ctr
            - camellia256ctr
            - aes128ccm8
            - aes192ccm8
            - aes256ccm8
            - aes128ccm16
            - aes192ccm16
            - aes256ccm16
            - aes128gcm8
            - aes192gcm8
            - aes256gcm8
            - aes128gcm16
            - aes192gcm16
            - aes256gcm16
            - camellia128ccm16
            - camellia192ccm16
            - camellia256ccm16
            - chacha20poly1305
    NetworkTunnelOpenvpn:
      allOf:
      - $ref: '#/components/schemas/NetworkTunnelBase'
      - type: object
        properties:
          passphrase:
            $ref: '#/components/schemas/Passphrase'
          username:
            type: string
            description: Openvpn username.
        required:
        - passphrase
        - username
        additionalProperties: false
    NetworkTunnel:
      anyOf:
      - $ref: '#/components/schemas/NetworkTunnelOpenvpn'
      - $ref: '#/components/schemas/NetworkTunnelWireguard'
      - $ref: '#/components/schemas/NetworkTunnelIpsecSingle'
      - $ref: '#/components/schemas/NetworkTunnelIpsecRedundant'
    NetworkHaTunnelID:
      allOf:
      - $ref: '#/components/schemas/BaseDates'
      - type: object
        properties:
          network:
            type: string
            description: ID of the network.
          tunnels:
            type: array
            items:
              type: string
          type:
            type: string
            pattern: ipsec
          tenantId:
            type: string
            description: tenantId.
          id:
            type: string
            description: id.
        required:
        - network
        - tunnels
        - type
        - tenantId
        - id
        additionalProperties: false
    IPSecPhaseCommon:
      type: object
      properties:
        dh:
          description: Diffie Helman encryption
          minLength: 0
          uniqueItems: true
          type: array
          items:
            type: integer
            enum:
            - 2
            - 5
            - 14
            - 19
            - 20
            - 21
            - 31
      required:
      - auth
      - encryption
      - dh
      additionalProperties: false
    NetworkTunnelIpsecSingle:
      allOf:
      - $ref: '#/components/schemas/NetworkTunnelBase'
      - $ref: '#/components/schemas/NetworkIpsecBase'
    ASN:
      type: integer
      description: Autonomous System Number (ASN) for BGP routing. It will be automatically assigned an ASN once creating the first dynamic tunnel in this network. The network ASN can never be changed once it is set.
      oneOf:
      - minimum: 1
        maximum: 64496
        description: Public ASN range
      - minimum: 64512
        maximum: 65535
        description: Private ASN range (16-bit)
      - minimum: 131072
        maximum: 4294967295
        description: Private ASN range (32-bit)
    BaseDates:
      type: object
      properties:
        createdAt:
          format: date-time
          type: string
          description: The date when this record was created.
        updatedAt:
          format: date-time
          type: string
          description: The date of last update of the record.
      required:
      - createdAt
      additionalProperties: false
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http