This document discusses guidelines for designing application programming interfaces (APIs). It outlines key characteristics of good APIs, including being easy to learn and memorize, leading to readable code, being hard to misuse, and being easy to extend. The document then discusses specific design principles and guidelines for APIs, such as using unambiguous and self-explanatory names, avoiding abbreviations, and striving for minimal yet complete APIs. Examples from Qt and other APIs are provided to illustrate both good and poor API design practices.