An Application Programming Interface, or API is essentially a library of subroutines which can be sold as an interface around which a third party developer can access the essential features of the vendors applications, or in this case, database. The API is a rather clunky old way of making programs inter-operate, requiring considerable tweaking and customisation to achieve inter-operation. A more desirable way of achieving the same thing would be to have a truly standard data model, with standardised, documented practices for accessing it. This would allow each developer to work independently, rather than to buy into, and to comply with a proprietary API.