Design an API that other developers can use without asking you questions: endpoints, request and response shapes, status codes, error format, pagination, auth and a versioning plan.