Trying to solve a a problem that shouldn't be solved with APIs by using APIs. Was wondering if you have any input.
I have a customer that wants to be alerted every time any of their networks (all with different ISPs) goes to an extremely low download speed below a certain threshold. There is the internal dashboard tool to view speed and of course speed test websites, but there isn't a direct API endpoint for speed.
I am going to try to use this one to infer if the speed is too slow however:
while this make sense as a request, Meraki says not to rely on the Dashboard Speed test, since it is there just for having some idea, not for really getting correct figures.
This task has to be accomplished by installing a test-point in the network which will do this.That way you not only test the Internet line itself, but also the devices in between... Cisco has this feature with Thousand Eyes and there are rumours that Thousand Eyes will have a "Meraki" version...
How often should this be tested for? What destinations should be tested to (per-site)? Are they aware that each speed test is potentially interfering with their own traffic? What is an "acceptable" threshold of speed? This is the sort of thing that really needs in-depth requirements and a lengthy caveat that if they test too often, they are only hurting themselves more by doing so..
Insight has a way to do API speedtests but I've not yet played with it too much. Having Insight monitor their key applications might be more helpful.
Any chance you control a server/workstation on both ends of the link? Could look at iPerf testing between them. It's a little rough, but you can script around the iPerf3.exe to automate testing and log results per site.
I think you need to read the speedtest endpoint documentation a bit more closely. To actually perform the speedtest you need to POST @ /devices/{{serial}}/liveTools/speedTest. This will perform the test, and return the results. Those results then get stored (tracked by a unique ID).
The query you have above is the query to retrieve the results of a previously run speedtest.
Edit: And note that this endpoint appears to only be available if you have the Early Access API enabled