---
sidebar_label: "API Reference"
sidebar_custom_props:
  section: "Templates"
  section_position: 1
---

{/*

API Reference pages document REST, GraphQL, or other API endpoints with details about 
parameters, request/response formats, and authentication. Keep examples realistic and 
include error cases. Use tables for parameter documentation to maintain consistency.

*/}


# API Reference Template

Comprehensive documentation for all available API endpoints, including request parameters, response formats, and authentication requirements.

## Authentication

All API requests require authentication using an API key passed in the `Authorization` header.

```http
Authorization: Bearer YOUR_API_KEY
```

## Base URL

```
https://api.example.com/v1
```

## Endpoints

### GET /resource

Retrieve a list of resources.

**Parameters:**

| Name    | Type     | Required | Description                           |
|---------|----------|----------|---------------------------------------|
| `limit` | integer  | No       | Maximum number of results (default: 10) |
| `page`  | integer  | No       | Page number for pagination (default: 1) |
| `sort`  | string   | No       | Sort field and order (e.g., `name:asc`) |

**Example Request:**

```bash
curl -X GET "https://api.example.com/v1/resource?limit=5&page=1" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

**Example Response:**

```json
{
  "data": [
    {
      "id": "123",
      "name": "Example Resource",
      "created_at": "2024-01-15T10:30:00Z"
    }
  ],
  "meta": {
    "total": 42,
    "page": 1,
    "limit": 5
  }
}
```

### POST /resource

Create a new resource.

**Request Body:**

| Field        | Type   | Required | Description                    |
|--------------|--------|----------|--------------------------------|
| `name`       | string | Yes      | Name of the resource           |
| `description`| string | No       | Optional description           |

**Example Request:**

```bash
curl -X POST "https://api.example.com/v1/resource" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "New Resource",
    "description": "A sample resource"
  }'
```

**Example Response:**

```json
{
  "id": "124",
  "name": "New Resource",
  "description": "A sample resource",
  "created_at": "2024-01-15T10:35:00Z"
}
```

## Error Responses

| Status Code | Description                       |
|-------------|-----------------------------------|
| 400         | Bad Request - Invalid parameters  |
| 401         | Unauthorized - Invalid API key    |
| 404         | Not Found - Resource doesn't exist|
| 429         | Too Many Requests - Rate limited  |
| 500         | Internal Server Error             |

**Example Error Response:**

```json
{
  "error": {
    "code": "invalid_parameter",
    "message": "The 'limit' parameter must be between 1 and 100"
  }
}
```

:::tip Rate Limits
API requests are limited to 100 requests per minute per API key. Check the `X-RateLimit-Remaining` header in responses.
:::
