It is not really a program or some programming tool, it is the programming language itself.
Sorry about that, but this is not correct. :P
An API is not a programming language, but (like the name says) an interface. Interfaces and programming languages are two different things:
A programming language is a way to represent algorithms, logic and commands in a human-readable form. Some would even say, PHP is not a programming, but a script language, since it is interpreted, while source code written in "real" programming languages as C or C++ is first compiled, linked (which results in an .exe file) and THEN executed. I have written programs myself in C++ for several years now, and PHP and C/C++ are very similar in their syntax, although C/C++ syntax is MUCH more strict. In C/C++, for example, you have to define the exact data type a variable has--not like in PHP where this can change all the time.
An API, however, is an interface that is developed for a programming language, so that source code written in that language can use the API to do certain tasks (like rendering graphics when it comes to DirectX or displaying windows or writing/reading files when it comes to the WindowsAPI).
So, an API is not the programming language itself, but the interface which can be used by source code to access certain functions. This may sound like it's the same (and in PHP you sometimes think it is), but it's actually not.
In C/C++ you may perfectly well code a program which does not use any API and just does some math or reorganizes the RAM, although this is pretty useless since when you don't use an API, there is no way to interact with the outside world, like actually printing out your results or taking in user information.
Hope this somehow helps?
:)