Version 0.11.0 to 1.0.0

6 Aug, 2020

What's Changed

[ global ]

PATH

- Base path turned from /api/v0 to /api/v1


PATH /networks/{networkId}/accessPolicies

- Deleted


PATH /networks/{networkId}/clients/{clientId}/events

- Deleted


PATH /networks/{networkId}/devices/{serial}/uplink

- Deleted


PATH /networks/{networkId}/sm/device/wipe

- Deleted


PATH /networks/{networkId}/sm/devices

- Deleted


PATH /networks/{networkId}/sm/devices/checkin

- Deleted


PATH /networks/{networkId}/sm/devices/move

- Deleted


PATH /networks/{networkId}/sm/devices/tags

- Deleted


PATH /networks/{networkId}/sm/users

- Deleted


PATH /networks/{networkId}/ssids

- Deleted


PATH /networks/{networkId}/ssids/{number}

- Deleted


PATH /networks/{network_id}/sm/devices/lock

- Deleted


PATH /organizations/{organizationId}/inventory

- Deleted


PATH /devices/{serial}/camera/qualityAndRetentionSettings

- renamed to /devices/{serial}/camera/qualityAndRetention


PATH /devices/{serial}/cellularGateway/settings

- renamed to /devices/{serial}/cellularGateway/lan


PATH /devices/{serial}/cellularGateway/settings/portForwardingRules

- renamed to /devices/{serial}/cellularGateway/portForwardingRules


PATH /devices/{serial}/switchPortStatuses

- renamed to /devices/{serial}/switch/ports/statuses


PATH /devices/{serial}/switchPortStatuses/packets

- renamed to /devices/{serial}/switch/ports/statuses/packets


PATH /devices/{serial}/switchPorts

- renamed to /devices/{serial}/switch/ports


PATH /devices/{serial}/switchPorts/{number}

- renamed to /devices/{serial}/switch/ports/{portId}


PATH /networks/{networkId}/airMarshal

- renamed to /networks/{networkId}/wireless/airMarshal


PATH /networks/{networkId}/alertSettings

- renamed to /networks/{networkId}/alerts/settings


PATH /networks/{networkId}/appliancePorts

- renamed to /networks/{networkId}/appliance/ports


PATH /networks/{networkId}/appliancePorts/{appliancePortId}

- renamed to /networks/{networkId}/appliance/ports/{portId}


PATH /networks/{networkId}/bluetoothSettings

- renamed to /networks/{networkId}/wireless/bluetooth/settings


PATH /networks/{networkId}/cameras/{serial}/snapshot

- renamed to /devices/{serial}/camera/generateSnapshot


PATH /networks/{networkId}/cameras/{serial}/videoLink

- renamed to /devices/{serial}/camera/videoLink


PATH /networks/{networkId}/cellularFirewallRules

- renamed to /networks/{networkId}/appliance/firewall/cellularFirewallRules


PATH /networks/{networkId}/cellularGateway/settings/connectivityMonitoringDestinations

- renamed to /networks/{networkId}/cellularGateway/connectivityMonitoringDestinations


PATH /networks/{networkId}/cellularGateway/settings/dhcp

- renamed to /networks/{networkId}/cellularGateway/dhcp


PATH /networks/{networkId}/cellularGateway/settings/subnetPool

- renamed to /networks/{networkId}/cellularGateway/subnetPool


PATH /networks/{networkId}/cellularGateway/settings/uplink

- renamed to /networks/{networkId}/cellularGateway/uplink


PATH /networks/{networkId}/clients/connectionStats

- renamed to /networks/{networkId}/wireless/clients/connectionStats


PATH /networks/{networkId}/clients/latencyStats

- renamed to /networks/{networkId}/wireless/clients/latencyStats


PATH /networks/{networkId}/clients/{clientId}/connectionStats

- renamed to /networks/{networkId}/wireless/clients/{clientId}/connectionStats


PATH /networks/{networkId}/clients/{clientId}/latencyHistory

- renamed to /networks/{networkId}/wireless/clients/{clientId}/latencyHistory


PATH /networks/{networkId}/clients/{clientId}/latencyStats

- renamed to /networks/{networkId}/wireless/clients/{clientId}/latencyStats


PATH /networks/{networkId}/clients/{clientId}/securityEvents

- renamed to /networks/{networkId}/appliance/clients/{clientId}/security/events


PATH /networks/{networkId}/connectionStats

- renamed to /networks/{networkId}/wireless/connectionStats


PATH /networks/{networkId}/connectivityMonitoringDestinations

- renamed to /networks/{networkId}/appliance/connectivityMonitoringDestinations


PATH /networks/{networkId}/contentFiltering

- renamed to /networks/{networkId}/appliance/contentFiltering


PATH /networks/{networkId}/contentFiltering/categories

- renamed to /networks/{networkId}/appliance/contentFiltering/categories


PATH /networks/{networkId}/devices/connectionStats

- renamed to /networks/{networkId}/wireless/devices/connectionStats


PATH /networks/{networkId}/devices/latencyStats

- renamed to /networks/{networkId}/wireless/devices/latencyStats


PATH /networks/{networkId}/devices/{serial}

- renamed to /devices/{serial}


PATH /networks/{networkId}/devices/{serial}/blinkLeds

- renamed to /devices/{serial}/blinkLeds


PATH /networks/{networkId}/devices/{serial}/connectionStats

- renamed to /devices/{serial}/wireless/connectionStats


PATH /networks/{networkId}/devices/{serial}/latencyStats

- renamed to /devices/{serial}/wireless/latencyStats


PATH /networks/{networkId}/devices/{serial}/lldp_cdp

- renamed to /devices/{serial}/lldpCdp


PATH /networks/{networkId}/devices/{serial}/lossAndLatencyHistory

- renamed to /devices/{serial}/lossAndLatencyHistory


PATH /networks/{networkId}/devices/{serial}/managementInterfaceSettings

- renamed to /devices/{serial}/managementInterface


PATH /networks/{networkId}/devices/{serial}/performance

- renamed to /devices/{serial}/appliance/performance


PATH /networks/{networkId}/devices/{serial}/reboot

- renamed to /devices/{serial}/reboot


PATH /networks/{networkId}/devices/{serial}/remove

- renamed to /networks/{networkId}/devices/remove


PATH /networks/{networkId}/devices/{serial}/wireless/radioSettings

- renamed to /devices/{serial}/wireless/radio/settings


PATH /networks/{networkId}/devices/{serial}/wireless/status

- renamed to /devices/{serial}/wireless/status


PATH /networks/{networkId}/failedConnections

- renamed to /networks/{networkId}/wireless/failedConnections


PATH /networks/{networkId}/firewalledServices

- renamed to /networks/{networkId}/appliance/firewall/firewalledServices


PATH /networks/{networkId}/firewalledServices/{service}

- renamed to /networks/{networkId}/appliance/firewall/firewalledServices/{service}


PATH /networks/{networkId}/httpServers

- renamed to /networks/{networkId}/webhooks/httpServers


PATH /networks/{networkId}/httpServers/webhookTests

- renamed to /networks/{networkId}/webhooks/webhookTests


PATH /networks/{networkId}/httpServers/webhookTests/{id}

- renamed to /networks/{networkId}/webhooks/webhookTests/{webhookTestId}


PATH /networks/{networkId}/httpServers/{id}

- renamed to /networks/{networkId}/webhooks/httpServers/{httpServerId}


PATH /networks/{networkId}/l3FirewallRules

- renamed to /networks/{networkId}/appliance/firewall/l3FirewallRules


PATH /networks/{networkId}/l7FirewallRules

- renamed to /networks/{networkId}/appliance/firewall/l7FirewallRules


PATH /networks/{networkId}/l7FirewallRules/applicationCategories

- renamed to /networks/{networkId}/appliance/firewall/l7FirewallRules/applicationCategories


PATH /networks/{networkId}/latencyStats

- renamed to /networks/{networkId}/wireless/latencyStats


PATH /networks/{networkId}/netflowSettings

- renamed to /networks/{networkId}/netflow


PATH /networks/{networkId}/oneToManyNatRules

- renamed to /networks/{networkId}/appliance/firewall/oneToManyNatRules


PATH /networks/{networkId}/oneToOneNatRules

- renamed to /networks/{networkId}/appliance/firewall/oneToOneNatRules


PATH /networks/{networkId}/portForwardingRules

- renamed to /networks/{networkId}/appliance/firewall/portForwardingRules


PATH /networks/{networkId}/security/intrusionSettings

- renamed to /networks/{networkId}/appliance/security/intrusion


PATH /networks/{networkId}/security/malwareSettings

- renamed to /networks/{networkId}/appliance/security/malware


PATH /networks/{networkId}/securityEvents

- renamed to /networks/{networkId}/appliance/security/events


PATH /networks/{networkId}/siteToSiteVpn

- renamed to /networks/{networkId}/appliance/vpn/siteToSiteVpn


PATH /networks/{networkId}/sm/device/fields

- renamed to /networks/{networkId}/sm/devices/fields


PATH /networks/{networkId}/sm/device/{deviceId}/refreshDetails

- renamed to /networks/{networkId}/sm/devices/{deviceId}/refreshDetails


PATH /networks/{networkId}/sm/user/{userId}/deviceProfiles

- renamed to /networks/{networkId}/sm/users/{userId}/deviceProfiles


PATH /networks/{networkId}/sm/user/{userId}/softwares

- renamed to /networks/{networkId}/sm/users/{userId}/softwares


PATH /networks/{networkId}/sm/{deviceId}/cellularUsageHistory

- renamed to /networks/{networkId}/sm/devices/{deviceId}/cellularUsageHistory


PATH /networks/{networkId}/sm/{deviceId}/certs

- renamed to /networks/{networkId}/sm/devices/{deviceId}/certs


PATH /networks/{networkId}/sm/{deviceId}/deviceProfiles

- renamed to /networks/{networkId}/sm/devices/{deviceId}/deviceProfiles


PATH /networks/{networkId}/sm/{deviceId}/networkAdapters

- renamed to /networks/{networkId}/sm/devices/{deviceId}/networkAdapters


PATH /networks/{networkId}/sm/{deviceId}/restrictions

- renamed to /networks/{networkId}/sm/devices/{deviceId}/restrictions


PATH /networks/{networkId}/sm/{deviceId}/securityCenters

