My dim understanding is that an API would what you program to in order to tightly bind to a set of services - generally as a local library.
An SPI, on the other hand, would commonly bind to a more dynamic ("plug-compatible") set of services. In my experience, these services are often remotely supplied, but by acquiring a suitable proxy object implementing the SPI you get the same effect as if you were calling a local service.
Except for the actual process of acquiring the service object, the difference to the application programmer is minimal.
That's my interpretation. Corrections/clarifications anyone?
"privilege" comes from the Latin words for "private" and "law" (legal) and dates to feudal times. To "claim privilege" meant that you were above the laws that applied to the common people.
Of course, I found a very beautiful couch. Definitely. And this tiny ad: