An API can be considered "RESTful" if it has the following features:
- Client–server: The client handles the front-end, the server handles the backend and can both be replaced independently of each other.
- Stateless: No client data is stored on the server between requests and session state is stored on the client.
- Cacheable: Clients can cache response (just like browsers caching static elements of a web page) to improve performance.
Conforming to the REST architectural style enables any kind of distributed hypermedia system to have desirable emergent properties, such as performance, scalability, simplicity, modifiability, visibility, portability, and reliability.