This document outlines best practices for designing public APIs and web APIs. It recommends using HTTP and JSON/XML formats and keeping APIs simple with clear documentation. Rules include using plural nouns for resources, HTTP verbs to act on collections/elements, limiting relationship depth to 3 levels, versioning APIs and maintaining backwards compatibility, using status codes and verbose error messages, supporting both synchronous and asynchronous responses, handling re-entrant requests safely, and formatting data as JSON by default. Automated testing of APIs with clients in different languages is also advised.