@evan oh wow, what a twist.
@evan well, then human-computer interfaces are also 'API's. I don't think they are though. APIs imply specificity and rigidity (doesn't contradict with parametricity). So, an API doesn't exist explicitly for programs that do just one thing.
Programs like ed / sed / find, however, create an API within UNIX runtime by making rigid decisions about how to run completely different code paths depending on the arguments supplied.
@jonn OK, but pipes are an API. Small pieces, loosely joined requires ways to join the pieces.