How We Design Our APIs at Slack
Aug 11, 2021

Summary
This post details Slack's API design principles: "Do one thing and do it well" (illustrated by rtm.start vs. rtm.connect), "Make it fast and easy to get started" (Time to First Hello World metric, interactive docs), "Strive for intuitive consistency" (industry, product, and internal consistency), "Return meaningful errors" (actionable, unambiguous errors with longer-form descriptions), "Design for scale and performance" (pagination, rate limiting, illustrated by channels.list vs. conversations.list/members), and "Avoid breaking changes" (philosophy of "what worked yesterday should work tomorrow"). It also outlines the design process involving API style guides, reviews, and testing.