“Good APIs”

What makes a “good” API”? Can we say anything about good practice in providing or using machine interfaces to third party services on the web? UKOLN have consulted widely and suggest, among other things, that providers of APIs should make it useful, keep it simple, follow standards and use consistent naming structures. For API users there is perhaps less obvious good practice, but it’s important to choose the API carefully (they explain what this might mean), to think about risks, and respect the API terms of use.
UKOLN are now asking developers to comment on these principles; do they seem right? Is it useful to document them? For whom? How?
If you’ve got views on this then here’s where to post comments: http://blogs.ukoln.ac.uk/good-apis-jisc/.