# Example Projects API

This fictional API is a writing template. Replace all endpoints, values, and example responses with your tested service behavior.

## List projects

`GET /v1/projects`

Returns projects visible to the authenticated user.

### Authentication

Send `Authorization: Bearer YOUR_TOKEN` over HTTPS. Document where users obtain a token and which permissions it requires.

### Query parameters

| Parameter | Type | Required | Default | Constraints |
| --- | --- | --- | --- | --- |
| limit | integer | No | 20 | 1–100 |
| cursor | string | No | none | Use next_cursor from the previous response |

### Request

```bash
curl "https://api.example.com/v1/projects?limit=20" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

### Success response

HTTP `200 OK`:

```json
{"items":[{"id":"project_123","name":"Documentation"}],"next_cursor":null}
```

### Errors

| Status | Meaning | Suggested action |
| --- | --- | --- |
| 400 | Invalid limit or cursor | Check the parameter constraints |
| 401 | Missing or invalid token | Obtain a valid token |
| 429 | Rate limit exceeded | Follow the service's documented retry policy |

## Review before publishing

- [ ] Replace the example hostname and test the request.
- [ ] Document actual authentication and pagination behavior.
- [ ] Verify status codes and response fields against your implementation.
- [ ] Record the API version and last review date.
