Cisco Meraki Appliance API
The appliance API from Cisco Meraki — 102 operation(s) for appliance.
The appliance API from Cisco Meraki — 102 operation(s) for appliance.
openapi: 3.0.1
info:
title: Meraki Dashboard API — appliance
description: 'A RESTful API to programmatically manage and monitor Cisco Meraki networks at scale.
> Date: 05 August, 2026
>
> [Recent Updates](https://meraki.io/whats-new/)
---
[API Documentation](https://meraki.io/api)
[Community Support](https://meraki.io/community)
[Meraki Homepage](https://www.meraki.com)
'
contact:
name: Meraki Developer Community
url: https://meraki.io/community
version: 1.73.0
x-provenance:
method: harvested
authored_by: Cisco Meraki
harvested_by: API Evangelist
harvested_on: '2026-08-19'
first_party: true
note: Published by Cisco. Retrieved unmodified except for this x-provenance block.
provider_published: true
derived_view: Per-first-tag view of the source document, tag 'appliance'. Operations and schemas are the provider's, unmodified.
x-evidence:
- type: source
url: https://github.com/meraki/openapi/blob/master/openapi/spec3.json
- type: raw
url: https://raw.githubusercontent.com/meraki/openapi/master/openapi/spec3.json
- type: alternate
url: https://api.meraki.com/api/v1/openapiSpec
servers:
- url: https://api.meraki.com/{basePath}
variables:
basePath:
default: api/v1
security:
- meraki_api_key: []
- bearerAuth: []
tags:
- name: appliance
paths:
/devices/{serial}/appliance/dhcp/subnets:
get:
description: Return the DHCP subnet information for an appliance
operationId: getDeviceApplianceDhcpSubnets
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
subnet:
type: string
description: Subnet
vlanId:
type: integer
description: VLAN ID
usedCount:
type: integer
description: Count of used IP addresses in subnet
freeCount:
type: integer
description: Count of free IP addresses in subnet
example:
- subnet: 192.168.1.0/24
vlanId: 100
usedCount: 2
freeCount: 251
security:
- oauth2:
- sdwan:telemetry:read
summary: Return the DHCP subnet information for an appliance
tags:
- appliance
- monitor
- dhcp
- subnets
/devices/{serial}/appliance/interfaces/ports/update:
post:
description: Update configurations for an appliance's specified port
operationId: createDeviceApplianceInterfacesPortsUpdate
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
interface:
type: object
properties:
slot:
type: integer
description: The slot number for the port
nullable: true
subslot:
type: integer
description: The subslot number for the port
nullable: true
number:
type: integer
description: The leaf port number
description: The interface tuple used to identify the port
enabled:
type: boolean
description: Indicates whether the port is enabled
personality:
type: object
properties:
mode:
type: string
enum:
- lan
- wan
description: The type of interface, 'wan' or 'lan', the port is configured as
layer:
type: object
properties:
mode:
type: integer
enum:
- 2
- 3
description: The layer at which the port operates
description: Describes the port's layer configurability
description: Describes the port's configurability
uplink:
type: object
properties:
type:
type: string
enum:
- cellular
- ethernet
description: Describes the uplink device
nullable: true
description: The port's settings when in WAN mode
downlink:
type: object
properties:
mode:
type: string
enum:
- access
- trunk
description: Indicates whether the port is in 'trunk' or 'access' mode
sgt:
type: object
properties:
id:
type: string
description: Adaptive policy group ID that all traffic originating from this port is assigned to
nullable: true
description: Security Group Tag settings for this port
access:
type: object
properties:
vlan:
type: string
description: The VLAN for which this port will accept and pass traffic in 'access' mode. All untagged
traffic will automatically be treated as if it belonged to this VLAN
policy:
type: object
properties:
type:
type: string
enum:
- 802.1X
- MAC RADIUS
- hybrid
- open
description: The access policy that will be enforced by the 'access' VLAN
nullable: true
description: The access policy settings for this port
description: The port's settings when in 'access' mode
trunk:
type: object
properties:
nativeVlan:
type: string
description: The Native VLAN for the port. All untagged traffic that comes in on this port will
be treated as if it belonged to this VLAN. This can also be set to 0 to drop untagged traffic.
allowedVlans:
type: array
items:
type: string
description: The VLANs for which this port will accept and pass traffic in 'trunk' mode. This must
include the Native VLAN if one is set
sgt:
type: object
properties:
enabled:
type: boolean
description: Indicates whether the trunk port is Peer SGT capable
description: Security Group Tag settings for this trunk port
description: The port's settings when in 'trunk' mode
description: The port's VLAN settings when in LAN mode
example:
interface:
slot: 1
subslot: 2
number: 3
enabled: true
personality:
mode: wan
layer:
mode: 3
uplink:
type: ethernet
downlink:
mode: access
sgt:
id: '1234'
access:
vlan: '1'
policy:
type: 802.1X
trunk:
nativeVlan: '2'
allowedVlans:
- '2'
- '3'
- '4'
- '5'
sgt:
enabled: false
required: false
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: A port's identifier as labeled on the device
interface:
type: object
properties:
name:
type: string
description: The full interface identifier for this port
slot:
type: integer
description: The slot for this port
nullable: true
subslot:
type: integer
description: The subslot for this port
nullable: true
number:
type: integer
description: The leaf interface number for this port
description: The structured interface identifier for this port
enabled:
type: boolean
description: Indicates whether the port is enabled
name:
type: string
description: The name of the interface the port is mapped to
personality:
type: object
properties:
mode:
type: string
enum:
- lan
- wan
description: The type of interface, 'wan' or 'lan', the port is configured as
isFlexible:
type: boolean
description: Indicates whether the port interface type can convert between WAN and LAN
layer:
type: object
properties:
mode:
type: integer
enum:
- 2
- 3
description: The layer at which the port operates
isFlexible:
type: boolean
description: Whether the layer mode is mutable
description: Describes the port's layer configurability
description: Describes the port's configurability
uplink:
type: object
properties:
type:
type: string
enum:
- cellular
- ethernet
description: Describes the uplink device
primary:
type: boolean
description: Indicates whether the uplink has the highest priority among the device's WAN ports
description: The port's settings when in WAN mode
downlink:
type: object
properties:
mode:
type: string
description: Indicates whether the port is in 'trunk' or 'access' mode
sgt:
type: object
properties:
id:
type: string
description: Adaptive policy group ID that all traffic originating from this port is assigned
to
nullable: true
description: Security Group Tag settings for this port
access:
type: object
properties:
vlan:
type: string
description: The VLAN for which this port will accept and pass traffic in 'access' mode. All untagged
traffic will automatically be treated as if it belonged to this VLAN
policy:
type: object
properties:
type:
type: string
enum:
- 802.1X
- MAC RADIUS
- hybrid
- open
description: The access policy that will be enforced by the 'access' VLAN
nullable: true
description: The access policy settings for this port
description: The port's settings when in 'access' mode
trunk:
type: object
properties:
nativeVlan:
type: string
description: The Native VLAN for the port. All untagged traffic that comes in on this port will
be treated as if it belonged to this VLAN. This can also be set to 0 to drop untagged traffic.
allowedVlans:
type: array
items:
type: string
description: The VLANs for which this port will accept and pass traffic in 'trunk' mode. This
must include the Native VLAN if one is set
sgt:
type: object
properties:
enabled:
type: boolean
description: Indicates whether the trunk port is Peer SGT capable
description: Security Group Tag settings for this trunk port
description: The port's settings when in 'trunk' mode
description: The port's VLAN settings when in LAN mode
example:
number: '1'
interface:
name: GigabitEthernet1/2/3
slot: 1
subslot: 2
number: 3
enabled: true
name: wan1
personality:
mode: wan
isFlexible: false
layer:
mode: 3
isFlexible: false
uplink:
type: ethernet
primary: true
downlink:
mode: access
sgt:
id: '1234'
access:
vlan: '1'
policy:
type: 802.1X
trunk:
nativeVlan: '2'
allowedVlans:
- '2'
- '3'
- '4'
- '5'
sgt:
enabled: false
summary: Update configurations for an appliance's specified port
tags:
- appliance
- configure
- interfaces
- ports
- update
/devices/{serial}/appliance/performance:
get:
description: Return the performance score for a single Secure Appliance or Secure Router. Only primary Secure Appliance
devices supported. If no data is available, a 204 error code is returned.
operationId: getDeviceAppliancePerformance
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
- name: t0
in: query
description: The beginning of the timespan for the data. The maximum lookback period is 30 days from today.
schema:
type: string
- name: t1
in: query
description: The end of the timespan for the data. t1 can be a maximum of 14 days after t0.
schema:
type: string
- name: timespan
in: query
description: The timespan for which the information will be fetched. If specifying timespan, do not specify parameters
t0 and t1. The value must be in seconds and be greater than or equal to 30 minutes and be less than or equal to
14 days. The default is 30 minutes.
schema:
type: number
format: float
minimum: 1800
maximum: 1209600
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
perfScore:
type: number
format: float
description: Utilization for the device
example:
perfScore: 10.0
security:
- oauth2:
- sdwan:telemetry:read
summary: Return the performance score for a single Secure Appliance or Secure Router
tags:
- appliance
- monitor
- performance
/devices/{serial}/appliance/prefixes/delegated:
get:
description: Return current delegated IPv6 prefixes on an appliance.
operationId: getDeviceAppliancePrefixesDelegated
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
origin:
type: object
properties:
interface:
type: string
description: Uplink interface for this delegated prefix.
required:
- interface
description: Origin details for the delegated prefix.
prefix:
type: string
description: Delegated IPv6 prefix in CIDR notation.
counts:
type: object
properties:
assigned:
type: integer
description: Number of assigned VLAN prefixes.
available:
type: integer
description: Number of available VLAN prefixes.
required:
- assigned
- available
description: Usage counters for the delegated prefix.
method:
type: string
enum:
- auto
- manual
description: Delegation method.
staticDelegatedPrefixId:
type: string
description: Static delegated prefix id. Present when method is manual.
description:
type: string
description: Description for a manual delegated prefix.
isPreferred:
type: boolean
description: Whether this delegated prefix is preferred.
expiresAt:
type: string
format: date-time
description: Expiration time of the delegated prefix.
nullable: true
required:
- prefix
- method
- isPreferred
example:
- origin:
interface: wan1
prefix: 2001:db8:3c4d:15::/64
counts:
assigned: 2
available: 253
method: auto
staticDelegatedPrefixId: 2001:db8:3c4d:15::/64
description: My ISP provider
isPreferred: true
expiresAt: '2018-05-12T00:00:00Z'
security:
- oauth2:
- sdwan:telemetry:read
summary: Return current delegated IPv6 prefixes on an appliance.
tags:
- appliance
- monitor
- prefixes
- delegated
/devices/{serial}/appliance/prefixes/delegated/vlanAssignments:
get:
description: Return prefixes assigned to all IPv6 enabled VLANs on an appliance.
operationId: getDeviceAppliancePrefixesDelegatedVlanAssignments
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
vlan:
type: object
properties:
id:
type: integer
description: VLAN id.
name:
type: string
description: VLAN name.
required:
- id
- name
description: VLAN details for the prefix assignment.
origin:
type: object
properties:
interface:
type: string
description: Uplink interface origin.
prefix:
type: string
description: Delegated origin prefix.
nullable: true
required:
- interface
description: Delegated prefix origin for this VLAN assignment.
status:
type: string
enum:
- Active
- Expiring soon
- Not assigned
description: Current assignment status.
ipv6:
type: object
properties:
prefix:
type: string
description: Assigned IPv6 subnet prefix.
nullable: true
address:
type: string
description: IPv6 address assigned to the MX on the VLAN.
linkLocal:
type: object
properties:
address:
type: string
description: Link-local address.
nullable: true
description: IPv6 link-local address.
solicitedNodeMulticast:
type: object
properties:
address:
type: string
description: Solicited-node multicast address.
nullable: true
description: IPv6 solicited-node multicast address.
required:
- address
description: IPv6 assignment details for the VLAN.
required:
- status
example:
- vlan:
id: 100
name: My VLAN
origin:
interface: wan1
prefix: 2001:db8:3c4d:15::/64
status: Active
ipv6:
prefix: 2001:db8:3c4d:15::/64
address: 2001:db8:3c4d:15::1
linkLocal:
address: 2001:db8:3c4d:15::1
solicitedNodeMulticast:
address: 2001:db8:3c4d:15::1
security:
- oauth2:
- sdwan:telemetry:read
summary: Return prefixes assigned to all IPv6 enabled VLANs on an appliance.
tags:
- appliance
- monitor
- prefixes
- delegated
- vlanAssignments
/devices/{serial}/appliance/radio/settings:
get:
description: Return the radio settings of an appliance
operationId: getDeviceApplianceRadioSettings
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
serial:
type: string
description: The device serial
rfProfileId:
type: string
description: RF Profile ID
twoFourGhzSettings:
type: object
properties:
channel:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
description: Manual channel for 2.4 GHz
targetPower:
type: integer
description: Manual target power for 2.4 GHz
description: Manual radio settings for 2.4 GHz
fiveGhzSettings:
type: object
properties:
channel:
type: integer
enum:
- 36
- 40
- 44
- 48
- 52
- 56
- 60
- 64
- 100
- 104
- 108
- 112
- 116
- 120
- 124
- 128
- 132
- 136
- 140
- 144
- 149
- 153
- 157
- 161
- 165
- 169
- 173
- 177
description: Manual channel for 5 GHz
channelWidth:
type: integer
enum:
- 0
- 20
- 40
- 80
- 160
description: Manual channel width for 5 GHz
targetPower:
type: integer
description: Manual target power for 5 GHz
description: Manual radio settings for 5 GHz
example:
serial: Q234-ABCD-5678
rfProfileId: '1234'
twoFourGhzSettings:
channel: 11
targetPower: 21
fiveGhzSettings:
channel: 149
channelWidth: 20
targetPower: 15
security:
- oauth2:
- sdwan:config:read
summary: Return the radio settings of an appliance
tags:
- appliance
- configure
- radio
- settings
put:
description: Update the radio settings of an appliance
operationId: updateDeviceApplianceRadioSettings
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
rfProfileId:
type: string
nullable: true
description: The ID of an RF profile to assign to the device. If the value of this parameter is null, the
appropriate basic RF profile (indoor or outdoor) will be assigned to the device. Assigning an RF profile
will clear ALL manually configured overrides on the device (channel width, channel, power).
twoFourGhzSettings:
type: object
properties:
channel:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
description: Sets a manual channel for 2.4 GHz. Can be '1', '2', '3', '4', '5', '6', '7', '8', '9',
'10', '11', '12', '13' or '14' or null for using auto channel.
nullable: true
targetPower:
type: integer
description: Set a manual target power for 2.4 GHz (dBm). Enter null for using auto power range.
nullable: true
description: Manual radio settings for 2.4 GHz.
fiveGhzSettings:
type: object
properties:
channel:
type: integer
enum:
- 36
- 40
- 44
- 48
- 52
- 56
- 60
- 64
- 100
- 104
- 108
- 112
- 116
- 120
- 124
- 128
- 132
- 136
- 140
- 144
- 149
- 153
- 157
- 161
- 165
- 169
- 173
- 177
# --- truncated at 32 KB (802 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cisco-meraki/refs/heads/main/openapi/cisco-meraki-appliance-api-openapi.yml