A set of functions and procedures that allow the creation of software applications which access the features or data of an operating system, application, or service.