- renamed to /networks/{networkId}/sm/devices/{deviceId}/securityCenters


PATH /networks/{networkId}/sm/{deviceId}/softwares

- renamed to /networks/{networkId}/sm/devices/{deviceId}/softwares


PATH /networks/{networkId}/sm/{deviceId}/wlanLists

- renamed to /networks/{networkId}/sm/devices/{deviceId}/wlanLists


PATH /networks/{networkId}/snmpSettings

- renamed to /networks/{networkId}/snmp


PATH /networks/{networkId}/ssids/{number}/l3FirewallRules

- renamed to /networks/{networkId}/wireless/ssids/{number}/firewall/l3FirewallRules


PATH /networks/{networkId}/ssids/{number}/splashSettings

- renamed to /networks/{networkId}/wireless/ssids/{number}/splash/settings


PATH /networks/{networkId}/ssids/{number}/trafficShaping

- renamed to /networks/{networkId}/wireless/ssids/{number}/trafficShaping/rules


PATH /networks/{networkId}/staticRoutes

- renamed to /networks/{networkId}/appliance/staticRoutes


PATH /networks/{networkId}/staticRoutes/{staticRouteId}

- renamed to /networks/{networkId}/appliance/staticRoutes/{staticRouteId}


PATH /networks/{networkId}/swapWarmSpare

- renamed to /networks/{networkId}/appliance/warmSpare/swap


PATH /networks/{networkId}/switch/settings/dhcpServerPolicy

- renamed to /networks/{networkId}/switch/dhcpServerPolicy


PATH /networks/{networkId}/switch/settings/dscpToCosMappings

- renamed to /networks/{networkId}/switch/dscpToCosMappings


PATH /networks/{networkId}/switch/settings/mtu

- renamed to /networks/{networkId}/switch/mtu


PATH /networks/{networkId}/switch/settings/multicast

- renamed to /networks/{networkId}/switch/routing/multicast


PATH /networks/{networkId}/switch/settings/qosRules

- renamed to /networks/{networkId}/switch/qosRules


PATH /networks/{networkId}/switch/settings/qosRules/order

- renamed to /networks/{networkId}/switch/qosRules/order


PATH /networks/{networkId}/switch/settings/qosRules/{qosRuleId}

- renamed to /networks/{networkId}/switch/qosRules/{qosRuleId}


PATH /networks/{networkId}/switch/settings/stormControl

- renamed to /networks/{networkId}/switch/stormControl


PATH /networks/{networkId}/switch/settings/stp

- renamed to /networks/{networkId}/switch/stp


PATH /networks/{networkId}/switchStacks

- renamed to /networks/{networkId}/switch/stacks


PATH /networks/{networkId}/switchStacks/{switchStackId}

- renamed to /networks/{networkId}/switch/stacks/{switchStackId}


PATH /networks/{networkId}/switchStacks/{switchStackId}/add

- renamed to /networks/{networkId}/switch/stacks/{switchStackId}/add


PATH /networks/{networkId}/switchStacks/{switchStackId}/remove

- renamed to /networks/{networkId}/switch/stacks/{switchStackId}/remove


PATH /networks/{networkId}/trafficAnalysisSettings

- renamed to /networks/{networkId}/trafficAnalysis


PATH /networks/{networkId}/trafficShaping

- renamed to /networks/{networkId}/appliance/trafficShaping/rules


PATH /networks/{networkId}/uplinkSettings

- renamed to /networks/{networkId}/cellularGateway/uplink


PATH /networks/{networkId}/vlans

- renamed to /networks/{networkId}/appliance/vlans


PATH /networks/{networkId}/vlans/{vlanId}

- renamed to /networks/{networkId}/appliance/vlans/{vlanId}


PATH /networks/{networkId}/vlansEnabledState

- renamed to /networks/{networkId}/appliance/vlans/settings


PATH /networks/{networkId}/warmSpareSettings

- renamed to /networks/{networkId}/appliance/warmSpare


PATH /networks/{network_id}/sm/{id}/connectivity

- renamed to /networks/{networkId}/sm/devices/{deviceId}/connectivity


PATH /networks/{network_id}/sm/{id}/desktopLogs

- renamed to /networks/{networkId}/sm/devices/{deviceId}/desktopLogs


PATH /networks/{network_id}/sm/{id}/deviceCommandLogs

- renamed to /networks/{networkId}/sm/devices/{deviceId}/deviceCommandLogs


PATH /networks/{network_id}/sm/{id}/performanceHistory

- renamed to /networks/{networkId}/sm/devices/{deviceId}/performanceHistory


PATH /organizations/{organizationId}/admins/{id}

- renamed to /organizations/{organizationId}/admins/{adminId}


PATH /organizations/{organizationId}/configTemplates/{configTemplateId}/switchProfiles

- renamed to /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles


PATH /organizations/{organizationId}/deviceStatuses

- renamed to /organizations/{organizationId}/devices/statuses


PATH /organizations/{organizationId}/licenseState

- renamed to /organizations/{organizationId}/licenses/overview


PATH /organizations/{organizationId}/security/intrusionSettings

- renamed to /organizations/{organizationId}/appliance/security/intrusion


PATH /organizations/{organizationId}/securityEvents

- renamed to /organizations/{organizationId}/appliance/security/events


PATH /organizations/{organizationId}/thirdPartyVPNPeers

- renamed to /organizations/{organizationId}/appliance/vpn/thirdPartyVPNPeers


PATH /organizations/{organizationId}/uplinksLossAndLatency

- renamed to /organizations/{organizationId}/devices/uplinksLossAndLatency


PATH /organizations/{organizationId}/vpnFirewallRules

- renamed to /organizations/{organizationId}/appliance/vpn/vpnFirewallRules


PATH /organizations/{organizationId}/webhookLogs

- renamed to /organizations/{organizationId}/webhooks/logs


[ networks ]

Update a network

PUT /networks/{networkId}

- Property tags type turn from string to array


Provisions a client with a name and policy. Clients can be provisioned before they associate to the network.

POST /networks/{networkId}/clients/provision

- Required property clients added


Claim devices into a network

POST /networks/{networkId}/devices/claim

- Property serials became required

- Param claimNetworkDevices became required


[ organizations ]

Update a SAML role

PUT /organizations/{organizationId}/samlRoles/{samlRoleId}

- Property tag became required

- Property access became required

- Property id became required

- Property access became required


Update the SNMP settings for an organization

PUT /organizations/{organizationId}/snmp

- Property peerIps type turn from string to array


Create a network

POST /organizations/{organizationId}/networks

- Property tags type turn from string to array

- Required property productTypes added


Create a SAML role

POST /organizations/{organizationId}/samlRoles

- Property role became required

- Property orgAccess became required

- Property tag became required

- Property access became required

- Property id became required

- Property access became required

- Param createOrganizationSamlRole became required


What's Updated

[ networks ]

PATH /networks/{networkId}/firmwareUpgrades

- Path added

- New operation

Get current maintenance window for a network

GET /networks/{networkId}/firmwareUpgrades

{
    "upgradeWindow": {
        "hourOfDay": "4:00",
        "dayOfWeek": "Sun"
    }
}

- New operation

Update current maintenance window for a network

PUT /networks/{networkId}/firmwareUpgrades

{
    "upgradeWindow": {
        "hourOfDay": "4:00",
        "dayOfWeek": "Sun"
    }
}


PATH /networks/{networkId}/mqttBrokers

- Path added

- New operation

List the MQTT brokers for this network

GET /networks/{networkId}/mqttBrokers

[
    {
        "id": "1234",
        "name": "MQTT_Broker_1",
        "host": "1.1.1.1",
        "port": 1234
    }
]

- New operation

Add an MQTT broker

POST /networks/{networkId}/mqttBrokers

{
    "id": "1234",
    "name": "MQTT_Broker_1",
    "host": "1.1.1.1",
    "port": 1234
}


PATH /networks/{networkId}/mqttBrokers/{mqttBrokerId}

- Path added

- New operation

Return an MQTT broker

GET /networks/{networkId}/mqttBrokers/{mqttBrokerId}

{
    "id": "1234",
    "name": "MQTT_Broker_1",
    "host": "1.1.1.1",
    "port": 1234
}

- New operation

Update an MQTT broker

PUT /networks/{networkId}/mqttBrokers/{mqttBrokerId}

{
    "id": "1234",
    "name": "MQTT_Broker_1",
    "host": "1.1.1.1",
    "port": 1234
}

- New operation

Delete an MQTT broker

DELETE /networks/{networkId}/mqttBrokers/{mqttBrokerId}



PATH /networks/{networkId}/networkHealth/channelUtilization

- Path added

- New operation

Get the channel utilization over each radio for all APs in a network.

GET /networks/{networkId}/networkHealth/channelUtilization

[
    {
        "serial": "Q234-ABCD-5678",
        "model": "MR34",
        "tags": " recently-added ",
        "wifi0": [
            {
                "startTime": "2018-10-09T22:18:27Z",
                "endTime": "2018-10-09T22:19:27Z",
                "utilizationTotal": 33.84,
                "utilization80211": 32,
                "utilizationNon80211": 1.84
            },
            {
                "startTime": "2018-10-09T22:19:27Z",
                "endTime": "2018-10-09T22:20:27Z",
                "utilizationTotal": 33.85,
                "utilization80211": 32.01,
                "utilizationNon80211": 1.84
            },
            {
                "startTime": "2018-10-09T22:20:27Z",
                "endTime": "2018-10-09T22:21:27Z",
                "utilizationTotal": 34.89,
                "utilization80211": 33.48,
                "utilizationNon80211": 1.41
            }
        ],
        "wifi1": [
            {
                "startTime": "2018-10-09T22:18:27Z",
                "endTime": "2018-10-09T22:19:27Z",
                "utilizationTotal": 33.84,
                "utilization80211": 32,
                "utilizationNon80211": 1.84
            },
            {
                "startTime": "2018-10-09T22:19:27Z",
                "endTime": "2018-10-09T22:20:27Z",
                "utilizationTotal": 33.85,
                "utilization80211": 32.01,
                "utilizationNon80211": 1.84
            },
            {
                "startTime": "2018-10-09T22:20:27Z",
                "endTime": "2018-10-09T22:21:27Z",
                "utilizationTotal": 34.89,
                "utilization80211": 33.48,
                "utilizationNon80211": 1.41
            }
        ]
    }
]


