To design great APIs, we first need to realize, that APIs are in fact products. APIs are products that are offered on a market to satisfy the needs of a group of customers.
This means that APIs are not individually created integration solutions that are tailored for a particular customer and a particular use case. Instead, APIs are designed as generic products for a group of customers. They are intended to be highly reusable software. In this way APIs can provide solutions to common needs and challenges that are shared by many customers. It may be, that the idea for an API originates from one particular use case for one particular customer, but successful APIs are always more generic. There is always a group of customers, who is interested in solving their diverse use cases with the API.
I like to compare APIs to Lego bricks. The manufacturer usually sells the bricks with an instruction manual, which describes one particular use case, one way of building something with these bricks, let’s say a fire truck. But the bricks are pretty generic: the same bricks can be composed in new ways, that have never been imagined by the manufacturer. So the bricks that were used to build the fire truck, can be used to build a spaceship, castle or racing car.
Why is this possible? It is possible, because the bricks are reusable products, just like APIs. And the bricks are reusable, because they have a simple, clean, clear and approachable interface, just like well-designed APIs.