> ## Documentation Index
> Fetch the complete documentation index at: https://docs.simplehost.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# List Sites

> GET /api/v1/publishes — List all your sites

## List All Sites

Returns all sites owned by the authenticated user.

```
GET /api/v1/publishes
```

### Headers

| Header          | Required | Description          |
| --------------- | -------- | -------------------- |
| `Authorization` | Yes      | `Bearer sh_live_...` |

### Example

```bash theme={null}
curl -X GET https://simplehost.dev/api/v1/publishes \
  -H "Authorization: Bearer sh_live_your_key_here"
```

### Response (200)

```json theme={null}
{
  "sites": [
    {
      "slug": "bright-canvas-a7k2",
      "siteUrl": "https://bright-canvas-a7k2.simplehost.dev/",
      "status": "active",
      "title": "My Project",
      "fileCount": 5,
      "totalSize": 102400,
      "createdAt": "2026-03-19T20:37:48.537Z",
      "updatedAt": "2026-03-19T20:50:57.655Z",
      "expiresAt": null
    },
    {
      "slug": "deep-dock-h336",
      "siteUrl": "https://deep-dock-h336.simplehost.dev/",
      "status": "pending",
      "title": null,
      "fileCount": 0,
      "totalSize": 0,
      "createdAt": "2026-03-20T10:15:00.000Z",
      "updatedAt": "2026-03-20T10:15:00.000Z",
      "expiresAt": null
    }
  ],
  "total": 2
}
```

### Response Fields

| Field       | Type           | Description                            |
| ----------- | -------------- | -------------------------------------- |
| `slug`      | string         | The site's unique identifier           |
| `siteUrl`   | string         | The live URL                           |
| `status`    | string         | `active`, `pending`, or `expired`      |
| `title`     | string \| null | The site title (from metadata)         |
| `fileCount` | number         | Number of files in the current version |
| `totalSize` | number         | Total size in bytes of all files       |
| `createdAt` | string         | ISO 8601 timestamp                     |
| `updatedAt` | string         | ISO 8601 timestamp                     |
| `expiresAt` | string \| null | Expiry timestamp (null = permanent)    |
