We hear that all the time when talking to clients about integrating their system with a third-party application. It’s a blanket statement that is saying, “It’s easy, because an API gives you everything.”
Unfortunately, that is rarely, if ever, the case.
An API (Application Programming Interface) does grant access between two applications and it is a way to “hook up” one or more applications to create a more seamless user experience. API gives you access to data stored within the other system. With that access you can grab information that is made available, you don’t get access to everything in the system, just what the system owner has decided you should be allowed to see. Like products on the shelves of a Wal-Mart or Home Depot, you can find and grab products that are on the shelves, but you don’t know what they have in inventory and you certainly don’t know what the supply chain that controls how those products get from warehouse to the shelves works.
APIs are similar, you get what they give you, nothing more. Furthermore, not all APIs are created equal. The data provided and the ease of access differs greatly from system to system. More importantly, access does not equate to functionality. If the system you want to access does not have the functionality you need in your system, having API access to the system does not solve the functionality problem. For example, if a system provides access to two data fields that you need to calculate, for example field A * field B equals X. If that calculation is not done within the system, if there is no field “X”, then you will need to do that calculation yourself in order to provide that result to your system’s users.
Then there is documentation that comes with the API. They may allow you to search their shelves for information, but they may not give you a clear map of aisles and shelves to get to the items. Just like the floor plans of Wal-Marts and Home Depots are different, so are the structures and documentation differ from system to system.
All of this is not to discount the value API access can provide, not in the least. Having API access enables you to integrate an entire other platform into your business solution and that alone is huge savings of time and effort. But the integration should not be viewed as a simple process, it’s not like plugging a fan into a wall outlet and hitting an on switch. It’s like patching into an electrical panel, it takes forethought and experience to understand how best to do it.
So when you hear someone say, “They have an API” and nothing more, it’s very likely that person doesn’t know the complexities of how systems are created and maintained, and you should consult your technical resources to look into the API in question to determine what will be the cost-benefit of doing the integration through that API.