The API (Application Program Interface) allows (sometimes bi-directional) data exchange between two software. REST stands for Representational State Transfer. It relies on a stateless, client-server, cacheable HTTP protocol. REST is an architecture style for designing networked applications. API transaction should be encrypted and require an API key for authentication.