Communication is a key driver in the digital era. As humans, we want technology to help us communicate faster, easier and with more people. But in order for that to happen, we had to first find a way to make technologies talk to each other.
That’s where APIs and webhooks come into play.
Both webhooks and APIs facilitate syncing and relaying data between two applications. However, both have different means of doing so, and thus serve slightly different purposes.
To clear up any confusion between the two, let’s take a look at the differences a webhook and an API, and what kind of scenario each one is most appropriate for.
To put it simply, an API does stuff when you ask it to, while a Webhook does stuff on it’s own when certain criteria is met or scenarios takes place. Let’s dig a little deeper.
An API can used from a server to communicate with example.com. Through that communication, the API can List, Create, Edit or Delete items. The API needs to be given instructions, though.
Webhooks on the other hand are automated calls from example.com to a server. Those calls are triggered when a specific event happens on example.com. For example, if a new user signs up on example.com, the automated call may be configured to ask the server to send out a welcome email.
Sometimes webhooks are referred to as a reverse API, but this isn’t entirely true. They don’t run backwards, but instead there doesn’t need to be a request initiated on your end, data is sent whenever there’s new data available.
To setup a webhook all you have to do is register a URL with the company proving the service you’re requesting data from. That URL will accept data and can activate a workflow to turn the data into something useful. In most cases you can even specify the situations in which your provider will deliver you the data.
Webhooks and APIs differ in how they make requests. For instance, APIs will place calls for data whether there’s been a data update response, or not. While webhooks receive calls through HTTP POSTs only when the external system you’re hooked to has a data update.
Webhooks are commonly used to perform smaller requests and tasks, however there are situations where a webhook is more appropriate than an entire API.
One common scenario is when your app or platform demands real-time updates, but you don’t want to waste your resources. In this instance a webhook would be beneficial.
Another circumstance to use a webhook over an API would be when the API is very poor, or there isn’t an API to begin with. You could create a workaround solution to give you the data your app requires to function.
However, there is a word of caution about webhooks. Since they aren’t used to regularly request data, and only do so when new data is available, there is a chance you could never learn about new updates if the system goes offline for some reason. You’ll also have less control over the total flow of data, as you have to accept the total data amount that’s available with the given update.
Many apps and tools do rely on webhooks, but primarily for smaller data requests rather than using them to form the backbone of their service. Still, there are plenty of examples of webhooks being used effectively.
API stands for Application Programming Interface. An API is a way for applications and platforms to connect with other applications and platforms via a common communication method. For an API to work there’s a request for data, followed by a response to that request. The data is usually delivered in a format like JSON.
APIs tend to be the framework that a lot of existing software and tools rely upon. For example, an application that creates Twitter trend reports could rely upon an API to continually get the freshest data right from Twitter. Most large apps have multiple APIs they integrate with the expand their service offerings, as you’ll see below.
APIs work incredibly well when you know you’re going to have a constant change in data. There’s no point in using an API if the data you’re requiring is going to be relatively stagnate. For example, if you’re an eCommerce store that regularly has to update its shipping and tracking data, then you’re going to be making constant requests.
Every time you poll the API you’re going to have new data. If your data isn’t constantly updated, then there’s no guarantee there’s going to be data ready for you at the other end. When this happens you’re simply wasting resources. However, if you’re set on using an API you can impose a call limit, which will limit the number of calls you make in a set time period. Some apps even limit the number of calls you make from the get go in order to reduce resource use on their end.
Like we mentioned above, APIs are everywhere. According to the latest results from ProgrammableWeb there are currently over 17,000 existing APIs. Below you’ll find a few tools that employ the use of APIs for their tools to function:
It’s not a case of which is better, because there isn’t a blanket circumstance where one method trumps the other. It’s more of a question regarding the purposes of your application and the kind of data you’re requesting.
To use an example, you can think of an API as a text message you send to a friend to get more information about an event they’re hosting. You ask a question, they send a response.
With a webhook, You tell your friend once to text you whenever they’re organizing another event, just to let you know. You put in the initial request, and they continually send you updates when new information arises.
In the end, most applications end up using both APIs and webhooks together to create a system that can communicate the right types of data at the right times.
This article was originally published on the ButterCMS blog. ButterCMS is a hosted API-first CMS and blog engine that lets you build CMS-powered apps.