## What is a REST API?

**API** stands for **Application Programming Interface**. An API is a set of rules that allows programs to communicate with each other, exposing data and functionality across the internet in a consistent format.

**REST** stands for **Representational State Transfer**. It is an architectural pattern that defines how distributed systems can provide a standardized interface. When people refer to a **REST API**, they generally mean an API that is accessed using the **HTTP protocol** at a predefined set of URLs.

These **URLs represent resources** —which can be any type of data or content, such as JSON, HTML, audio files, or images. Each resource typically supports one or more **HTTP methods** that define the actions that can be performed on it:

- **GET** - Retrieve a resource.
- **POST** - Create a new resource.
- **PUT** - Update an existing resource.
- **DELETE** - Remove a resource.


The distinction between **POST** and **PUT** can be confusing, but the general rule is:

- Use POST to create a new resource.
- Use PUT to update an existing resource.