PATH /networks/{networkId}/settings

- Path added

- New operation

Return the settings for a network

GET /networks/{networkId}/settings

{
    "localStatusPageEnabled": true,
    "remoteStatusPageEnabled": true
}

- New operation

Update the settings for a network

PUT /networks/{networkId}/settings

{
    "localStatusPageEnabled": true,
    "remoteStatusPageEnabled": true
}


Update a network

PUT /networks/{networkId}

- Property disableMyMerakiCom Deleted

- Property disableRemoteStatusPage Deleted


Update a user configured with Meraki Authentication (currently only 802.1X RADIUS users can be updated)

PUT /networks/{networkId}/merakiAuthUsers/{merakiAuthUserId}

- Added operation method

Update a user configured with Meraki Authentication (currently only 802.1X RADIUS users can be updated)

updateNetworkMerakiAuthUser

{
    "merakiAuthUserId": "aGlAaGkuY29t",
    "email": "miles@meraki.com",
    "name": "Miles Meraki",
    "createdAt": "2018-02-11T00:00:00.090210Z",
    "accountType": "802.1X",
    "authorizations": [
        {
            "authorizedZone": "Store WiFi",
            "expiresAt": "2018-03-13T00:00:00.090210Z",
            "authorizedByName": "Miles Meraki",
            "authorizedByEmail": "miles@meraki.com"
        }
    ]
}


Provisions a client with a name and policy. Clients can be provisioned before they associate to the network.

POST /networks/{networkId}/clients/provision

- Property mac Deleted

- Property name Deleted


Claim devices into a network

POST /networks/{networkId}/devices/claim

- Property serial Deleted


Create a user configured with Meraki Authentication for a network (currently only 802.1X RADIUS users can be created, and currently, organizations have a 50,000 user cap)

POST /networks/{networkId}/merakiAuthUsers

- Added operation method

Create a user configured with Meraki Authentication for a network (currently only 802.1X RADIUS users can be created, and currently, organizations have a 50,000 user cap)

createNetworkMerakiAuthUser

{
    "merakiAuthUserId": "aGlAaGkuY29t",
    "email": "miles@meraki.com",
    "name": "Miles Meraki",
    "createdAt": "2018-02-11T00:00:00.090210Z",
    "accountType": "802.1X",
    "authorizations": [
        {
            "authorizedZone": "Store WiFi",
            "expiresAt": "2018-03-13T00:00:00.090210Z",
            "authorizedByName": "Miles Meraki",
            "authorizedByEmail": "miles@meraki.com"
        }
    ]
}


Return the policy assigned to a client on the network. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.

GET /networks/{networkId}/clients/{clientId}/policy

- Response property devicePolicy value added


List the splash or RADIUS users configured under Meraki Authentication for a network

GET /networks/{networkId}/merakiAuthUsers

- Response property merakiAuthUserId value added


Return the Meraki Auth splash or RADIUS user

GET /networks/{networkId}/merakiAuthUsers/{merakiAuthUserId}

- Response property merakiAuthUserId value added


Delete a user configured with Meraki Authentication (currently only 802.1X RADIUS users can be deleted)

DELETE /networks/{networkId}/merakiAuthUsers/{merakiAuthUserId}

- Added operation method

Delete a user configured with Meraki Authentication (currently only 802.1X RADIUS users can be deleted)

deleteNetworkMerakiAuthUser



[ organizations ]

PATH /organizations/{organizationId}/inventoryDevices

- Path added

- New operation

Return the device inventory for an organization

GET /organizations/{organizationId}/inventoryDevices

[
    {
        "mac": "00:11:22:33:44:55",
        "serial": "Q234-ABCD-5678",
        "name": "My AP",
        "model": "MR34",
        "networkId": "N_24329156",
        "orderNumber": "4C1234567",
        "claimedAt": "2018-02-11T00:00:00.090210Z",
        "licenseExpirationDate": "2020-05-02T10:52:44.012345Z"
    }
]


PATH /organizations/{organizationId}/saml

- Path added

- New operation

Returns the SAML SSO enabled settings for an organization.

GET /organizations/{organizationId}/saml

{
    "enabled": true
}

- New operation

Updates the SAML SSO enabled settings for an organization.

PUT /organizations/{organizationId}/saml

{
    "enabled": true
}


PATH /organizations/{organizationId}/saml/idps

- Path added

- New operation

List the SAML IdPs in your organization.

GET /organizations/{organizationId}/saml/idps

[
    {
        "idpId": "ab0c1de23Fg",
        "consumerUrl": "https://n7.meraki.com/saml/login/XXX",
        "x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
        "sloLogoutUrl": "https://somewhere.com"
    }
]

- New operation

Create a SAML IdP for your organization.

POST /organizations/{organizationId}/saml/idps

{
    "idpId": "ab0c1de23Fg",
    "consumerUrl": "https://n7.meraki.com/saml/login/XXX",
    "x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
    "sloLogoutUrl": "https://somewhere.com"
}


PATH /organizations/{organizationId}/saml/idps/{idpId}

- Path added

- New operation

Get a SAML IdP from your organization.

GET /organizations/{organizationId}/saml/idps/{idpId}

{
    "idpId": "ab0c1de23Fg",
    "consumerUrl": "https://n7.meraki.com/saml/login/XXX",
    "x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
    "sloLogoutUrl": "https://somewhere.com"
}

- New operation

Update a SAML IdP in your organization

PUT /organizations/{organizationId}/saml/idps/{idpId}

{
    "idpId": "ab0c1de23Fg",
    "consumerUrl": "https://n7.meraki.com/saml/login/XXX",
    "x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
    "sloLogoutUrl": "https://somewhere.com"
}

- New operation

Remove a SAML IdP in your organization.

DELETE /organizations/{organizationId}/saml/idps/{idpId}



Update a configuration template

PUT /organizations/{organizationId}/configTemplates/{configTemplateId}

- Added operation method

Update a configuration template

updateOrganizationConfigTemplate

{
    "id": "N_24329156",
    "name": "My config template",
    "productTypes": [
        "appliance",
        "switch",
        "wireless"
    ],
    "timeZone": "America/Los_Angeles"
}


Create a new dashboard administrator

POST /organizations/{organizationId}/admins

- Optional property authenticationMethod Added


Create a new configuration template

POST /organizations/{organizationId}/configTemplates

- Added operation method

Create a new configuration template

createOrganizationConfigTemplate

{
    "id": "N_24329156",
    "name": "My config template",
    "productTypes": [
        "appliance",
        "switch",
        "wireless"
    ],
    "timeZone": "America/Los_Angeles"
}


Create a network

POST /organizations/{organizationId}/networks

- Property type Deleted

- Property disableMyMerakiCom Deleted

- Property disableRemoteStatusPage Deleted


Return the list of action batches in the organization

GET /organizations/{organizationId}/actionBatches

- Optional param status added


List the dashboard administrators in this organization

GET /organizations/{organizationId}/admins

- Response property authenticationMethod value added


Return a single configuration template

GET /organizations/{organizationId}/configTemplates/{configTemplateId}

- Added operation method

Return a single configuration template

getOrganizationConfigTemplate

{
    "id": "N_24329156",
    "name": "My config template",
    "productTypes": [
        "appliance",
        "switch",
        "wireless"
    ],
    "timeZone": "America/Los_Angeles"
}


List the networks that the user has privileges on in an organization

GET /organizations/{organizationId}/networks

- Optional param tags added

- Optional param tagsFilterType added

- Optional param perPage added

- Optional param startingAfter added

- Optional param endingBefore added

- Response property headers value added

- Summary changed from List the networks in an organization to List the networks that the user has privileges on in an organization


[ camera ]

PATH /devices/{serial}/camera/sense

- Path added

- New operation

Returns sense settings for a given camera

GET /devices/{serial}/camera/sense

{
    "senseEnabled": true,
    "mqttBrokerId": "1234",
    "mqttTopics": [
        "/merakimv/Q2AA-AAAA-1111/raw_detections",
        "/merakimv/Q2AA-AAAA-1111/light"
    ]
}

- New operation

Update sense settings for the given camera

PUT /devices/{serial}/camera/sense

{
    "senseEnabled": true,
    "mqttBrokerId": "1234",
    "mqttTopics": [
        "/merakimv/Q2AA-AAAA-1111/raw_detections",
        "/merakimv/Q2AA-AAAA-1111/light"
    ]
}


PATH /devices/{serial}/camera/sense/objectDetectionModels

- Path added

- New operation

Returns the MV Sense object detection model list for the given camera

GET /devices/{serial}/camera/sense/objectDetectionModels

[
    {
        "id": "0",
        "description": "Model A"
    }
]


Update an existing quality retention profile for this network.

PUT /networks/{networkId}/camera/qualityRetentionProfiles/{qualityRetentionProfileId}

- Property MV02 Deleted


Creates new quality retention profile for this network.

POST /networks/{networkId}/camera/qualityRetentionProfiles

- Property MV02 Deleted


[ sm ]

PATH /networks/{networkId}/sm/devices/wipe

- Path added

- New operation

Wipe a device

POST /networks/{networkId}/sm/devices/wipe

{
    "id": "1284392014819"
}


PATH /organizations/{organizationId}/sm/apnsCert

- Path added

- New operation

Get the organization's APNS certificate

GET /organizations/{organizationId}/sm/apnsCert

