# Listing Endpoints - The API Blueprint

APIs are like waiters, they communicate your request to the system and deliver the system's response back to you. The menu? Those are your endpoints. Let's dive into understanding and documenting them.

## Introduction to Endpoints

Endpoints are specific URL patterns in an API that represent different functions of the software. They are essentially the "menu" of options that the API provides.

## Why List Endpoints

* **Clarity for Developers**: Knowing what functions are available and how to use them.
* **User Experience**: Helps users understand the capabilities of your API.

## How to Document Endpoints

### HTTP method and path

Clearly define the HTTP verb (GET, POST, PUT, DELETE, etc.) and the endpoint path.

### Expected request and response formats

Describe what the API expects to receive and what it will send back. Here's an example for the endpoint `GET /user`

```sh
Request: { "username": "Tanya" }
Response: { "id": 1, "username": "Tanya", "email": "tanya@example.com" }
```

### Error messages

List potential error messages and their causes.

Example `Error: 404 Not Found - User does not exist.`

## Language Agnostic Tips

Regardless of the language, always ensure your endpoints are:

* Clear
* Concise
* Well-organized

## Exercises & Examples

1. Imagine a bookstore API. List its potential endpoints.
2. Document expected request and response formats for a "create order" endpoint.
