4. it has a @twitter account
⢠communicates feature updates, new versions, etc
⢠exposes itself in API directories
⢠provides health / uptime / downtime info
6. itâs beautifully described
⢠generous and easily navigated documentation
⢠code examples for ârelevantâ languages
⢠metadata for code generation and testing
10. it has a sandbox for experiments
⢠limited functionality or content
⢠simulations of errors and out-of-bounds situations
⢠no limits on usages â doesnât consume quota
12. it has out-of-the-box clients
⢠lowers barrier of entry
⢠hides complexity related to authentication, parsing, etc
⢠adapts API to client paradigms
14. it knows and serves its user
⢠uses the right technologies for the domain
⢠respects security and authentication requirements
⢠adopts common nomenclature and naming
16. itâs aware of its constraints
⢠continuously evaluates its performance and availability
⢠monitors 3rd party APIs and dependencies
⢠handles unexpected events gracefully with the user in mind
18. itâs prepared for (r)evolution
⢠versioned from day 1 in line with best practices
⢠communicates and implements a versioning strategy
⢠handles âoldâ clients gracefully
20. 3:30:3
⢠3 seconds to understand what the API does
⢠30 seconds to find the endpoint
⢠3 minutes to be up and running
Thanks to Ori Pekelman!