{
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIFdjCCBF6gAwIBAgIIM/hhf5ww8MwwDQYJKoZIhvcNAQELBQAwgYwxQDA+BgNV\nBAMMN0FwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIDIgQ2VydGlmaWNhdGlv\nbiBBdXRob3JpdHkxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9y\naXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0yMDAyMjYx\nODIzNDJaFw0yMTAyMjUxODIzNDJaMIGPMUwwSgYKCZImiZPyLGQBAQw8Y29tLmFw\ncGxlLm1nbXQuRXh0ZXJuYWwuOTA3NDJhYmYtZDhhZC00MTc2LTllZmQtMGNiMzg1\nMTM1MGM0MTIwMAYDVQQDDClBUFNQOjkwNzQyYWJmLWQ4YWQtNDE3Ni05ZWZkLTBj\nYjM4NTEzNTBjNDELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\nggEKAoIBAQDANdpo62hfxkP1IpMPXuO1+xKekUkY+iYae6cRaP886bodUaH1OwCj\nQd011u9Vng6m8I9rcLdIOS+IkFGKcTAHRYY3noqfEQUPyi5TN6yM1/mVYVoWZUnY\nTrNWqDN/HfRagdYfZyQ7kAtOY2K8TF78HLLqQm7ez2+r4qibumoSli9+qCzKwDW/\nhbx7JTeMlbYkhLTFgBkRxlp+usKymsLKm8D7kdbxtct4mx6p9z1FiNu4U1Hi/PgK\nI/V3zHD4Ww7SzTICiLdCPeAmt042JvXAMQi0qhzrEdDiapmWwUC9xiiORN0BTIRA\nT+DddTx8Xcly4wj9vQFdGUGLrJnzB3xZAgMBAAGjggHVMIIB0TAJBgNVHRMEAjAA\nMB8GA1UdIwQYMBaAFPe+fCFgkds9G3vYOjKBad+ebH+bMIIBHAYDVR0gBIIBEzCC\nAQ8wggELBgkqhkiG92NkBQEwgf0wgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ug\nb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRh\nbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNv\nbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmlj\nYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYIKwYBBQUHAgEWKWh0dHA6Ly93\nd3cuYXBwbGUuY29tL2NlcnRpZmljYXRlYXV0aG9yaXR5MBMGA1UdJQQMMAoGCCsG\nAQUFBwMCMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9jcmwuYXBwbGUuY29tL2Fh\naTJjYS5jcmwwHQYDVR0OBBYEFDj4Jizt9bQX7dn3ypIanvaNIy8fMAsGA1UdDwQE\nAwIHgDAQBgoqhkiG92NkBgMCBAIFADANBgkqhkiG9w0BAQsFAAOCAQEARmLmy4Mh\n80hTBHMj2whrC2LR0dIe2ngAUwYGSocyPZOzlGZYntUvpsNGwflbWSPNxFpVF15z\nexEcLPKM4f9KGdM27s/m/x1Es2us9Vve+wS+N0C84zMC++FJBIxj3yAINXqSpYJv\nbA5wccHlzP9F9Ks7sVNQB8y0mibYahtxVV959gC4522t5SRaEEsd82oTCtXE2Ljg\nfQ1IAmWi4MuMSPwp26oDSwun8Wxyx+sfi/it9YWxD36Ga9mrfIjK1WIHyhge0HHr\nolnvMfxgwI9E5gGV/4bQzPlmsHdz+/pLupWMkALaAxI9D7ajUG7iyyjJBCOpsr1s\nFjDvo6WUkaqMHA==\n-----END CERTIFICATE-----\n"
}


PATH /organizations/{organizationId}/sm/vppAccounts

- Path added

- New operation

List the VPP accounts in the organization

GET /organizations/{organizationId}/sm/vppAccounts

[
    {
        "id": "1284392014819",
        "vppServiceToken": "eyJleHBEYXRlIjoiMjAyMS0wMi0yNVQxNjo1NToyMy0wODAwIiwidG9rZW4iOiJBZFN4YWxyQmhFK0FhSWUrYTJDbDE1aDg1N0ZkUDkrL2c5c00xUWhlMG1WS0ZKWkdOL0hxRnQxeitSVERSTkNLNkxhMEExellML3JFa2tpOG1pbk8xRDlJWHhZQnBERy8wZllhTE44UlUrMDhYZkZsNlVwenkrRE8wQW41ZGgxWncwSmZiYmlXU21VVG94TFJmV1BCcVE9PSIsIm9yZ05hbWUiOiJNZXJha2kgTExDICsgRGV2ZWxvcGVyIn0="
    }
]


PATH /organizations/{organizationId}/sm/vppAccounts/{vppAccountId}

- Path added

- New operation

Get a hash containing the unparsed token of the VPP account with the given ID

GET /organizations/{organizationId}/sm/vppAccounts/{vppAccountId}

{
    "id": "1284392014819",
    "vppServiceToken": "eyJleHBEYXRlIjoiMjAyMS0wMi0yNVQxNjo1NToyMy0wODAwIiwidG9rZW4iOiJBZFN4YWxyQmhFK0FhSWUrYTJDbDE1aDg1N0ZkUDkrL2c5c00xUWhlMG1WS0ZKWkdOL0hxRnQxeitSVERSTkNLNkxhMEExellML3JFa2tpOG1pbk8xRDlJWHhZQnBERy8wZllhTE44UlUrMDhYZkZsNlVwenkrRE8wQW41ZGgxWncwSmZiYmlXU21VVG94TFJmV1BCcVE9PSIsIm9yZ05hbWUiOiJNZXJha2kgTExDICsgRGV2ZWxvcGVyIn0="
}


List all profiles in a network

GET /networks/{networkId}/sm/profiles

- Summary changed from List all the profiles in the network to List all profiles in a network


[ wireless ]

PATH /networks/{networkId}/wireless/alternateManagementInterface

- Path added

- New operation

Return alternate management interface and devices with IP assigned

GET /networks/{networkId}/wireless/alternateManagementInterface

{
    "enabled": true,
    "vlanId": 100,
    "protocols": [
        "radius",
        "snmp",
        "syslog",
        "ldap"
    ],
    "accessPoints": [
        {
            "serial": "Q234-ABCD-5678",
            "alternateManagementIp": "1.2.3.4",
            "subnetMask": "255.255.255.0",
            "gateway": "1.2.3.5",
            "dns1": "8.8.8.8",
            "dns2": "8.8.4.4"
        }
    ]
}

- New operation

Update alternate management interface and device static IP

PUT /networks/{networkId}/wireless/alternateManagementInterface

{
    "enabled": true,
    "vlanId": 100,
    "protocols": [
        "radius",
        "snmp",
        "syslog",
        "ldap"
    ],
    "accessPoints": [
        {
            "serial": "Q234-ABCD-5678",
            "alternateManagementIp": "1.2.3.4",
            "subnetMask": "255.255.255.0",
            "gateway": "1.2.3.5",
            "dns1": "8.8.8.8",
            "dns2": "8.8.4.4"
        }
    ]
}


PATH /networks/{networkId}/wireless/channelUtilizationHistory

- Path added

- New operation

Return AP channel utilization over time for a device or network client

GET /networks/{networkId}/wireless/channelUtilizationHistory

[
    {
        "startTs": "2020-01-01T00:00:00Z",
        "endTs": "2020-01-01T01:00:00Z",
        "utilizationTotal": 9.89,
        "utilization80211": 7.22,
        "utilizationNon80211": 2.67
    },
    {
        "startTs": "2020-01-01T01:00:00Z",
        "endTs": "2020-01-01T02:00:00Z",
        "utilizationTotal": 8.78,
        "utilization80211": 6.38,
        "utilizationNon80211": 2.41
    }
]


PATH /networks/{networkId}/wireless/clientCountHistory

- Path added

- New operation

Return wireless client counts over time for a network, device, or network client

GET /networks/{networkId}/wireless/clientCountHistory

[
    {
        "startTs": "2020-01-01T00:00:00Z",
        "endTs": "2020-01-01T01:00:00Z",
        "clientCount": 14
    },
    {
        "startTs": "2020-01-01T01:00:00Z",
        "endTs": "2020-01-01T02:00:00Z",
        "clientCount": 29
    }
]


PATH /networks/{networkId}/wireless/clients/{clientId}/connectivityEvents

- Path added

- New operation

List the wireless connectivity events for a client within a network in the timespan.

GET /networks/{networkId}/wireless/clients/{clientId}/connectivityEvents

[
    {
        "occurredAt": 1518365681,
        "deviceSerial": "Q234-ABCD-5678",
        "band": 5,
        "ssidNumber": 1,
        "type": "bad",
        "subtype": "radius",
        "severity": "bad",
        "durationMs": 100.1,
        "channel": 44,
        "rssi": 80,
        "eventData": {
            "clientIp": "10.1.2.3"
        }
    }
]


PATH /networks/{networkId}/wireless/dataRateHistory

- Path added

- New operation

Return PHY data rates over time for a network, device, or network client

GET /networks/{networkId}/wireless/dataRateHistory

[
    {
        "startTs": "2020-01-01T00:00:00Z",
        "endTs": "2020-01-01T01:00:00Z",
        "averageKbps": 151806,
        "downloadKbps": 144839,
        "uploadKbps": 158837
    },
    {
        "startTs": "2020-01-01T01:00:00Z",
        "endTs": "2020-01-01T02:00:00Z",
        "averageKbps": 167864,
        "downloadKbps": 156179,
        "uploadKbps": 188375
    }
]


PATH /networks/{networkId}/wireless/latencyHistory

- Path added

- New operation

Return average wireless latency over time for a network, device, or network client

GET /networks/{networkId}/wireless/latencyHistory

[
    {
        "startTs": "2020-01-01T00:00:00Z",
        "endTs": "2020-01-01T01:00:00Z",
        "avgLatencyMs": 29
    },
    {
        "startTs": "2020-01-01T01:00:00Z",
        "endTs": "2020-01-01T02:00:00Z",
        "avgLatencyMs": 76
    }
]


PATH /networks/{networkId}/wireless/meshStatuses

- Path added

- New operation

List wireless mesh statuses for repeaters

GET /networks/{networkId}/wireless/meshStatuses

{
    "serial": "Q234-ABCD-5678",
    "meshRoute": [
        "Q234-ABCD-5678",
        "QWEY-SKTD-ST01",
        "QWEY-SKTD-ST02"
    ],
    "latestMeshPerformance": {
        "mbps": 43,
        "metric": 12345,
        "usagePercentage": "100%"
    }
}


PATH /networks/{networkId}/wireless/signalQualityHistory

- Path added

- New operation

Return signal quality (SNR/RSSI) over time for a device or network client

GET /networks/{networkId}/wireless/signalQualityHistory

[
    {
        "startTs": "2020-01-01T00:00:00Z",
        "endTs": "2020-01-01T01:00:00Z",
        "snr": 27,
        "rssi": -77
    },
    {
        "startTs": "2020-01-01T01:00:00Z",
        "endTs": "2020-01-01T02:00:00Z",
        "snr": 28,
        "rssi": -76
    }
]


PATH /networks/{networkId}/wireless/ssids

- Path added

- New operation

List the MR SSIDs in a network

GET /networks/{networkId}/wireless/ssids

