When you depend on an external service for functionality for your own app or web service, it often makes sense to monitor it. You want to know when its API isn’t available, because that affects your app.
That’s why we were somewhat surprised when we stumbled upon this in Twitter’s API Terms of Service (their “Developer Rules of the Road”) the other day:
4. You will not attempt or encourage others to:
C. use or access the Twitter API for purposes of monitoring the availability, performance, or functionality of any of Twitter’s products and services or for any other benchmarking or competitive purposes;
So in other words, making sure that Twitter’s API is available and for example receiving an alert if there is a problem with it is not acceptable use according to this TOS. That would be availability monitoring.
You would also be forbidden to time API requests to measure performance trends, i.e. you can’t set up monitoring to be made aware of when Twitter’s API suffers from slowdown.
We really like Twitter, and obviously use it a lot (we’re @pingdom), but this really doesn’t strike us as a very good approach to developer relations. Yes, Twitter does supply its own API status page, but that is hardly a replacement for having your own application-specific monitoring set up, with alerts and trends and so on.
To us, this looks like something Twitter’s legal department may have put in there without any real understanding of the implications. Perhaps this is simply something that slipped through the cracks when the TOS document was created.
We’re not aware of any cases where Twitter has actually enforced this rule, but then why have it there at all?