Juniper Networks Sites Devices - Wired API

API Calls specific to the Juniper Switches managed by Mist

Business capability
IT Infrastructure Management BC-600.50

Operations 2

DELETE /api/v1/sites/{site_id}/devices/{device_id}/local_port_config deleteSiteLocalSwitchPortConfig #
PUT /api/v1/sites/{site_id}/devices/{device_id}/local_port_config updateSiteLocalSwitchPortConfig #

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/juniper:juniper-sites-devices-wired-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

juniper-sites-devices-wired-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mist Sites Devices - Wired API
  description: '> Version: **2607.1.1**

    >

    > Date: **August 17, 2026**


    NOTE:

    Some important API changes will be introduced.'
  contact:
    name: Thomas Munzer
    email: tmunzer@juniper.net
  version: 2607.1.1
servers:
- url: https://api.mist.com
  variables: {}
- url: https://api.gc1.mist.com
  variables: {}
- url: https://api.ac2.mist.com
  variables: {}
- url: https://api.gc2.mist.com
  variables: {}
- url: https://api.gc4.mist.com
  variables: {}
- url: https://api.eu.mist.com
  variables: {}
- url: https://api.gc3.mist.com
  variables: {}
- url: https://api.ac6.mist.com
  variables: {}
- url: https://api.gc6.mist.com
  variables: {}
- url: https://api.ac5.mist.com
  variables: {}
- url: https://api.gc5.mist.com
  variables: {}
- url: https://api.gc7.mist.com
  variables: {}
security:
- apiToken: []
- csrfToken: []
tags:
- name: Sites Devices - Wired
  description: API Calls specific to the Juniper Switches managed by Mist
paths:
  /api/v1/sites/{site_id}/devices/{device_id}/local_port_config:
    parameters: []
    delete:
      tags:
      - Sites Devices - Wired
      summary: deleteSiteLocalSwitchPortConfig
      description: 'API Calls delete all the existing port config local overrides, and reapply the configured planed at the device level

        (with site / template heritance).'
      operationId: deleteSiteLocalSwitchPortConfig
      parameters:
      - name: site_id
        in: path
        description: ''
        required: true
        schema:
          type: string
          contentEncoding: uuid
          examples:
          - 000000ab-00ab-00ab-00ab-0000000000ab
      - name: device_id
        in: path
        description: ''
        required: true
        schema:
          type: string
          contentEncoding: uuid
          examples:
          - 000000ab-00ab-00ab-00ab-0000000000ab
      responses:
        '200':
          description: OK
          headers: {}
          content: {}
        '400':
          description: Bad Syntax
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http400'
                - description: Standard HTTP 400 bad request error response
                  examples:
                  - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http400'
                - description: Standard HTTP 400 bad request error response
                  examples:
                  - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
        '401':
          description: Unauthorized
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http401'
                - description: Standard HTTP 401 authentication error response
                  examples:
                  - detail: Authentication credentials were not provided.
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    detail: Authentication credentials were not provided.
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http401'
                - description: Standard HTTP 401 authentication error response
                  examples:
                  - detail: Authentication credentials were not provided.
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    detail: Authentication credentials were not provided.
        '403':
          description: Permission Denied
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http403'
                - description: Standard HTTP 403 permission error response
                  examples:
                  - detail: You do not have permission to perform this action.
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    detail: You do not have permission to perform this action.
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http403'
                - description: Standard HTTP 403 permission error response
                  examples:
                  - detail: You do not have permission to perform this action.
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http404'
                - description: Standard HTTP 404 not found error response
                contentMediaType: application/json
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http404'
                - description: Standard HTTP 404 not found error response
                contentMediaType: application/vnd.api+json
        '429':
          description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http429'
                - description: Standard HTTP 429 rate limit error response
                  examples:
                  - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http429'
                - description: Standard HTTP 429 rate limit error response
                  examples:
                  - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
      deprecated: false
    put:
      tags:
      - Sites Devices - Wired
      summary: updateSiteLocalSwitchPortConfig
      description: 'API Calls to add port config local overrides. This can be used by Switch Port Operators or Helpdesk administrators

        to change a Switch Port configuration without having to change the switch configuration.


        The local overrides configured for the switchports with `no_local_overwrite`==`true` won''t be applied to the switch configuration.


        > NOTE:

        >

        > When using the API Call, it is required to put send all overrides in the PUT request Payload, even the existing once.

        >

        > The current overrides can be retrieved with the API Call Get Site Device. The local overrides will show up separately from the `port_config` in the `local_port_config` so it can be easily identified (and cleared)'
      operationId: updateSiteLocalSwitchPortConfig
      parameters:
      - name: site_id
        in: path
        description: ''
        required: true
        schema:
          type: string
          contentEncoding: uuid
          examples:
          - 000000ab-00ab-00ab-00ab-0000000000ab
      - name: device_id
        in: path
        description: ''
        required: true
        schema:
          type: string
          contentEncoding: uuid
          examples:
          - 000000ab-00ab-00ab-00ab-0000000000ab
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/junos_local_port_config'
              examples:
              - ge-0/0/0-1:
                  poe_disabled: true
                  usage: iot
              contentMediaType: application/json
            examples:
              Example:
                value:
                  ge-0/0/0-1:
                    poe_disabled: true
                    usage: iot
        required: false
      responses:
        '200':
          description: OK
          headers: {}
          content: {}
        '400':
          description: Bad Syntax
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http400'
                - description: Standard HTTP 400 bad request error response
                  examples:
                  - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http400'
                - description: Standard HTTP 400 bad request error response
                  examples:
                  - detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
        '401':
          description: Unauthorized
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http401'
                - description: Standard HTTP 401 authentication error response
                  examples:
                  - detail: Authentication credentials were not provided.
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    detail: Authentication credentials were not provided.
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http401'
                - description: Standard HTTP 401 authentication error response
                  examples:
                  - detail: Authentication credentials were not provided.
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    detail: Authentication credentials were not provided.
        '403':
          description: Permission Denied
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http403'
                - description: Standard HTTP 403 permission error response
                  examples:
                  - detail: You do not have permission to perform this action.
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    detail: You do not have permission to perform this action.
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http403'
                - description: Standard HTTP 403 permission error response
                  examples:
                  - detail: You do not have permission to perform this action.
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http404'
                - description: Standard HTTP 404 not found error response
                contentMediaType: application/json
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http404'
                - description: Standard HTTP 404 not found error response
                contentMediaType: application/vnd.api+json
        '429':
          description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http429'
                - description: Standard HTTP 429 rate limit error response
                  examples:
                  - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
                contentMediaType: application/json
              examples:
                Example:
                  value:
                    detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/response_http429'
                - description: Standard HTTP 429 rate limit error response
                  examples:
                  - detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
                contentMediaType: application/vnd.api+json
              examples:
                Example:
                  value:
                    detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
      deprecated: false