[
    {
        "number": 0,
        "name": "My SSID",
        "enabled": true,
        "splashPage": "Click-through splash page",
        "ssidAdminAccessible": false,
        "authMode": "8021x-radius",
        "encryptionMode": "wpa-eap",
        "wpaEncryptionMode": "WPA2 only",
        "radiusServers": [
            {
                "host": "0.0.0.0",
                "port": 3000
            }
        ],
        "radiusAccountingEnabled": false,
        "radiusEnabled": true,
        "radiusAttributeForGroupPolicies": "Filter-Id",
        "radiusFailoverPolicy": "null",
        "radiusLoadBalancingPolicy": "null",
        "ipAssignmentMode": "NAT mode",
        "adminSplashUrl": "http://example.com",
        "splashTimeout": "30 minutes",
        "walledGardenEnabled": true,
        "walledGardenRanges": [
            "example.com",
            "1.1.1.1\u001a"
        ],
        "minBitrate": 11,
        "bandSelection": "5 GHz band only",
        "perClientBandwidthLimitUp": 0,
        "perClientBandwidthLimitDown": 0,
        "visible": true,
        "availableOnAllAps": false,
        "availabilityTags": [
            "test-tag"
        ],
        "perSsidBandwidthLimitUp": 0,
        "perSsidBandwidthLimitDown": 0,
        "mandatoryDhcpEnabled": false
    }
]


PATH /networks/{networkId}/wireless/ssids/{number}

- Path added

- New operation

Return a single MR SSID

GET /networks/{networkId}/wireless/ssids/{number}

{
    "number": 0,
    "name": "My SSID",
    "enabled": true,
    "splashPage": "Click-through splash page",
    "ssidAdminAccessible": false,
    "authMode": "8021x-radius",
    "encryptionMode": "wpa-eap",
    "wpaEncryptionMode": "WPA2 only",
    "radiusServers": [
        {
            "host": "0.0.0.0",
            "port": 3000
        }
    ],
    "radiusAccountingEnabled": false,
    "radiusEnabled": true,
    "radiusAttributeForGroupPolicies": "Filter-Id",
    "radiusFailoverPolicy": "null",
    "radiusLoadBalancingPolicy": "null",
    "ipAssignmentMode": "NAT mode",
    "adminSplashUrl": "http://example.com",
    "splashTimeout": "30 minutes",
    "walledGardenEnabled": true,
    "walledGardenRanges": [
        "example.com",
        "1.1.1.1\u001a"
    ],
    "minBitrate": 11,
    "bandSelection": "5 GHz band only",
    "perClientBandwidthLimitUp": 0,
    "perClientBandwidthLimitDown": 0,
    "visible": true,
    "availableOnAllAps": false,
    "availabilityTags": [
        "test-tag"
    ],
    "perSsidBandwidthLimitUp": 0,
    "perSsidBandwidthLimitDown": 0,
    "mandatoryDhcpEnabled": false
}

- New operation

Update the attributes of an MR SSID

PUT /networks/{networkId}/wireless/ssids/{number}

{
    "number": 0,
    "name": "My SSID",
    "enabled": true,
    "splashPage": "Click-through splash page",
    "ssidAdminAccessible": false,
    "authMode": "8021x-radius",
    "encryptionMode": "wpa-eap",
    "wpaEncryptionMode": "WPA2 only",
    "radiusServers": [
        {
            "host": "0.0.0.0",
            "port": 3000
        }
    ],
    "radiusAccountingEnabled": false,
    "radiusEnabled": true,
    "radiusAttributeForGroupPolicies": "Filter-Id",
    "radiusFailoverPolicy": "null",
    "radiusLoadBalancingPolicy": "null",
    "ipAssignmentMode": "NAT mode",
    "adminSplashUrl": "http://example.com",
    "splashTimeout": "30 minutes",
    "walledGardenEnabled": true,
    "walledGardenRanges": [
        "example.com",
        "1.1.1.1\u001a"
    ],
    "minBitrate": 11,
    "bandSelection": "5 GHz band only",
    "perClientBandwidthLimitUp": 0,
    "perClientBandwidthLimitDown": 0,
    "visible": true,
    "availableOnAllAps": false,
    "availabilityTags": [
        "test-tag"
    ],
    "perSsidBandwidthLimitUp": 0,
    "perSsidBandwidthLimitDown": 0,
    "mandatoryDhcpEnabled": false
}


PATH /networks/{networkId}/wireless/ssids/{number}/firewall/l7FirewallRules

- Path added

- New operation

Return the L7 firewall rules for an SSID on an MR network

GET /networks/{networkId}/wireless/ssids/{number}/firewall/l7FirewallRules

{
    "rules": [
        {
            "policy": "deny",
            "type": "application",
            "value": {
                "id": "meraki:layer7/application/67",
                "name": "Xbox LIVE"
            }
        },
        {
            "policy": "deny",
            "type": "applicationCategory",
            "value": {
                "id": "meraki:layer7/category/2",
                "name": "Blogging"
            }
        },
        {
            "policy": "deny",
            "type": "host",
            "value": "google.com"
        },
        {
            "policy": "deny",
            "type": "port",
            "value": "23"
        },
        {
            "policy": "deny",
            "type": "ipRange",
            "value": "10.11.12.00/24"
        },
        {
            "policy": "deny",
            "type": "ipRange",
            "value": "10.11.12.00/24:5555"
        }
    ]
}

- New operation

Update the L7 firewall rules of an SSID on an MR network

PUT /networks/{networkId}/wireless/ssids/{number}/firewall/l7FirewallRules

{
    "rules": [
        {
            "policy": "deny",
            "type": "application",
            "value": {
                "id": "meraki:layer7/application/67",
                "name": "Xbox LIVE"
            }
        },
        {
            "policy": "deny",
            "type": "applicationCategory",
            "value": {
                "id": "meraki:layer7/category/2",
                "name": "Blogging"
            }
        },
        {
            "policy": "deny",
            "type": "host",
            "value": "google.com"
        },
        {
            "policy": "deny",
            "type": "port",
            "value": "23"
        },
        {
            "policy": "deny",
            "type": "ipRange",
            "value": "10.11.12.00/24"
        },
        {
            "policy": "deny",
            "type": "ipRange",
            "value": "10.11.12.00/24:5555"
        }
    ]
}


PATH /networks/{networkId}/wireless/ssids/{number}/identityPsks

- Path added

- New operation

List all Identity PSKs in a wireless network

GET /networks/{networkId}/wireless/ssids/{number}/identityPsks

[
    {
        "identityPskId": "1284392014819",
        "name": "Sample Identity PSK",
        "passphrase": "NIalareK",
        "groupPolicyId": "101"
    }
]

- New operation

Create an Identity PSK

POST /networks/{networkId}/wireless/ssids/{number}/identityPsks

{
    "identityPskId": "1284392014819",
    "name": "Sample Identity PSK",
    "passphrase": "NIalareK",
    "groupPolicyId": "101"
}


PATH /networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId}

- Path added

- New operation

Return an Identity PSK

GET /networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId}

{
    "identityPskId": "1284392014819",
    "name": "Sample Identity PSK",
    "passphrase": "NIalareK",
    "groupPolicyId": "101"
}

- New operation

Update an Identity PSK

PUT /networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId}

{
    "identityPskId": "1284392014819",
    "name": "Sample Identity PSK",
    "passphrase": "NIalareK",
    "groupPolicyId": "101"
}

- New operation

Delete an Identity PSK

DELETE /networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId}



PATH /networks/{networkId}/wireless/usageHistory

- Path added

- New operation

Return AP usage over time for a device or network client

GET /networks/{networkId}/wireless/usageHistory

[
    {
        "startTs": "2020-01-01T00:00:00Z",
        "endTs": "2020-01-01T01:00:00Z",
        "totalKbps": 2590,
        "sentKbps": 159,
        "receivedKbps": 2431
    },
    {
        "startTs": "2020-01-01T01:00:00Z",
        "endTs": "2020-01-01T02:00:00Z",
        "totalKbps": 1108,
        "sentKbps": 144,
        "receivedKbps": 964
    }
]


Update the wireless settings for a network

PUT /networks/{networkId}/wireless/settings

- Optional property upgradeStrategy Added


Return the wireless settings for a network

GET /networks/{networkId}/wireless/settings

- Response property upgradeStrategy value added


[ insight ]

List the monitored media servers for this organization. Only valid for organizations with Meraki Insight.

GET /organizations/{organizationId}/insight/monitoredMediaServers

- Response property bestEffortMonitoringEnabled value added


Return a monitored media server for this organization. Only valid for organizations with Meraki Insight.

GET /organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId}

- Response property bestEffortMonitoringEnabled value added


[ appliance ]

PATH /devices/{serial}/appliance/dhcp/subnets

- Path added

- New operation

Return the DHCP subnet information for an appliance

GET /devices/{serial}/appliance/dhcp/subnets

[
    {
        "subnet": "192.168.1.0/24",
        "vlanId": 100,
        "usedCount": 2,
        "freeCount": 251
    }
]


PATH /networks/{networkId}/appliance/singleLan

- Path added

- New operation

Return single LAN configuration

GET /networks/{networkId}/appliance/singleLan

{
    "subnet": "192.168.1.0/24",
    "applianceIp": "192.168.1.2"
}

- New operation

Update single LAN configuration

PUT /networks/{networkId}/appliance/singleLan

{
    "subnet": "192.168.1.0/24",
    "applianceIp": "192.168.1.2"
}


PATH /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses

- Path added

- New operation

List all custom performance classes for an MX network

GET /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses

[
    {
        "customPerformanceClassId": "123",
        "name": "myCustomPerformanceClass",
        "maxLatency": 100,
        "maxJitter": 100,
        "maxLossPercentage": 5
    }
]

- New operation

Add a custom performance class for an MX network

POST /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses

{
    "customPerformanceClassId": "123",
    "name": "myCustomPerformanceClass",
    "maxLatency": 100,
    "maxJitter": 100,
    "maxLossPercentage": 5
}


PATH /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}

- Path added

- New operation

Return a custom performance class for an MX network

GET /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}

{
    "customPerformanceClassId": "123",
    "name": "myCustomPerformanceClass",
    "maxLatency": 100,
    "maxJitter": 100,
    "maxLossPercentage": 5
}

- New operation

Update a custom performance class for an MX network

PUT /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}

