Let’s face the truth. We can’t avoid dev stuff in WiFi forever! REST API, Python, JSON, Ansible and whatever else is needed – here we come!
It’s time. This is day 1 of our studies!
The mission for today? Actually we have a few 🙂
- Prepare the environment to work with Mist REST API using Postman
- List all WLANs created in WiFi Ninjas site using Mist API using GET
- Narrow the list down to a specific WLAN – “WiFiNinjas(.)(.)”
- Rename “WiFiNinjas(.)(.)” WLAN to “WiFiNinjasTitties” using PUT
Extreeeemely complicated, we know 😉
Let’s assume everyone knows what the API is. In case it’s not the case, here is a quick read:
https://www.howtogeek.com/343877/what-is-an-api/
Mist (and most other Enterprise solutions) use REST:
Lastly, from Mist Documentation:
https://www.mist.com/documentation/category/api/
Steps to complete our little task below!
Install Postman
You can get it here:
https://www.getpostman.com/downloads/
Generate Token
Token is needed so the Mist Dash can authorize us to access API.
Log into Mist Dash, then go to and hit ‘POST’:
https://api.mist.com/api/v1/self/apitokens
If you hit ‘POST’ again, new token will be generated!
Take note of the “key” – it’s our token.
Let’s assume we want to list created WLANs in the test ‘WiFi Ninjas’ site.
Check API URL to list Site WLANs
Mist API is nicely documented. You can go to Mist API documentation page to check the URL for everything that’s possible using RESTful API:
https://api.mist.com/api/v1/docs/Home
We now know the syntax to get our WLANs.
Get Org ID and Site ID
Next we need to know the “WiFi Ninjas” Site ID to check against.
Go to Mist Dash. You can get Org ID and Site ID from the browser URL:
We now have everything we need to list our WLANs in ‘WiFi Ninjas’ site!
Use obtained API token, WLAN GET URL and Site ID to list the WLANs
- Create new GET Request by hitting ‘+‘
- Type https://api.mist.com//api/v1/sites/<siteID>/wlans into request URL
- Ensure to include https:// prefix!
- Go to ‘Headers‘ tab and specify (type in) Authorization (use Token obtained in previous steps in VALUE fields; ensure to include key word ‘Token ‘ before pasting in the actual token!) and Content-Type (type ‘application/json’ in VALUE field)
- Hit ‘SEND‘
Note the “id” of “WiFiNinjas(.)(.)” WLAN
Copy WLAN “id” to our GET URL
We should now see the details of just “WiFiNinjas(.)(.)” WLAN.
PS. We love that (.)(.) suffix!
Change WLAN name
Let’s rename “WiFiNinjas(.)(.)” to “WiFiNinjasTitties”! 🙂
Since we’re changing WLAN config, we’ll use PUT this time.
Change request type to PUT, go to “Body” tab, ensure “JSON” type is selected and write down lines that you want changed between curly brackets.
Note, that there is no comma at the end of the line.
You can now refresh your Mist Dash or GET the WLAN info via API to check if the name was changed.
Worked like charm! 🙂
What’s Next?
Finally, we can use Postman to translate our actions into code (we’ll stick to Python), that can be used in scripts.
That’s it!
We have successfully listed all Mist WLANs, then narrowed it down to one WLAN and finally we’ve changed the name of that WLAN. All with REST API GET and PUT requests – how cool!
With love,
WiFi Ninjas x