Why do I need an API?

All commercial software solutions have inherent value in their business functionality.  However, relatively few make this functionality easily available to external systems.  Application Programming Interfaces (APIs) provide the means to expose such functionality to authorized users and software systems for use as needed.

It is impossible to include all features for all customers in our products, so we usually focus on a narrow set of high value features.  Doing so initially makes great sense for the bottom line but effectively ignores the opportunity afforded by the “long tail” of less popular functionality.  APIs offer a way to harness and potentially monetize this long tail of functionality locked into enterprise systems.



Discussions about API development often include comparisons to SOA (Service Oriented Architectures) and Web Services.  Both APIs and SOA address the need for allowing software systems talk to each other. APIs are even considered part of SOA, but the two approach this problem from different perspectives.  Whereas SOA has traditionally been associated with formality, tight governance and limited access, the value of APIs becomes more apparent when some of this rigidity is loosened.



Strict integration contracts

Loose integration contracts

Precisely defined implementation stack

Very minimal implementation stack

Used internally or by trusted partners

Appropriate for external use by potentially unknown (but authorized) developers/users

Tightly controlled

Self service

Harder to code

Easier to code

The Case for Openness

Enterprise apps are expected to have deep knowledge of web services they consume.  This effectively results in close coupling of application logic with services even when they are isolated behind a SOA layer, effectively creating a monolith as seen below.


Making the same services available as loosely coupled APIs can lead to increased openness and therefore increased usage by both internal as well as external applications.


This typically involves changes to implementation technologies.

Typical SOA

Typical APIs



WS Security

OAuth, others


Self describing hypermedia




An API application layer can be used as a facade for enterprise SOA interfaces and handle complexities of SOAP, service orchestration, XSL transformation, data thinning, access control, etc.

APIs should be designed based on RESTful principles and where appropriate, JSON should be used to exchange service payloads.

 app api soa


Why do I need an API?

One thought on “Why do I need an API?

  • November 15, 2014 at 2:20 pm

    What’s the relationship between APIs and web services?


Leave a Reply

Your email address will not be published. Required fields are marked *