{
    "customPerformanceClassId": "123",
    "name": "myCustomPerformanceClass",
    "maxLatency": 100,
    "maxJitter": 100,
    "maxLossPercentage": 5
}

- New operation

Delete a custom performance class from an MX network

DELETE /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}



PATH /networks/{networkId}/appliance/trafficShaping/uplinkBandwidth

- Path added

- New operation

GET /networks/{networkId}/appliance/trafficShaping/uplinkBandwidth

{
    "bandwidthLimits": {
        "wan1": {
            "limitUp": 1000000,
            "limitDown": 1000000
        },
        "wan2": {
            "limitUp": 1000000,
            "limitDown": 1000000
        },
        "cellular": {
            "limitUp": 51200,
            "limitDown": 51200
        }
    }
}

- New operation

PUT /networks/{networkId}/appliance/trafficShaping/uplinkBandwidth

{
    "bandwidthLimits": {
        "wan1": {
            "limitUp": 1000000,
            "limitDown": 1000000
        },
        "wan2": {
            "limitUp": 1000000,
            "limitDown": 1000000
        },
        "cellular": {
            "limitUp": 51200,
            "limitDown": 51200
        }
    }
}


PATH /networks/{networkId}/appliance/trafficShaping/uplinkSelection

- Path added

- New operation

GET /networks/{networkId}/appliance/trafficShaping/uplinkSelection

{
    "activeActiveAutoVpnEnabled": true,
    "defaultUplink": "wan1",
    "loadBalancingEnabled": true,
    "wanTrafficUplinkPreferences": [
        {
            "trafficFilters": [
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "any",
                            "cidr": "192.168.1.0/24"
                        },
                        "destination": {
                            "port": "any",
                            "cidr": "any"
                        }
                    }
                }
            ],
            "preferredUplink": "wan2"
        },
        {
            "trafficFilters": [
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "1-1024",
                            "vlan": 10,
                            "host": 254
                        },
                        "destination": {
                            "port": "any",
                            "cidr": "any"
                        }
                    }
                }
            ],
            "preferredUplink": "wan1"
        }
    ],
    "vpnTrafficUplinkPreferences": [
        {
            "trafficFilters": [
                {
                    "type": "applicationCategory",
                    "value": {
                        "id": "meraki:layer7/category/1"
                    }
                },
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/33"
                    }
                },
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "any",
                            "cidr": "192.168.1.0/24"
                        },
                        "destination": {
                            "port": "any",
                            "cidr": "any"
                        }
                    }
                },
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "any",
                            "cidr": "any"
                        },
                        "destination": {
                            "port": "any",
                            "network": "L_23456789",
                            "vlan": 20,
                            "host": 200
                        }
                    }
                },
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "any",
                            "cidr": "any"
                        },
                        "destination": {
                            "port": "1-1024",
                            "fqdn": "www.google.com"
                        }
                    }
                }
            ],
            "preferredUplink": "wan2",
            "failOverCriterion": "poorPerformance",
            "performanceClass": {
                "type": "custom",
                "customPerformanceClassId": "123456"
            }
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/9"
                    }
                }
            ],
            "preferredUplink": "defaultUplink"
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/106"
                    }
                }
            ],
            "preferredUplink": "bestForVoIP"
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/107"
                    }
                }
            ],
            "preferredUplink": "loadBalancing",
            "performanceClass": {
                "type": "builtin",
                "builtinPerformanceClassName": "VoIP"
            }
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/162"
                    }
                }
            ],
            "preferredUplink": "loadBalancing",
            "performanceClass": {
                "type": "custom",
                "customPerformanceClassId": "123456"
            }
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/168"
                    }
                }
            ],
            "preferredUplink": "wan2",
            "failOverCriterion": "poorPerformance",
            "performanceClass": {
                "type": "builtin",
                "builtinPerformanceClassName": "VoIP"
            }
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/171"
                    }
                }
            ],
            "preferredUplink": "wan2",
            "failOverCriterion": "poorPerformance",
            "performanceClass": {
                "type": "custom",
                "customPerformanceClassId": "123456"
            }
        }
    ]
}

- New operation

PUT /networks/{networkId}/appliance/trafficShaping/uplinkSelection

{
    "activeActiveAutoVpnEnabled": true,
    "defaultUplink": "wan1",
    "loadBalancingEnabled": true,
    "wanTrafficUplinkPreferences": [
        {
            "trafficFilters": [
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "any",
                            "cidr": "192.168.1.0/24"
                        },
                        "destination": {
                            "port": "any",
                            "cidr": "any"
                        }
                    }
                }
            ],
            "preferredUplink": "wan2"
        },
        {
            "trafficFilters": [
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "1-1024",
                            "vlan": 10,
                            "host": 254
                        },
                        "destination": {
                            "port": "any",
                            "cidr": "any"
                        }
                    }
                }
            ],
            "preferredUplink": "wan1"
        }
    ],
    "vpnTrafficUplinkPreferences": [
        {
            "trafficFilters": [
                {
                    "type": "applicationCategory",
                    "value": {
                        "id": "meraki:layer7/category/1"
                    }
                },
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/33"
                    }
                },
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "any",
                            "cidr": "192.168.1.0/24"
                        },
                        "destination": {
                            "port": "any",
                            "cidr": "any"
                        }
                    }
                },
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "any",
                            "cidr": "any"
                        },
                        "destination": {
                            "port": "any",
                            "network": "L_23456789",
                            "vlan": 20,
                            "host": 200
                        }
                    }
                },
                {
                    "type": "custom",
                    "value": {
                        "protocol": "tcp",
                        "source": {
                            "port": "any",
                            "cidr": "any"
                        },
                        "destination": {
                            "port": "1-1024",
                            "fqdn": "www.google.com"
                        }
                    }
                }
            ],
            "preferredUplink": "wan2",
            "failOverCriterion": "poorPerformance",
            "performanceClass": {
                "type": "custom",
                "customPerformanceClassId": "123456"
            }
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/9"
                    }
                }
            ],
            "preferredUplink": "defaultUplink"
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/106"
                    }
                }
            ],
            "preferredUplink": "bestForVoIP"
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/107"
                    }
                }
            ],
            "preferredUplink": "loadBalancing",
            "performanceClass": {
                "type": "builtin",
                "builtinPerformanceClassName": "VoIP"
            }
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/162"
                    }
                }
            ],
            "preferredUplink": "loadBalancing",
            "performanceClass": {
                "type": "custom",
                "customPerformanceClassId": "123456"
            }
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/168"
                    }
                }
            ],
            "preferredUplink": "wan2",
            "failOverCriterion": "poorPerformance",
            "performanceClass": {
                "type": "builtin",
                "builtinPerformanceClassName": "VoIP"
            }
        },
        {
            "trafficFilters": [
                {
                    "type": "application",
                    "value": {
                        "id": "meraki:layer7/application/171"
                    }
                }
            ],
            "preferredUplink": "wan2",
            "failOverCriterion": "poorPerformance",
            "performanceClass": {
                "type": "custom",
                "customPerformanceClassId": "123456"
            }
        }
    ]
}


PATH /organizations/{organizationId}/appliance/uplink/statuses

- Path added

- New operation

GET /organizations/{organizationId}/appliance/uplink/statuses

[
    {
        "networkId": "N_24329156",
        "serial": "Q234-ABCD-5678",
        "lastReportedAt": "2018-02-11T00:00:00Z",
        "uplinks": [
            {
                "interface": "wan1",
                "status": "active",
                "ip": "1.2.3.4",
                "gateway": "1.2.3.5",
                "publicIp": "123.123.123.1",
                "primaryDns": "8.8.8.8",
                "secondaryDns": "8.8.4.4",
                "ipAssignedBy": "static"
            },
            {
                "interface": "cellular",
                "status": "ready",
                "ip": "1.2.3.4",
                "provider": "at&t",
                "publicIp": "123.123.123.1",
                "model": "integrated",
                "signalStat": {
                    "rsrp": "-120",
                    "rsrq": "-13"
                },
                "connectionType": "4g",
                "apn": "internet"
            }
        ]
    }
]


PATH /organizations/{organizationId}/appliance/vpn/stats

- Path added

- New operation

Show VPN history stat for networks in an organization

GET /organizations/{organizationId}/appliance/vpn/stats

[
    {
        "networkId": "N_12345678",
        "networkName": "San Francisco Office",
        "merakiVpnPeers": [
            {
                "networkId": "L_23456789",
                "networkName": "New York Office",
                "usageSummary": {
                    "receivedInKilobytes": 1234567,
                    "sentInKilobytes": 2345678
                },
                "latencySummaries": [
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan1",
                        "avgLatencyMs": 15,
                        "minLatencyMs": 10,
                        "maxLatencyMs": 30
                    },
                    {
                        "senderUplink": "wan2",
                        "receiverUplink": "wan1",
                        "avgLatencyMs": 15,
                        "minLatencyMs": 10,
                        "maxLatencyMs": 30
                    }
                ],
                "lossPercentageSummaries": [
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan1",
                        "avgLossPercentage": 0,
                        "minLossPercentage": 0,
                        "maxLossPercentage": 0.1
                    },
                    {
                        "senderUplink": "wan2",
                        "receiverUplink": "wan1",
                        "avgLossPercentage": 0,
                        "minLossPercentage": 0,
                        "maxLossPercentage": 0.1
                    }
                ],
                "jitterSummaries": [
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan1",
                        "avgJitter": 0.01,
                        "minJitter": 0,
                        "maxJitter": 0.25
                    },
                    {
                        "senderUplink": "wan2",
                        "receiverUplink": "wan1",
                        "avgJitter": 0.01,
                        "minJitter": 0,
                        "maxJitter": 0.25
                    }
                ],
                "mosSummaries": [
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan1",
                        "avgMos": 4.1,
                        "minMos": 4,
                        "maxMos": 4.2
                    },
                    {
                        "senderUplink": "wan2",
                        "receiverUplink": "wan1",
                        "avgMos": 4.1,
                        "minMos": 4,
                        "maxMos": 4.2
                    }
                ]
            }
        ]
    },
    {
        "networkId": "L_23456789",
        "networkName": "New York Office",
        "merakiVpnPeers": [
            {
                "networkId": "N_12345678",
                "networkName": "San Francisco Office",
                "usageSummary": {
                    "receivedInKilobytes": 2345678,
                    "sentInKilobytes": 1234567
                },
                "latencySummaries": [
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan1",
                        "avgLatencyMs": 15,
                        "minLatencyMs": 10,
                        "maxLatencyMs": 30
                    },
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan2",
                        "avgLatencyMs": 15,
                        "minLatencyMs": 10,
                        "maxLatencyMs": 30
                    }
                ],
                "lossPercentageSummaries": [
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan1",
                        "avgLossPercentage": 0,
                        "minLossPercentage": 0,
                        "maxLossPercentage": 0.1
                    },
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan2",
                        "avgLossPercentage": 0,
                        "minLossPercentage": 0,
                        "maxLossPercentage": 0.1
                    }
                ],
                "jitterSummaries": [
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan1",
                        "avgJitter": 0.01,
                        "minJitter": 0,
                        "maxJitter": 0.25
                    },
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan2",
                        "avgJitter": 0.01,
                        "minJitter": 0,
                        "maxJitter": 0.25
                    }
                ],
                "mosSummaries": [
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan1",
                        "avgMos": 4.1,
                        "minMos": 4,
                        "maxMos": 4.2
                    },
                    {
                        "senderUplink": "wan1",
                        "receiverUplink": "wan2",
                        "avgMos": 4.1,
                        "minMos": 4,
                        "maxMos": 4.2
                    }
                ]
            }
        ]
    }
]