components:
  schemas:
    response_http403:
      title: response_http403
      type: object
      properties:
        detail:
          type: string
          description: Human-readable explanation of the permission error
          examples:
          - You do not have permission to perform this action.
      description: Standard HTTP 403 permission error response
    switch_port_local_usage_mode2:
      title: switch_port_local_usage_mode2
      enum:
      - access
      - inet
      - trunk
      type: string
      description: 'Switching mode for this local port configuration. enum: `access`, `inet`, `trunk`.'
    junos_port_config_speed3:
      title: junos_port_config_speed3
      enum:
      - 10m
      - 100m
      - 1g
      - 2.5g
      - 5g
      - 10g
      - 25g
      - 40g
      - 100g
      - auto
      type: string
      description: 'Link speed for this local port configuration. enum: `10m`, `100m`, `1g`, `2.5g`, `5g`, `10g`, `25g`, `40g`, `100g`, `auto`.'
    response_http400:
      title: response_http400
      type: object
      properties:
        detail:
          type: string
          description: Human-readable explanation of the bad request error
          examples:
          - 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
      description: Standard HTTP 400 bad request error response
    switch_port_local_usage_storm_control:
      title: switch_port_local_usage_storm_control
      type: object
      properties:
        disable_port:
          type: boolean
          description: Whether to disable the port when storm control is triggered
          default: false
        no_broadcast:
          type: boolean
          description: Whether to disable storm control on broadcast traffic
          default: false
        no_multicast:
          type: boolean
          description: Whether to disable storm control on multicast traffic
          default: false
        no_registered_multicast:
          type: boolean
          description: Whether to disable storm control on registered multicast traffic
          default: false
        no_unknown_unicast:
          type: boolean
          description: Whether to disable storm control on unknown unicast traffic
          default: false
        percentage:
          maximum: 100
          minimum: 0
          type: integer
          description: Bandwidth-percentage, configures the storm control level as a percentage of the available bandwidth
          contentEncoding: int32
          default: 80
      description: Storm-control settings for this local port configuration
    switch_port_local_usage_duplex2:
      title: switch_port_local_usage_duplex2
      enum:
      - auto
      - full
      - half
      type: string
      description: 'Link duplex mode for this local port configuration. enum: `auto`, `full`, `half`.'
    response_http404:
      title: response_http404
      type: object
      properties:
        id:
          type: string
          description: Missing resource identifier, when the API includes one
      description: Standard HTTP 404 not found error response
    response_http401:
      title: response_http401
      type: object
      properties:
        detail:
          type: string
          description: Human-readable explanation of the authentication error
          examples:
          - Authentication credentials were not provided.
      description: Standard HTTP 401 authentication error response
    response_http429:
      title: response_http429
      type: object
      properties:
        detail:
          type: string
          description: Human-readable explanation of the rate limit error
          examples:
          - Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
      description: Standard HTTP 429 rate limit error response
    junos_local_port_config:
      title: junos_local_port_config
      required:
      - usage
      type: object
      properties:
        all_networks:
          type: boolean
          description: Only if `mode`==`trunk` whether to trunk all network/vlans
          default: false
        allow_dhcpd:
          type: boolean
          description: 'Controls whether DHCP server traffic is allowed on ports using this configuration if DHCP snooping is enabled. This is a tri-state setting; `true`: ports become trusted ports allowing DHCP server traffic, `false`: ports become untrusted blocking DHCP server traffic, undefined: use system defaults (access ports default to untrusted, trunk ports default to trusted).'
        allow_multiple_supplicants:
          type: boolean
          description: Whether multiple supplicants may authenticate on the port
          default: false
        bypass_auth_when_server_down:
          type: boolean
          description: Only if `port_auth`==`dot1x` bypass auth for known clients if set to true when RADIUS server is down
          default: false
        bypass_auth_when_server_down_for_unknown_client:
          type: boolean
          description: Only if `port_auth`=`dot1x` bypass auth for all (including unknown clients) if set to true when RADIUS server is down
          default: false
        description:
          type: string
          description: Human-readable description for this local port configuration
        disable_autoneg:
          type: boolean
          description: Only if `mode`!=`dynamic` if speed and duplex are specified, whether to disable autonegotiation
          default: false
        disabled:
          type: boolean
          description: Whether the port is disabled
          default: false
        duplex:
          allOf:
          - $ref: '#/components/schemas/switch_port_local_usage_duplex2'
          - description: 'Link duplex mode for this local port configuration. enum: `auto`, `full`, `half`.'
        dynamic_vlan_networks:
          type: array
          items:
            type: string
          description: Only if `port_auth`==`dot1x`, networks or VLANs that RADIUS can return for dynamic VLAN assignment
          examples:
          - - corp
            - user
        enable_mac_auth:
          type: boolean
          description: Only if `port_auth`==`dot1x` whether to enable MAC Auth
          default: false
        enable_qos:
          type: boolean
          description: Whether QoS is enabled on ports using this local configuration
          default: false
        guest_network:
          type:
          - string
          - 'null'
          description: Only if `port_auth`==`dot1x` which network to put the device into if the device cannot do dot1x. default is null (i.e. not allowed)
        inter_switch_link:
          type: boolean
          description: Used together with "isolation" under networks for links between Juniper devices; must be applied to both connected ports
          default: false
        mac_auth_only:
          type: boolean
          description: Only if `enable_mac_auth`==`true`, whether to use MAC authentication without 802.1X
        mac_auth_preferred:
          type: boolean
          description: Only if `enable_mac_auth`==`true` + `mac_auth_only`==`false`, dot1x will be given priority then mac_auth. Enable this to prefer mac_auth over dot1x.
        mac_auth_protocol:
          allOf:
          - $ref: '#/components/schemas/switch_port_local_usage_mac_auth_protocol2'
          - description: 'Only if `enable_mac_auth`==`true`, MAC authentication protocol to use. enum: `eap-md5`, `eap-peap`, `pap`.'
        mac_limit:
          minimum: 0
          type: integer
          description: Max number of MAC addresses, default is 0 for unlimited, otherwise range is 1 or higher, with upper bound constrained by platform
          contentEncoding: int32
          default: 0
        mode:
          allOf:
          - $ref: '#/components/schemas/switch_port_local_usage_mode2'
          - description: 'Switching mode for this local port configuration. enum: `access`, `inet`, `trunk`.'
        mtu:
          type: integer
          description: Media maximum transmission unit (MTU) is the largest data unit that can be forwarded without fragmentation. The default value is 1514.
          contentEncoding: int32
        networks:
          type: array
          items:
            type: string
          description: Only if `mode`==`trunk`, network or VLAN names to trunk
        note:
          type: string
          description: Additional note for the port config override
          examples:
          - force 100M for camera
        persist_mac:
          type: boolean
          description: Only if `mode`==`access` and `port_auth`!=`dot1x` whether the port should retain dynamically learned MAC addresses
          default: false
        poe_disabled:
          type: boolean
          description: Whether PoE capabilities are disabled for a port
          default: false
        port_auth:
          allOf:
          - oneOf:
            - {}
            - $ref: '#/components/schemas/switch_port_local_usage_dot1x2'
          - description: '802.1X authentication mode for this local port configuration. enum: `dot1x`.'
        port_network:
          type: string
          description: Native network/vlan for untagged traffic
        reauth_interval:
          anyOf:
          - maximum: 65535
            minimum: 10
            type: integer
            contentEncoding: int32
            default: 3600
          - type: string
          description: Only if `port_auth`==`dot1x`, RADIUS reauthentication interval for clients on the port
        server_fail_network:
          type:
          - string
          - 'null'
          description: Only if `port_auth`==`dot1x` sets server fail fallback vlan
        server_reject_network:
          type:
          - string
          - 'null'
          description: Only if `port_auth`==`dot1x` when RADIUS server reject / fails
        speed:
          allOf:
          - $ref: '#/components/schemas/junos_port_config_speed3'
          - description: 'Link speed for this local port configuration. enum: `10m`, `100m`, `1g`, `2.5g`, `5g`, `10g`, `25g`, `40g`, `100g`, `auto`.'
        storm_control:
          allOf:
          - $ref: '#/components/schemas/switch_port_local_usage_storm_control'
          - description: Storm-control settings for this local port configuration
        stp_edge:
          type: boolean
          description: When enabled, the port is not expected to receive BPDU frames
          default: false
        stp_no_root_port:
          type: boolean
          description: Whether STP should prevent this port from becoming a root port
          default: false
        stp_p2p:
          type: boolean
          description: Whether STP treats this port as a point-to-point link
          default: false
        usage:
          type: string
          description: Port usage profile name for this local port configuration
        use_vstp:
          type: boolean
          description: If this is connected to a vstp network
          default: false
        voip_network:
          type: string
          description: Network/vlan for voip traffic, must also set port_network. to authenticate device, set port_auth
      description: Per-port Switch Port Operator (SPO) override configuration used in `local_port_config` to customize settings inherited from `port_config`
    switch_port_local_usage_mac_auth_protocol2:
      title: switch_port_local_usage_mac_auth_protocol2
      enum:
      - eap-md5
      - eap-peap
      - pap
      type: string
      description: 'Only if `enable_mac_auth`==`true`, MAC authentication protocol to use. enum: `eap-md5`, `eap-peap`, `pap`.'
    switch_port_local_usage_dot1x2:
      title: switch_port_local_usage_dot1x2
      const: dot1x
      type: string
      description: '802.1X authentication mode for this local port configuration. enum: `dot1x`.'
  securitySchemes:
    apiToken:
      type: apiKey
      description: "Preferred authentication method for automation and integrations. Send the API token in the HTTP `Authorization` header.\n\n**Format**:\n  `Authorization: Token {apitoken}`\n\n**Notes**:\n* An API token generated for a specific admin has the same privileges as that admin\n* An API token is automatically removed if it is not used for more than 90 days\n* SSO admins cannot generate admin API tokens. Use organization API tokens when scoped Org/Site privileges are needed."
      name: Authorization
      in: header
    csrfToken:
      type: apiKey
      description: 'Session-based authentication for browser or login/password flows. After a successful [Login]($e/Admins%20Login/login) request, Mist returns a `csrftoken` cookie. Send that value in the `X-CSRFToken` header on later API requests that use the login session.


        **Format**:

        ```

        X-CSRFToken: vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx

        ```


        For automation, API Token authentication is preferred.'
      name: X-CSRFToken
      in: header