This document discusses designing APIs for microservices. It recommends defining service contracts to maintain loose coupling between services. The contracts should specify required fields, data types, and links to schemas for requests and responses. This enables independent service evolution if contracts remain stable. The document also recommends testing contracts and services through contract and integration tests. It provides tips for building APIs, such as using nouns over verbs, HTTP verbs to perform operations, and returning meaningful errors. Documentation, security, and versioning are also important.