PATH /organizations/{organizationId}/appliance/vpn/statuses

- Path added

- New operation

Show VPN status for networks in an organization

GET /organizations/{organizationId}/appliance/vpn/statuses

[
    {
        "networkId": "N_12345678",
        "networkName": "San Francisco Office",
        "deviceSerial": "Q234-ABCD-1234",
        "deviceStatus": "online",
        "uplinks": [
            {
                "interface": "wan1",
                "publicIp": "1.2.3.4"
            },
            {
                "interface": "wan2",
                "publicIp": "2.3.4.5"
            }
        ],
        "vpnMode": "hub",
        "exportedSubnets": [
            {
                "subnet": "192.168.0.0/24",
                "name": "sales-vlan"
            },
            {
                "subnet": "172.16.0.0/24",
                "name": "engineering-vlan"
            }
        ],
        "merakiVpnPeers": [
            {
                "networkId": "L_1234",
                "networkName": "New York Office",
                "reachability": "reachable"
            }
        ],
        "thirdPartyVpnPeers": [
            {
                "name": "London Office",
                "publicIp": "111.222.333.444",
                "reachability": "reachable"
            }
        ]
    },
    {
        "networkId": "L_1234",
        "networkName": "New York Office",
        "deviceSerial": "Q234-EFGH-5678",
        "deviceStatus": "online",
        "uplinks": [
            {
                "interface": "wan1",
                "publicIp": "3.4.5.6"
            }
        ],
        "vpnMode": "spoke",
        "exportedSubnets": [
            {
                "subnet": "192.168.1.0/24",
                "name": "sales-vlan"
            },
            {
                "subnet": "172.16.1.0/24",
                "name": "engineering-vlan"
            }
        ],
        "merakiVpnPeers": [
            {
                "networkId": "N_12345678",
                "networkName": "San Francisco Office",
                "reachability": "reachable"
            }
        ],
        "thirdPartyVpnPeers": [
            {
                "name": "Tokyo Office",
                "publicIp": "222.333.444.555",
                "reachability": "reachable"
            }
        ]
    }
]


[ switch ]

PATH /devices/{serial}/switch/routing/interfaces

- Path added

- New operation

List layer 3 interfaces for a switch

GET /devices/{serial}/switch/routing/interfaces

[
    {
        "interfaceId": "1234",
        "name": "L3 interface",
        "subnet": "192.168.1.0/24",
        "interfaceIp": "192.168.1.2",
        "multicastRouting": "disabled",
        "vlanId": 100,
        "defaultGateway": "192.168.1.1",
        "ospfSettings": {
            "area": "0",
            "cost": 1,
            "isPassiveEnabled": true
        }
    }
]

- New operation

Create a layer 3 interface for a switch

POST /devices/{serial}/switch/routing/interfaces

{
    "interfaceId": "1234",
    "name": "L3 interface",
    "subnet": "192.168.1.0/24",
    "interfaceIp": "192.168.1.2",
    "multicastRouting": "disabled",
    "vlanId": 100,
    "defaultGateway": "192.168.1.1",
    "ospfSettings": {
        "area": "0",
        "cost": 1,
        "isPassiveEnabled": true
    }
}


PATH /devices/{serial}/switch/routing/interfaces/{interfaceId}

- Path added

- New operation

Return a layer 3 interface for a switch

GET /devices/{serial}/switch/routing/interfaces/{interfaceId}

{
    "interfaceId": "1234",
    "name": "L3 interface",
    "subnet": "192.168.1.0/24",
    "interfaceIp": "192.168.1.2",
    "multicastRouting": "disabled",
    "vlanId": 100,
    "defaultGateway": "192.168.1.1",
    "ospfSettings": {
        "area": "0",
        "cost": 1,
        "isPassiveEnabled": true
    }
}

- New operation

Update a layer 3 interface for a switch

PUT /devices/{serial}/switch/routing/interfaces/{interfaceId}

{
    "interfaceId": "1234",
    "name": "L3 interface",
    "subnet": "192.168.1.0/24",
    "interfaceIp": "192.168.1.2",
    "multicastRouting": "disabled",
    "vlanId": 100,
    "ospfSettings": {
        "area": "0",
        "cost": 1,
        "isPassiveEnabled": true
    }
}

- New operation

Delete a layer 3 interface from the switch

DELETE /devices/{serial}/switch/routing/interfaces/{interfaceId}



PATH /devices/{serial}/switch/routing/interfaces/{interfaceId}/dhcp

- Path added

- New operation

Return a layer 3 interface DHCP configuration for a switch

GET /devices/{serial}/switch/routing/interfaces/{interfaceId}/dhcp

{
    "dhcpMode": "dhcpServer",
    "dhcpLeaseTime": "1 day",
    "dnsNameserversOption": "custom",
    "dnsCustomNameservers": [
        "8.8.8.8, 8.8.4.4"
    ],
    "bootOptionsEnabled": true,
    "bootNextServer": "1.2.3.4",
    "bootFileName": "home_boot_file",
    "dhcpOptions": [
        {
            "code": "5",
            "type": "text",
            "value": "five"
        }
    ],
    "reservedIpRanges": [
        {
            "start": "192.168.1.1",
            "end": "192.168.1.10",
            "comment": "A reserved IP range"
        }
    ],
    "fixedIpAssignments": [
        {
            "mac": "22:33:44:55:66:77",
            "name": "Cisco Meraki valued client",
            "ip": "192.168.1.12"
        }
    ]
}

- New operation

Update a layer 3 interface DHCP configuration for a switch

PUT /devices/{serial}/switch/routing/interfaces/{interfaceId}/dhcp

{
    "dhcpMode": "dhcpServer",
    "dhcpLeaseTime": "1 day",
    "dnsNameserversOption": "custom",
    "dnsCustomNameservers": [
        "8.8.8.8, 8.8.4.4"
    ],
    "bootOptionsEnabled": true,
    "bootNextServer": "1.2.3.4",
    "bootFileName": "home_boot_file",
    "dhcpOptions": [
        {
            "code": "5",
            "type": "text",
            "value": "five"
        }
    ],
    "reservedIpRanges": [
        {
            "start": "192.168.1.1",
            "end": "192.168.1.10",
            "comment": "A reserved IP range"
        }
    ],
    "fixedIpAssignments": [
        {
            "mac": "22:33:44:55:66:77",
            "name": "Cisco Meraki valued client",
            "ip": "192.168.1.12"
        }
    ]
}


PATH /devices/{serial}/switch/routing/staticRoutes

- Path added

- New operation

List layer 3 static routes for a switch

GET /devices/{serial}/switch/routing/staticRoutes

[
    {
        "staticRouteId": "1234",
        "name": "My route",
        "subnet": "192.168.1.0/24",
        "nextHopIp": "1.2.3.4",
        "advertiseViaOspfEnabled": false,
        "preferOverOspfRoutesEnabled": false
    }
]

- New operation

Create a layer 3 static route for a switch

POST /devices/{serial}/switch/routing/staticRoutes

{
    "staticRouteId": "1234",
    "name": "My route",
    "subnet": "192.168.1.0/24",
    "nextHopIp": "1.2.3.4",
    "advertiseViaOspfEnabled": false,
    "preferOverOspfRoutesEnabled": false
}


PATH /devices/{serial}/switch/routing/staticRoutes/{staticRouteId}

- Path added

- New operation

Return a layer 3 static route for a switch

GET /devices/{serial}/switch/routing/staticRoutes/{staticRouteId}

{
    "staticRouteId": "1234",
    "name": "My route",
    "subnet": "192.168.1.0/24",
    "nextHopIp": "1.2.3.4",
    "advertiseViaOspfEnabled": false,
    "preferOverOspfRoutesEnabled": false
}

- New operation

Update a layer 3 static route for a switch

PUT /devices/{serial}/switch/routing/staticRoutes/{staticRouteId}

{
    "staticRouteId": "1234",
    "name": "My route",
    "subnet": "192.168.1.0/24",
    "nextHopIp": "1.2.3.4",
    "advertiseViaOspfEnabled": false,
    "preferOverOspfRoutesEnabled": false
}

- New operation

Delete a layer 3 static route for a switch

DELETE /devices/{serial}/switch/routing/staticRoutes/{staticRouteId}



PATH /devices/{serial}/switch/warmSpare

- Path added

- New operation

Return warm spare configuration for a switch

GET /devices/{serial}/switch/warmSpare

{
    "enabled": true,
    "primarySerial": "Q234-ABCD-0001",
    "spareSerial": "Q234-ABCD-0002"
}

- New operation

Update warm spare configuration for a switch. The spare will use the same L3 configuration as the primary. Note that this will irreversibly destroy any existing L3 configuration on the spare.

PUT /devices/{serial}/switch/warmSpare

{
    "enabled": true,
    "primarySerial": "Q234-ABCD-0001",
    "spareSerial": "Q234-ABCD-0002"
}


PATH /networks/{networkId}/switch/routing/multicast/rendezvousPoints

- Path added

- New operation

List multicast rendezvous points

GET /networks/{networkId}/switch/routing/multicast/rendezvousPoints

