The application programming interface, or API, is a general and ubiquitous concept that tackles the problem of abstraction. Computers programs are, most fundamentally, chunks of binary code that correspond to a few simple instructions (e.g. add these values and put them in this memory location) that the computer steps through and executes. Programming at such a low level is generally long, boring and repetitive.
We would prefer to programmatically manipulate data structures in much the same way that we talk about the objects we're representing: I want to type ball = sphere (radius=1, color=color.red) (valid VPython code) and see a red ball without ever worrying about how the computer goes about creating it.
An API is a set of high-level behaviors that a programmer can use without programming the underlying operations. In scientific computing, for example, I often want to manipulate vectors, and instead of writing the code to do so by hand, I can use the linear algebra API BLAS. (An API is technically distinct from the API's implementation. The former is just the high-level behavior defined, while the latter is the code that actually runs when a programmer uses the API. BLAS is only one set of operations, but many codes implement it.)
Today's web APIs certainly make programming at a high level of abstraction easy (I can ask Facebook for a nicely-formatted, human-readable object representing a user's profile in one line of code), but they serve a second, crucial purpose: making the web more connected. Without APIs, apps are restricted to point-and-click interactions with real people using browsers (or programs that pretend to be people). APIs allow all parts of the modern ecosystem to talk to each other seamlessly.
Alex Edelman is Chief Technology Officer of Handshake Media, Incorporated.