Webhook vs API: What’s the Difference Between Them?


Posted on

hookAs you become familiar with SendGrid’s services, or even those of many Internet companies, you’ll see the term “API” used a lot. Increasingly, you may also see someone mention a “webhook.” At SendGrid, we’ve consciously made a distinction between the two in our documentation and any time we write or speak about our seven services for simplifying email. Here’s how we break down the differences between webhooks and APIs.

What is an API?

API stands for Application Programming Interface, but what does that really mean? Rather than what it is, I find it easier to talk about what APIs enable. APIs can share data or functionality. For example, you might use a places API to look up restaurants by location or name, pulling out a lot of data about each place. Then you might combine that with a mapping API, using it as an interface for displaying your data.

Programmers who make a request to an API will then receive a response. For example, using our Web API to send an email, you’d pass the email contents with the request. If all goes well, you will receive a response declaring success.

What is a Webhook?

Sometimes people call webhooks reverse APIs, but perhaps more accurately a webhook lets you skip a step. With most APIs there’s a request followed by a response. No request is required for a webhook, it just sends the data when it’s available.

To use a webhook, you register a URL with the company providing the service. That URL is a place within your application that will accept the data and do something with it. In some cases, you can tell the provider the situations when you’d like to receive data. Whenever there’s something new, the webhook will send it to your URL.

“Call Me When He’s Warmed Up”

Calling the bullpen by slgckgc on Flickr

Baseball managers could really use webhooks. As the game progresses, they often want to change pitchers. To do this requires the new pitcher to first warm up in the bullpen, which is usually over 300 feet from the team’s dugout. If you watch baseball on television, you’ll often see the manager pick up a phone in the dugout. He’s making a call to the bullpen to check on the new pitcher.

  • “Is he warmed up yet?”
  • “Not yet”

Then he hangs up the phone. In a few minutes he’ll have to call again. Programmers would call this polling and it’s process-intensive for both sides. A webhook lets you say, “call me when he’s warmed up.”

Example Webhooks

Parse Webhook diagram

SendGrid has two distinct webhooks related to each direction that email flows:

  1. Event Webhook provides data about the emails you send, such as bounces and when the recipient clicks a link.
  2. Inbound Parse Webhook allows your application to receive email as soon as a message comes in.

Some non-SendGrid webhooks:

Hopefully that gives you a few ideas about what a webhook is and how it is different from an API.

Now it’s time to start doing something with those webhooks. Here are four things you can do with webhooks, including testing them on your local machine or connecting them to other services.


Adam DuVander speaks fluent "developer" while serving as Developer Communications Director. He helps SendGrid connect to coders of all stripes. Previously Adam wrote for Wired, Webmonkey and edited ProgrammableWeb, the leading resource for APIs.

Adam DuVander on Twitter

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>