[
    [
        {
            "rendezvousPointId": "1234",
            "serial": "Q234-ABCD-5678",
            "interfaceName": "l3_interface_0",
            "interfaceIp": "192.168.1.2",
            "multicastGroup": "Any"
        },
        {
            "rendezvousPointId": "1234",
            "switchStackId": "789102",
            "interfaceName": "l3_interface_1",
            "interfaceIp": "192.0.0.10",
            "multicastGroup": "239.0.0.0/24"
        },
        {
            "rendezvousPointId": "1234",
            "interfaceIp": "192.168.1.2",
            "multicastGroup": "192.168.128.0/24"
        }
    ]
]

- New operation

Create a multicast rendezvous point

POST /networks/{networkId}/switch/routing/multicast/rendezvousPoints

{
    "rendezvousPointId": "1234",
    "interfaceIp": "192.168.1.2",
    "multicastGroup": "192.168.128.0/24"
}


PATH /networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId}

- Path added

- New operation

Return a multicast rendezvous point

GET /networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId}

{
    "rendezvousPointId": "1234",
    "serial": "Q234-ABCD-5678",
    "interfaceName": "l3_interface_0",
    "interfaceIp": "192.168.1.2",
    "multicastGroup": "Any"
}

- New operation

Update a multicast rendezvous point

PUT /networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId}

{
    "rendezvousPointId": "1234",
    "interfaceIp": "192.168.1.2",
    "multicastGroup": "192.168.128.0/24"
}

- New operation

Delete a multicast rendezvous point

DELETE /networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId}



PATH /networks/{networkId}/switch/routing/ospf

- Path added

- New operation

Return layer 3 OSPF routing configuration

GET /networks/{networkId}/switch/routing/ospf

{
    "enabled": true,
    "helloTimerInSeconds": 10,
    "deadTimerInSeconds": 40,
    "areas": [
        {
            "areaId": "1284392014819",
            "areaName": "Backbone",
            "areaType": "normal"
        }
    ],
    "md5AuthenticationEnabled": true,
    "md5AuthenticationKey": {
        "id": "1234",
        "passphrase": "abc1234"
    }
}

- New operation

Update layer 3 OSPF routing configuration

PUT /networks/{networkId}/switch/routing/ospf

{
    "enabled": true,
    "helloTimerInSeconds": 10,
    "deadTimerInSeconds": 40,
    "areas": [
        {
            "areaId": "1284392014819",
            "areaName": "Backbone",
            "areaType": "normal"
        }
    ],
    "md5AuthenticationEnabled": true,
    "md5AuthenticationKey": {
        "id": "1234",
        "passphrase": "abc1234"
    }
}


PATH /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces

- Path added

- New operation

List layer 3 interfaces for a switch stack

GET /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces

[
    {
        "interfaceId": "1234",
        "name": "L3 interface",
        "subnet": "192.168.1.0/24",
        "interfaceIp": "192.168.1.2",
        "multicastRouting": "disabled",
        "vlanId": 100,
        "defaultGateway": "192.168.1.1",
        "ospfSettings": {
            "area": "0",
            "cost": 1,
            "isPassiveEnabled": true
        }
    }
]

- New operation

Create a layer 3 interface for a switch stack

POST /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces

{
    "interfaceId": "1234",
    "name": "L3 interface",
    "subnet": "192.168.1.0/24",
    "interfaceIp": "192.168.1.2",
    "multicastRouting": "disabled",
    "vlanId": 100,
    "defaultGateway": "192.168.1.1",
    "ospfSettings": {
        "area": "0",
        "cost": 1,
        "isPassiveEnabled": true
    }
}


PATH /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}

- Path added

- New operation

Return a layer 3 interface from a switch stack

GET /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}

{
    "interfaceId": "1234",
    "name": "L3 interface",
    "subnet": "192.168.1.0/24",
    "interfaceIp": "192.168.1.2",
    "multicastRouting": "disabled",
    "vlanId": 100,
    "defaultGateway": "192.168.1.1",
    "ospfSettings": {
        "area": "0",
        "cost": 1,
        "isPassiveEnabled": true
    }
}

- New operation

Update a layer 3 interface for a switch stack

PUT /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}

{
    "interfaceId": "1234",
    "name": "L3 interface",
    "subnet": "192.168.1.0/24",
    "interfaceIp": "192.168.1.2",
    "multicastRouting": "disabled",
    "vlanId": 100,
    "ospfSettings": {
        "area": "0",
        "cost": 1,
        "isPassiveEnabled": true
    }
}

- New operation

Delete a layer 3 interface from a switch stack

DELETE /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}



PATH /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}/dhcp

- Path added

- New operation

Return a layer 3 interface DHCP configuration for a switch stack

GET /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}/dhcp

{
    "dhcpMode": "dhcpServer",
    "dhcpLeaseTime": "1 day",
    "dnsNameserversOption": "custom",
    "dnsCustomNameservers": [
        "8.8.8.8, 8.8.4.4"
    ],
    "bootOptionsEnabled": true,
    "bootNextServer": "1.2.3.4",
    "bootFileName": "home_boot_file",
    "dhcpOptions": [
        {
            "code": "5",
            "type": "text",
            "value": "five"
        }
    ],
    "reservedIpRanges": [
        {
            "start": "192.168.1.1",
            "end": "192.168.1.10",
            "comment": "A reserved IP range"
        }
    ],
    "fixedIpAssignments": [
        {
            "mac": "22:33:44:55:66:77",
            "name": "Cisco Meraki valued client",
            "ip": "192.168.1.12"
        }
    ]
}

- New operation

Update a layer 3 interface DHCP configuration for a switch stack

PUT /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}/dhcp

{
    "dhcpMode": "dhcpServer",
    "dhcpLeaseTime": "1 day",
    "dnsNameserversOption": "custom",
    "dnsCustomNameservers": [
        "8.8.8.8, 8.8.4.4"
    ],
    "bootOptionsEnabled": true,
    "bootNextServer": "1.2.3.4",
    "bootFileName": "home_boot_file",
    "dhcpOptions": [
        {
            "code": "5",
            "type": "text",
            "value": "five"
        }
    ],
    "reservedIpRanges": [
        {
            "start": "192.168.1.1",
            "end": "192.168.1.10",
            "comment": "A reserved IP range"
        }
    ],
    "fixedIpAssignments": [
        {
            "mac": "22:33:44:55:66:77",
            "name": "Cisco Meraki valued client",
            "ip": "192.168.1.12"
        }
    ]
}


PATH /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes

- Path added

- New operation

List layer 3 static routes for a switch stack

GET /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes

[
    {
        "staticRouteId": "1234",
        "name": "My route",
        "subnet": "192.168.1.0/24",
        "nextHopIp": "1.2.3.4",
        "advertiseViaOspfEnabled": false,
        "preferOverOspfRoutesEnabled": false
    }
]

- New operation

Create a layer 3 static route for a switch stack

POST /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes

{
    "staticRouteId": "1234",
    "name": "My route",
    "subnet": "192.168.1.0/24",
    "nextHopIp": "1.2.3.4",
    "advertiseViaOspfEnabled": false,
    "preferOverOspfRoutesEnabled": false
}


PATH /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId}

- Path added

- New operation

Return a layer 3 static route for a switch stack

GET /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId}

{
    "staticRouteId": "1234",
    "name": "My route",
    "subnet": "192.168.1.0/24",
    "nextHopIp": "1.2.3.4",
    "advertiseViaOspfEnabled": false,
    "preferOverOspfRoutesEnabled": false
}

- New operation

Update a layer 3 static route for a switch stack

PUT /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId}

{
    "staticRouteId": "1234",
    "name": "My route",
    "subnet": "192.168.1.0/24",
    "nextHopIp": "1.2.3.4",
    "advertiseViaOspfEnabled": false,
    "preferOverOspfRoutesEnabled": false
}

- New operation

Delete a layer 3 static route for a switch stack

DELETE /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId}



PATH /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports

- Path added

- New operation

Return all the ports of a switch profile

GET /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports

{
    "portId": "1",
    "name": "My switch port",
    "tags": [
        "tag1",
        "tag2"
    ],
    "enabled": true,
    "poeEnabled": true,
    "type": "access",
    "vlan": 10,
    "voiceVlan": 20,
    "isolationEnabled": false,
    "rstpEnabled": true,
    "stpGuard": "disabled",
    "linkNegotiation": "Auto negotiate",
    "portScheduleId": "1234",
    "udld": "Alert only",
    "accessPolicyType": "Sticky MAC allow list",
    "stickyMacAllowList": [
        "34:56:fe:ce:8e:b0",
        "34:56:fe:ce:8e:b1"
    ],
    "stickyMacAllowListLimit": 5,
    "stormControlEnabled": true
}


PATH /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId}

- Path added

- New operation

Return a switch profile port

GET /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId}

{
    "portId": "1",
    "name": "My switch port",
    "tags": [
        "tag1",
        "tag2"
    ],
    "enabled": true,
    "poeEnabled": true,
    "type": "access",
    "vlan": 10,
    "voiceVlan": 20,
    "isolationEnabled": false,
    "rstpEnabled": true,
    "stpGuard": "disabled",
    "linkNegotiation": "Auto negotiate",
    "portScheduleId": "1234",
    "udld": "Alert only",
    "accessPolicyType": "Sticky MAC allow list",
    "stickyMacAllowList": [
        "34:56:fe:ce:8e:b0",
        "34:56:fe:ce:8e:b1"
    ],
    "stickyMacAllowListLimit": 5,
    "stormControlEnabled": true
}

- New operation

Update a switch profile port

PUT /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId}

{
    "portId": "1",
    "name": "My switch port",
    "tags": [
        "tag1",
        "tag2"
    ],
    "enabled": true,
    "poeEnabled": true,
    "type": "access",
    "vlan": 10,
    "voiceVlan": 20,
    "isolationEnabled": false,
    "rstpEnabled": true,
    "stpGuard": "disabled",
    "linkNegotiation": "Auto negotiate",
    "portScheduleId": "1234",
    "udld": "Alert only",
    "accessPolicyType": "Sticky MAC allow list",
    "stickyMacAllowList": [
        "34:56:fe:ce:8e:b0",
        "34:56:fe:ce:8e:b1"
    ],
    "stickyMacAllowListLimit": 5,
    "stormControlEnabled": true
}