We still don't know what “API” means. That's okay!

22 Mar 2024

In 2019 I did two surveys, first asking people what they think “API” meant and second asking people what “application” in “application programming interface” meant.

In 2024 I ran a version of these two surveys combined that got 161 responses. At the I end gave people a box where they could write anything they’d like. Lawrence Evalyn suggested that I make a little combinatory poem mixing together everybody’s answers. Each line of this poem is a substring of a different response:

Holy hell
there’s some sort of joke here
This question melted my brain

Low confidence
Ultimately I would like to have a different name
shape of an http interface doesn’t really fit

Made me think!
most applications are distributed
this is pretty funny!

cool survey haha
Interesting questions
Google is evil

The survey data is here in Google Sheets (sorry, at least one respondent!), along with my sloppy what-passes-for-analysis analysis. (Free-form comments were removed, since a fair number of them included identifying information.)

What do the letters in API stand for?

”We” actually do seem to know what words the letters in API stand for, more or less. The level of consistency between the two surveys is borderline implausible:

91% of people answered that the P stood for “programmumble:” program, programmable, programmer, or programming. And some of the other answers, like “public” and “protocol,” still clearly get at the same, correct, idea.

What does the word “Application” mean?

This gets more interesting when you ask people the individual words comprising “API” mean.

Here’s the 2019 data next to the more recent survey, also broken down by years-of-knowing-what-an-API-is:

Breakdown of
Who writes the “application” in “application programming interface?”

This chart gives us two pieces of evidence that the overall meaning of what the “application” in API means is gradually transitioning away from the original meaning (APIs help you build applications) to a new meaning (APIs are how you access someone else’s applications).

Does this matter?

The argument for “yes” is that, if you value being understood, it’s worth knowing when terms that you think of as settled are, empirically, in flux. For the meaning of API, it seems like we’re past a tipping point now.

I would strongly suggest that, if you’re someone in a position of teaching folks what API is, you’re doing students a disservice if you only teach an empirically outdated definition.

Conversely, I think it’s important for more-newly-minted software developers to know that “API” does not just mean “REST API.” (This is maybe less of a concern that it was five years ago, though? I feel like I hear more talk about parts of the web platform, like the Web Storage API, than I did a few years ago.)

The argument for “no” was best described by one of the respondents who described the word “application” as an “empty signifier” and the person who described the term API as an “indecomposable noun.” I think that’s correct: we all kind of know that API is used to describe a certain kind of documented, stable interface that get built between programming systems with significantly different concerns.

It’s actually great, in my opinion, that we have widely-accepted name for this kind of interface, because “interface” is a pretty generic term with a broader meaning. The REST APIs that you use to access applications like Zoom or Slack and the Web Storage API that you use to build stateful-yet-serverless web applications share a lot of fundamental similarities. The fact that I used “application” referred to two “different sides of the API” in the previous system isn’t that big a deal unless you think too hard about it!

I’ll close with a modest proposal. Given the cultural love of recursive acronyms in some corners of tech culture, can we just say API means “API Programming Interface?” It would save me from writing another survey in five years.

Discuss this post on Mastodon (or whatever)