What is an API?

A lot of the “magic” that we do for our clients involves APIs, and we often get asked: What IS an API? For most people, API either sounds like a craft beer, or the sort of semi-real acronym put in the mouth of “nerdy” movie characters to make them sound smart. Let me assure you: APIs are very real, very powerful, and very cool. At their simplest level, APIs are how different pieces of software can communicate with one another.

Let’s take a look at a common example: Asking your Alexa (Or Google Home) for movie times. Your Alexa doesn’t contain the answer to every question in the universe in its tiny body — instead, it contacts Fandango (a database devoted to movie information) and asks Fandango to provide relevant information via its API- voilà! Software to software communication. If you ask your Alexa what the weather will be tomorrow, it will contact the National Weather Service’s database and ask it for that information via its API.

APIs have become so ubiquitous that it is not uncommon for websites and applications to seamlessly integrate APIs for greater functionality than they might be able to offer on their own. As you can see in the above example, often, you won’t even be aware when APIs are being used under the hood to provide you with the information you need. When this happens, it’s referred to as a “seamless” integration.

How Do APIs Work?

By now, you’re probably familiar with the basic concept of a User Interface (UI) — it’s the collection of buttons, menus, links, checkboxes, and other tools in any application that allows you to tell that software to perform actions and show you information.

An API is an Application Programming Interface — it’s a software-to-software interface rather than a user interface.

Instead of the buttons and menus offered in a human-friendly interface, an API is a collection of written commands that a piece of software will accept. Those written command will prompt the software to perform actions and retrieve information when it receives them, just like when you click buttons. If you wanted to, you could type out those commands by hand to get your software to do the same things that pushing its buttons might. Depending on the software, an API might offer identically the same functionality as its UI, less functionality, or more functionality. It’s entirely up to the creators of each individual piece of software to decide whether to offer an API, and if so, how robust they wish to make it.

Can Anyone Request Info From My API?

Typically, APIs are designed with built-in security, so the software will only accept API commands from authorized sources, similarly to when you have to log in to use a program. You may also be able to restrict the permissions that other software connections have – for example, maybe you only want to allow other software to retrieve information, but not create or delete it.

Harnessing The Power of APIs

Although APIs allow different pieces of software to communicate with one another, taking advantage of them still requires a human to teach each piece of software what to say, to whom, and when.

Some software developers have anticipated commons needs, and provide built-in API integrations with other common software. For example, Quickbooks Online (an accounting and invoicing software) and Tsheets (a time tracking software that can handle multiple employees and contractors) offer a built-in integration that comes packed with API commands for each. If you turned on the Quickbooks and Tsheets integration, here’s some examples of the API commands that each piece of software would be “taught” to use:

Quickbooks would learn…

  • …that each time a new employee was added to payroll, it should send that information to TSheets, and request that TSheets create a login for that employee so they can start clocking in and clocking out.
  • …that when a new client is added for invoicing, that client’s name and the name of all projects associated with them should be sent to TSheets, so employees can track time directly against specific client accounts or projects for exact job costing.

Tsheets would learn…

  • …that when a manager approves time sheets, each employee’s time should be sent to Quickbooks, including information about overtime or vacation/sick days earned, so that Quickbooks can accurately handle payroll.
  • …that if any of that approved time was marked as “billable” and was tracked against a specific client or project, that TSheets should send that data to Quickbooks, and request that Quickbooks create an invoice for the appropriate client with all of their time on it, ready to be reviewed and sent.
  • …that if an employee/contractor enters an expense incurred while working on a client’s account, that information should also be sent to Quickbooks for billing and/or job costing.

I like this example, because almost all service businesses can immediately see the impact that a tightly integrated time tracking and accounting/invoicing system would have on their operations. I know from experience – having enabled this exact integration for several companies – that this can save a dozen hours a month, increase the average billing amount and accuracy, speed up both payroll and invoicing, and improve employee satisfaction. And that’s just one API integration!

Imagine what can happen when your software and applications can work together to know more and do more.

But what happens if your software offers an API, but doesn’t have the built-in integrations to the specific software that you need to connect with it? In some cases, you may be able to use an intermediary piece of software like Zapier to set up the connection you need. For more complex use cases, you may need to hire a programmer to help you get your softwares communicating in the way that you need them to. In either case, our API experts here at Infinite Synergy Solutions can help!