What on earth is an API?

5 min read ยท Jul 14, 2025

Good developers always aim to explain things simply, but a little shared understanding goes a long way. To help bridge that gap, this blog post will explain the concept of an API.

You've likely come across the term 'API' before, perhaps without a clear idea of what it actually is. It stands for 'Application Programming Interface', but everyone just says 'API', so don't worry about remembering it.

An API is a piece of software that allows systems to speak to each other. A good starting example is a news app on your phone. The news app doesn't write news articles itself, they're written by journalists. Your news app fetches the articles using an API, and then shows them to you.

---
config:
---

sequenceDiagram
    actor A as User
    participant B as News App
    participant C as News API
    A ->> B: Open app
    B ->> C: What are the latest news articles?
    C ->> B: Town grows world's largest pumpkin, Man fights bear... 

Another example is Google Forms and Google Sheets. These two apps can be integrated so that when a user submits a form in Google Forms, a new row is added to a sheet in Google Sheets.

---
config:
---

sequenceDiagram
    actor A as User
    participant B as Google Forms
    participant C as Google Sheets API
    A ->> B: Submit feedback form
    B ->> C: Add new row
    C ->> B: Row added!

Many of the online services you use provide an API, meaning you can integrate them with other apps, or even your own custom software. The Google Forms and Google Sheets integration we just looked at is a great example of a built-in integration, it's already set up by Google, and you can simply choose it from a menu within Google Sheets.

Many businesses have unique needs that aren't covered by built-in integrations. For instance, Google Sheets doesn't offer a built-in way to send an email every time a new row is added - for that we need a custom integration.

---
config:
---

sequenceDiagram
    participant A as Google Sheets API
    participant B as Integration
    participant C as Gmail API
    B ->> A: Read sheet
    A ->> B: Sheet rows
    B ->> C: Send email
    C ->> B: Email sent!

Here we can see the integration is reading the sheet using the Sheets API, and then sending an email using the Gmail API. An integration isn't magic, it's just another piece of software that is acting as a middle man between different systems.

Now, you might be thinking: how does the integration know when a new row has been added to the spreadsheet? If it had to constantly keep a copy and compare it, or keep asking Google Sheets for all the data just to spot one new row, that would get complicated. To make this easier, many systems use something called a webhook.

A webhook changes the direction of data flow: instead of the integration constantly pulling the data by asking Google Sheets for updates, Google Sheets pushes a notification to the integration the moment a new row is added - much simpler.

---
config:
---

sequenceDiagram
    participant A as Google Sheets API
    participant B as Integration
    participant C as Gmail API
    A ->> B: Row added
    B ->> C: Send email
    C ->> B: Email sent!

You can think of webhooks as a notification that something has happened in a system, an event. These events could be anything from a new row being added, a form being submitted, a product being purchased, or a new customer signing up - you get the idea.

As we've discussed, integrations are simply another piece of software. You might have heard of platforms like Zapier or IFTTT (If This Then That). These are useful because they let you build custom integrations between systems without needing to write any code. For simple integrations, like the example we diagrammed above, these platforms work great.

However, some integrations can become quite complex. This is because different systems often speak different languages. For example, one system might record a date as 2025-07-09 while another expects 09/07/2025. The integration needs to do some clever mapping between them to ensure everything works.

So to summarise what we've covered: an API is software that allows systems to speak to each other. They allow for reading data (e.g. what are the latest news articles?) and performing actions (e.g. send an email). An integration is software that connects two systems, acting as a middle man, they can be built-in or custom. A webhook is a way for one system to notify another that something has happened (e.g. a row has been added).

If your organisation needs a custom integration that's a bit more complex, feel free to reach out to us, we'd love to help.