Hello,
Our organization holds many different networks (over 200) all with between 3-25 access points each.
Pretty simple question I have. I would like to see if there is a report that shows the enabled SSIDs for each network.
Thank you!
It looks like you could pull this with the API: https://developer.cisco.com/meraki/api/#/rest/api-endpoints/ssids/get-network-ssid
I've written a small Python script for this exact same need. It goes through all our organizations and their attached networks and lists all SSIDs in a csv file.
You can PM me if you want the script, it'll probably need some adjustments but that's not a lot of work.
The script is probably ugly so I prefer not to attach it to this thread, but it does the job.
Alright, here it is.
A few comments:
import json import requests import sys import csv # Define organizations orgs={'<orgName 1>':'<org Id 1>','<orgName 2>':'<org Id 2>','<orgName 3>':'<org Id 3>'} org_names=orgs.keys()
# Define API URL and API key base_url='https://api.meraki.com/api/v0/' API_KEY = '<ApiKey>' with open('<filepath>', mode='w',newline='') as report_csv: report = csv.writer(report_csv, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) report.writerow(['Org name','Network name','SSID name','SSID Authmode','SSID Encryption mode','WPA mode','VLAN','RADIUS servers']) for org_name in org_names: #Get list of networks in each organization print("Cycling through organization " + org_name) session = requests.session() headers = {'X-Cisco-Meraki-API-Key': API_KEY, 'Content-Type': 'application/json'} networks = json.loads(session.get(base_url + 'organizations/' + orgs[org_name] + '/networks', headers=headers).text) #Get list of SSIDs in each network for net in networks: ssids=json.loads(session.get(base_url + 'networks/' + net['id'] + '/ssids', headers=headers).text) #Write csv file with various information for ssid in ssids: if "Unconfigured" in ssid['name']: break elif '8021x' in ssid['authMode'] and ssid['useVlanTagging']: row=[org_name,net['name'],ssid['name'],ssid['authMode'],ssid['encryptionMode'],ssid['wpaEncryptionMode'],ssid['defaultVlanId']] for index,radius in enumerate(ssid['radiusServers']): row.insert(7+index,radius['host']) report.writerow(row) elif '8021x' in ssid['authMode']: row=[org_name,net['name'],ssid['name'],ssid['authMode'],ssid['encryptionMode'],ssid['wpaEncryptionMode'],'No tagging'] for index,radius in enumerate(ssid['radiusServers']): row.insert(7+index,radius['host']) report.writerow(row) elif ssid['useVlanTagging']: report.writerow([org_name,net['name'],ssid['name'],ssid['authMode'],'','',ssid['defaultVlanId']]) else: report.writerow([org_name,net['name'],ssid['name'],ssid['authMode'],'','','No tagging']) report_csv.close