Tim Boudreau always wanted me to create guidelines for good API design. I felt uneasy to define them as coming out with a general advice is often very hard. Some advises work just because being applied in some context/environment. Finding out exactly what the actual context has to be is hard (an example of this is my analysis that finds when usage of singletons is acceptable).
As such I was hesitant to define proper API design guidelines so far. However people are in need of guidelines and methodologies and it was just a matter of time till somebody writes down set of best practices. Actually the following checklist is not bad:
I found it inspiring. Not that I would agree with everything in the checklist, but it is certainly better start than starting from scratch. Until I write down proper guidelines myself, you have my blessing to use the above one (preferably after checking none of the advises clashes with discovered paradoxes).