An API or application programmable interface is a software contract which defines the expectations and interactions of a piece of code exposed to external users. This includes the parameters, response, errors and API name.
We discuss how to design an API and what it takes to make the design scalable, extensible and easy to use. HTTP APIs are widely used in software systems. HTTP is a stateless protocol and systems often expose APIs using it.