What Is an API and Why Is It Important? (a Layman’s guide)

Joseph Morisette
4 min readOct 22, 2020

--

Let’s start with the basics. API stands for Application Programming Interface. Understand it? Great I’m done with this article…just kidding.

As someone coming from a non-technical background, it was hard to conceptualize the idea that not every interaction with a piece of software is accomplished via a “front-end” user interface (a user interface is what you see as a user of a software, for example the screen on your phone or your web browser). Unbeknownst to me, there was a whole world of ways to interact with softwares we use on a daily basis, that has nothing to do with the click of a mouse of the touch of a screen. Billions of programmatic “discussions” between software programs happen via APIs every day, and allow individual programs to share data between themselves. As I dipped my toes into the software programming world, it became increasingly clear to me not only the power of APIs, but the necessity of incorporating strong APIs into any software platform.

An API metaphor to help explain what they are:

Bananas and APIs, get it? Keep reading!

I buy groceries. I typically do this at the store once a week. I drive to the store (in this example the store = some computer software), walk around and select the food I’d like to buy, wait in line and pay for the food with my credit card, bag the groceries and leave. The inside of the store is the “front-end” for this experience. This process works well, but say instead of once a week and a few groceries, I want to buy 1,000 bananas every hour of every day. I wouldn’t drive to the store every 60 minutes and buy ~250lbs of bananas (on average 4 bananas = 1 lb FYI). Instead, what if I programmed a robot to call the store’s back office specify the amount of bananas, provide payment and delivery information and request the store puts them on a truck and delivered to me. You can think of the store’s phone line as its API and the back office person answering the phone as the store’s server. In this fashion, I can schedule orders using a custom program, bypass the actual store experience, and create a scaleable solution for ordering bananas!

In the same fashion, a software’s APIs let me bypass all of the clicking and selections I’d make as a user (the “shopping”) and let me send a request through its API (the “phone line”) directly to the necessary part (the “back office”) of the software for exactly what I want! I can schedule, automate, set and forget the program and it will continue to do exactly what I tell it to.

This is all great, but it’s still conceptual. Let’s make it real! There are several different types of requests you can send into a software’s APIs. The most basic and intuitive of these is the GET request (similar to shopping for bananas). This simply means you are pinging the software and expect to “get” something back in return for your ping…simple enough? A fun integration I’ve been is to get a random fact from this URL or “endpoint” https://uselessfacts.jsph.pl/random.json?language=en and to post it in my team’s Slack channel every Friday. When I send a GET request to this URL, I expect to receive a random useless fact back in return. Don’t believe me? You can try it yourself here https://reqbin.com/. Simply copy past that URL into the tester, and hit send and viola! A random useless fact is returned back to you.

In a world where everything is connected, it is important that your software is easily connectable to other software.

Now I know you’re thinking, well couldn’t I just go to their website and get the joke? Well sure, but what if I wanted to send a fact every minute to ten different Slack channels, I’d have to open the website, copy the fact and send it, and hope I was done by the next minute…you see where this is going. Instead you can just ping the software’s API and get exactly what you want back in return, almost instantaneously.

So why does all of this matter? It matters because this is how softwares unlock their potential on an exponential scale. With open APIs you are essentially allowing the entire world to open source cool new ways to leverage the data contained within a specific software, by programmatically being able to extract that information and do powerful things with it. Many apps we know (and maybe love/hate) have powerful APIs to let developers access data within a specific platform (Facebook, Twitter and even the Weather channel all have APIs that allow developers to source information, metrics etc. from their software). As a runner, I used Strava to track my workouts I loaded into Garmin’s online software. Strava would then access my Garmin data through Garmin’s APIs so I could see it on Strava’s user interface, providing value that Garmin’s software on it’s own could not provide. I still use Garmin’s products but derive greater value from the data collected because Strava has a programatic way to access my Garmin data!

In a world where everything is connected, it is important that your software is easily connectable to other software. With so many unique ideas and smart people developing new things each day, by allowing them to directly interact with your software’s data directly via APIs, the sky is the limit for how people will use your software!

--

--