So Cisco/Meraki has some pretty good documentation at using the Meraki API with Python. Short version is use pip to install Meraki (pip install meraki
) and then in your shell set an environmental variable called MERAKI_DASHBOARD_API_KEY
to your Meraki API key (export MERAKI_DASHBOARD_API_KEY=xxxxxxx
) which can be enabled and found (see https://documentation.meraki.com/zGeneral_Administration/Other_Topics/The_Cisco_Meraki_Dashboard_API). Below is a little script to grab information about the APs in your network. You’ll need to specify the network name in the Meraki Dashboard. The script assumes there is only one organization, if you have more than one, you’ll have to loop through those to find the id of your organization. The script also makes calls to getDeviceWirelessRadioSettings
and getDeviceWirelessStatus
which provides more information about those APs, but I don’t make any efforts to format or do anything with the results.
import meraki dashboard = meraki.DashboardAPI() #name of my network that has APs ap_network_name = "xyxy" # Get orgs linked to API key my_orgs = dashboard.organizations.getOrganizations() # Get networks linked to org. Assuming there is only one org (true in my case) my_networks = dashboard.organizations.getOrganizationNetworks(organizationId=my_orgs[0]["id"]) # Find the network ID of the network with my network name for netw in my_networks: if (netw["name"] == ap_network_name): my_netw = netw["id"] my_devices = dashboard.networks.getNetworkDevices(networkId=my_netw) for a_device in my_devices: try: # Filter out the devices that aren't APs if(a_device["firmware"][:8] == "wireless"): # print some basic info on the APs print(a_device["name"],a_device["serial"],a_device["firmware"],a_device["model"],a_device["firmware"]) serial = a_device["serial"] # get some info on the radio settings for the AP wireless = dashboard.wireless.getDeviceWirelessRadioSettings(serial) print(wireless) # get some more detailed info on the AP wifi_status = dashboard.wireless.getDeviceWirelessStatus(serial) print(wifi_status) except: print("error for", a_device["serial"]) # print(my_devices)