Cisco Meraki Devices API
The devices API from Cisco Meraki — 151 operation(s) for devices.
The devices API from Cisco Meraki — 151 operation(s) for devices.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/cisco-meraki-devices-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.0.1
info:
title: Meraki Dashboard API — devices
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 'devices'. 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: devices
paths:
/devices/{serial}:
get:
description: Return a single device
operationId: getDevice
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the device
lat:
type: number
format: float
description: Latitude of the device
lng:
type: number
format: float
description: Longitude of the device
address:
type: string
description: Physical address of the device
notes:
type: string
description: Notes for the device, limited to 255 characters
tags:
type: array
items:
type: string
description: List of tags assigned to the device
networkId:
type: string
description: ID of the network the device belongs to
serial:
type: string
description: Serial number of the device
model:
type: string
description: Model of the device
mac:
type: string
description: MAC address of the device
lanIp:
type: string
description: LAN IP address of the device
firmware:
type: string
description: Firmware version of the device
floorPlanId:
type: string
description: The floor plan to associate to this device. null disassociates the device from the floorplan.
nullable: true
url:
type: string
description: URL link to the device in the Meraki Dashboard
details:
type: array
items:
type: object
properties:
name:
type: string
description: Additional property name
value:
type: string
description: Additional property value
description: Additional device information
beaconIdParams:
type: object
properties:
uuid:
type: string
description: The UUID to be used in the beacon identifier
major:
type: integer
description: The major number to be used in the beacon identifier
minor:
type: integer
description: The minor number to be used in the beacon identifier
description: Beacon Id parameters with an identifier and major and minor versions
example:
name: My AP
lat: 37.4180951010362
lng: -122.098531723022
address: 1600 Pennsylvania Ave
notes: My AP's note
tags:
- ' recently-added '
networkId: N_24329156
serial: Q234-ABCD-5678
model: MR34
mac: 00:11:22:33:44:55
lanIp: 1.2.3.4
firmware: wireless-25-14
floorPlanId: g_2176982374
url: https://n1.meraki.com/MyOrg/n/XXXXXX/manage/nodes/new_list/1
details:
- name: Catalyst serial
value: 123ABC
beaconIdParams:
uuid: 00000000-0000-0000-0000-000000000000
major: 5
minor: 3
security:
- oauth2:
- dashboard:general:config:read
summary: Return a single device
tags:
- devices
- configure
put:
description: Update the attributes of a device
operationId: updateDevice
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
nullable: true
description: The name of a device
tags:
type: array
items:
type: string
description: The list of tags of a device
lat:
type: number
format: float
description: The latitude of a device
lng:
type: number
format: float
description: The longitude of a device
address:
type: string
nullable: true
description: The address of a device
notes:
type: string
nullable: true
description: The notes for the device. String. Limited to 255 characters.
moveMapMarker:
type: boolean
description: Whether or not to set the latitude and longitude of a device based on the new address. Only
applies when lat and lng are not specified.
switchProfileId:
type: string
nullable: true
description: The ID of a switch template to bind to the device (for available switch templates, see the
'Switch Templates' endpoint). Use null to unbind the switch device from the current profile. For a device
to be bindable to a switch template, it must (1) be a switch, and (2) belong to a network that is bound
to a configuration template.
floorPlanId:
type: string
nullable: true
description: The floor plan to associate to this device. null disassociates the device from the floorplan.
example:
name: My AP
tags:
- ' recently-added '
lat: 37.4180951010362
lng: -122.098531723022
address: 1600 Pennsylvania Ave
notes: My AP's note
moveMapMarker: true
switchProfileId: '1234'
floorPlanId: g_2176982374
required: false
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the device
lat:
type: number
format: float
description: Latitude of the device
lng:
type: number
format: float
description: Longitude of the device
address:
type: string
description: Physical address of the device
notes:
type: string
description: Notes for the device, limited to 255 characters
tags:
type: array
items:
type: string
description: List of tags assigned to the device
networkId:
type: string
description: ID of the network the device belongs to
serial:
type: string
description: Serial number of the device
model:
type: string
description: Model of the device
mac:
type: string
description: MAC address of the device
lanIp:
type: string
description: LAN IP address of the device
firmware:
type: string
description: Firmware version of the device
floorPlanId:
type: string
description: The floor plan to associate to this device. null disassociates the device from the floorplan.
nullable: true
url:
type: string
description: URL link to the device in the Meraki Dashboard
details:
type: array
items:
type: object
properties:
name:
type: string
description: Additional property name
value:
type: string
description: Additional property value
description: Additional device information
beaconIdParams:
type: object
properties:
uuid:
type: string
description: The UUID to be used in the beacon identifier
major:
type: integer
description: The major number to be used in the beacon identifier
minor:
type: integer
description: The minor number to be used in the beacon identifier
description: Beacon Id parameters with an identifier and major and minor versions
example:
name: My AP
lat: 37.4180951010362
lng: -122.098531723022
address: 1600 Pennsylvania Ave
notes: My AP's note
tags:
- ' recently-added '
networkId: N_24329156
serial: Q234-ABCD-5678
model: MR34
mac: 00:11:22:33:44:55
lanIp: 1.2.3.4
firmware: wireless-25-14
floorPlanId: g_2176982374
url: https://n1.meraki.com/MyOrg/n/XXXXXX/manage/nodes/new_list/1
details:
- name: Catalyst serial
value: 123ABC
beaconIdParams:
uuid: 00000000-0000-0000-0000-000000000000
major: 5
minor: 3
security:
- oauth2:
- dashboard:general:config:write
summary: Update the attributes of a device
tags:
- devices
- configure
/devices/{serial}/blinkLeds:
post:
deprecated: true
description: Blink the LEDs on a device. This endpoint is deprecrated in favor of "/devices/{serial}/liveTools/leds/blink".
operationId: blinkDeviceLeds
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
duration:
type: integer
description: The duration in seconds. Must be between 5 and 120. Default is 20 seconds
period:
type: integer
description: The period in milliseconds. Must be between 100 and 1000. Default is 160 milliseconds
duty:
type: integer
description: The duty cycle as the percent active. Must be between 10 and 90. Default is 50.
example:
duration: 20
period: 160
duty: 50
required: false
responses:
'202':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
duration:
type: integer
description: The duration in seconds. Will be between 5 and 120. Default is 20 seconds
period:
type: integer
description: The period in milliseconds. Will be between 100 and 1000. Default is 160 milliseconds
duty:
type: integer
description: The duty cycle as the percent active. Will be between 10 and 90. Default is 50
example:
duration: 20
period: 160
duty: 50
security:
- oauth2:
- dashboard:general:config:write
summary: Blink the LEDs on a device
tags:
- devices
- liveTools
x-deprecation-notice: 'Deprecated: This operation has been marked as deprecated. For more information, visit the <a
href=''https://developer.cisco.com/meraki/api-v1/deprecated-operations/''>deprecated operations page</a>'
/devices/{serial}/cellular/geolocations:
put:
description: Update the enablement of the geolocation feature for a device
operationId: updateDeviceCellularGeolocations
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
description: Required parameter for the state to update the geolocation settings to (true to enable, false
to disable)
example:
enabled: true
required:
- enabled
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
description: Indicates whether geolocation is enabled for the device
example:
enabled: true
summary: Update the enablement of the geolocation feature for a device
tags:
- devices
- configure
- cellular
- geolocations
/devices/{serial}/cellular/sims:
get:
description: Return the SIM and APN configurations for a cellular device.
operationId: getDeviceCellularSims
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
sims:
type: array
items:
type: object
properties:
slot:
type: string
description: SIM slot being configured. Must be 'sim1' on single-sim devices. eSIM slots use the
raw slot value for the device, such as 'sim2' or 'sim3'.
iccid:
type: string
description: Integrated Circuit Card Identification Number
imsi:
type: string
description: International Mobile Subscriber Identity
msisdn:
type: string
description: Mobile Station Integrated Services Digital Network
isPrimary:
type: boolean
description: If true, this SIM is activated on platform bootup. It must be true on single-SIM devices
and is a required field for dual-SIM MGs unless it is being configured using 'simOrdering'.
default: false
status:
type: string
enum:
- PIN required
- PUK required
- active
- inserted
- not inserted
- standby
- unknown
description: Status of the SIM card.
apns:
type: array
items:
type: object
properties:
name:
type: string
description: APN name.
allowedIpTypes:
type: array
items:
type: string
description: IP versions to support (permitted values include 'ipv4', 'ipv6').
authentication:
type: object
properties:
type:
type: string
enum:
- chap
- none
- pap
description: APN auth type.
default: none
username:
type: string
description: APN username, if type is set.
password:
type: string
description: APN password, if type is set (if APN password is not supplied, the password
is left unchanged).
description: APN authentication configurations.
required:
- name
- allowedIpTypes
description: APN configurations. If empty, the default APN will be used.
default: []
description: List of SIMs. If a SIM was previously configured and not specified in this request, it will
remain unchanged.
simOrdering:
type: array
items:
type: string
description: 'Specifies the ordering of all SIMs for an MG: primary, secondary, and not-in-use (when applicable).
It''s required for devices with 3 or more SIMs and can be used in place of ''isPrimary'' for dual-SIM
devices. Use the raw eSIM slot value for the device, such as ''sim2'' or ''sim3''. Sim failover will
occur only between primary and secondary sim slots.'
simFailover:
type: object
properties:
enabled:
type: boolean
description: Failover to secondary SIM
timeout:
type: integer
description: Failover timeout in seconds
description: SIM Failover settings.
example:
sims:
- slot: sim1
iccid: '123456789'
imsi: '123456789012345'
msisdn: '123456789012345'
isPrimary: false
status: inserted
apns:
- name: internet
allowedIpTypes:
- ipv4
- ipv6
authentication:
type: pap
username: milesmeraki
password: secret
simOrdering:
- sim1
- sim2
- sim3
simFailover:
enabled: true
timeout: 300
security:
- oauth2:
- sdwan:config:read
summary: Return the SIM and APN configurations for a cellular device.
tags:
- devices
- configure
- cellular
- sims
put:
description: Updates the SIM and APN configurations for a cellular device.
operationId: updateDeviceCellularSims
parameters:
- name: serial
in: path
description: Serial
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
sims:
type: array
items:
type: object
properties:
slot:
type: string
description: SIM slot being configured. Must be 'sim1' on single-sim devices. eSIM slots use the raw
slot value for the device, such as 'sim2' or 'sim3'.
isPrimary:
type: boolean
description: If true, this SIM is activated on platform bootup. It must be true on single-SIM devices
and is a required field for dual-SIM MGs unless it is being configured using 'simOrdering'.
default: false
apns:
type: array
items:
type: object
properties:
name:
type: string
description: APN name.
allowedIpTypes:
type: array
items:
type: string
description: IP versions to support (permitted values include 'ipv4', 'ipv6').
authentication:
type: object
properties:
type:
type: string
enum:
- chap
- none
- pap
description: APN auth type.
default: none
username:
type: string
description: APN username, if type is set.
password:
type: string
description: APN password, if type is set (if APN password is not supplied, the password
is left unchanged).
description: APN authentication configurations.
required:
- name
- allowedIpTypes
description: APN configurations. If empty, the default APN will be used.
simOrder:
type: integer
description: Priority of SIM slot being configured. Use a value between 1 and total number of SIMs
available. The value must be unique for each SIM.
description: List of SIMs. If a SIM was previously configured and not specified in this request, it will
remain unchanged.
simOrdering:
type: array
items:
type: string
description: 'Specifies the ordering of all SIMs for an MG: primary, secondary, and not-in-use (when applicable).
It''s required for devices with 3 or more SIMs and can be used in place of ''isPrimary'' for dual-SIM
devices. Use the raw eSIM slot value for the device, such as ''sim2'' or ''sim3''. Sim failover will occur
only between primary and secondary sim slots.'
simFailover:
type: object
properties:
enabled:
type: boolean
description: Failover to secondary SIM (optional)
timeout:
type: integer
description: Failover timeout in seconds (optional)
nullable: true
description: SIM Failover settings.
example:
sims:
- slot: sim1
isPrimary: false
apns:
- name: internet
allowedIpTypes:
- ipv4
- ipv6
authentication:
type: pap
username: milesmeraki
password: secret
simOrder: 3
simOrdering:
- sim1
- sim2
- sim3
simFailover:
enabled: true
timeout: 300
required: false
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
sims:
type: array
items:
type: object
properties:
slot:
type: string
description: SIM slot being configured. Must be 'sim1' on single-sim devices. eSIM slots use the
raw slot value for the device, such as 'sim2' or 'sim3'.
iccid:
type: string
description: Integrated Circuit Card Identification Number
imsi:
type: string
description: International Mobile Subscriber Identity
msisdn:
type: string
description: Mobile Station Integrated Services Digital Network
isPrimary:
type: boolean
description: If true, this SIM is activated on platform bootup. It must be true on single-SIM devices
and is a required field for dual-SIM MGs unless it is being configured using 'simOrdering'.
default: false
status:
type: string
enum:
- PIN required
- PUK required
- active
- inserted
- not inserted
- standby
- unknown
description: Status of the SIM card.
apns:
type: array
items:
type: object
properties:
name:
type: string
description: APN name.
allowedIpTypes:
type: array
items:
type: string
description: IP versions to support (permitted values include 'ipv4', 'ipv6').
authentication:
type: object
properties:
type:
type: string
enum:
- chap
- none
- pap
description: APN auth type.
default: none
username:
type: string
description: APN username, if type is set.
password:
type: string
description: APN password, if type is set (if APN password is not supplied, the password
is left unchanged).
description: APN authentication configurations.
required:
- name
- allowedIpTypes
description: APN configurations. If empty, the default APN will be used.
default: []
description: List of SIMs. If a SIM was previously configured and not specified in this request, it will
remain unchanged.
simOrdering:
type: array
items:
type: string
description: 'Specifies the ordering of all SIMs for an MG: primary, secondary, and not-in-use (when applicable).
It''s required for devices with 3 or more SIMs and can be used in place of ''isPrimary'' for dual-SIM
devices. Use the raw eSIM slot value for the device, such as ''sim2'' or ''sim3''. Sim failover will
occur only between primary and secondary sim slots.'
simFailover:
type: object
properties:
enabled:
type: boolean
description: Failover to secondary SIM
time
# --- truncated at 32 KB (273 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cisco-meraki/refs/heads/main/openapi/cisco-meraki-devices-api-openapi.yml