API
The term API stands for Application Programming Interface.
It is the way a computer program talks to another computer program. APIs has traditionally been the domain of software developers. A program uses a library someone else supplies. This is something that has been greatly extended with the arrival of the Internet. It is possible, and very common, that one computer program uses the services from another computer program and that they are connected through a network. This is often referred to as Service Oriented Architecture, SOA.
A specific case is obviously services available on Internet. The computer that offers the API is a server and the program that uses the service is a client. The supplier doesn't have to know anything about the client. All it needs to do is to reply on specific questions that the clients ask.
These services will be released independently of each other; they do not form a large monolithic lump. They are probably developed using different tools, different languages and by different teams. There are many differences but a common denominator is the way they communicate. They offer an API that others may or may not use through a network. A common property is also that they don't have a user interface.
SOAP APIs
A SOAP API is defined as a standardized communication protocol for XML-based message exchange. SOAP can use different protocols like HTTP or JMS. IN SOAP, all parameters the server needs to be able to respond to should be a in a W3C standardized XML format and part of the body in the request.
REST APIs
REST web services encode most parameters in the request URI, instead of an XML. Data is encoded in the URI or as request parameters, where encoding is not standardized by W3C.