API ( Application program interface ) is a set of routines, protocols, tools for building software applications . An API specifies how software components should interact and APIs are used when programming graphical user interface (GUI) components. A good API makes it easier to develop a program by providing all the building blocks. APIs often come in the form of a library that includes specifications or routines, data structures, object classes and variables. APIs can be web-based, or specific to a platform. An API is a list of commands as well as the format of those commands that one program can send to another. It is used so that individual programs can communicate with one another directly and use each other’s functions. API’s are provided by any program that allows interaction with other programs. People who write programs but wishes to use the functionality that already exist in other programs can simply look at the API documentation to find the list of commands available to them. An API can also be expressed as a set of things you can access from software that if you communicate with them properly, something will happen in a well documented way. In the context of the web, the API’s generally allow you to send commands to programs running on the servers that you connect to from your browser or with the browser itself. This allows you to access resources only available on the server. Google has APIs for search, calendars, translations, etc. Facebook and Twitter have APIs that allow software to automatically post status updates. Apple provides many APIs for building iPhone apps. UI and APIs are just ways to hide the complexity of web services.