# Get Unlinked Books

Get all books that haven't been linked to media items yet for a specific device.

**Endpoint**: `GET /api/devices/:deviceId/sync/unlinked-books`
**Auth**: Required

## Path Parameters

| Parameter | Type          | Required | Description |
| --------- | ------------- | -------- | ----------- |
| deviceId  | string (UUID) | Yes      | Device UUID |

## Query Parameters

| Parameter | Type    | Required | Description                                     |
| --------- | ------- | -------- | ----------------------------------------------- |
| limit     | integer | No       | Maximum number of items to return (default: 50) |
| offset    | integer | No       | Number of items to skip (default: 0)            |

## Request Headers

| Header        | Type   | Required | Description  |
| ------------- | ------ | -------- | ------------ |
| Authorization | string | Yes      | Bearer token |

### Example Request

```http
GET /api/devices/550e8400-e29b-41d4-a716-446655440000/sync/unlinked-books?limit=10
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
```

## Response (200 OK)

```json
{
  "items": [
    {
      "id": "uuid",
      "file_name": "book.epub",
      "file_path": "/path/to/book.epub",
      "size_bytes": 1234567,
      "modified_at": "2026-02-08T10:00:00Z"
    }
  ],
  "total": 15,
  "limit": 10,
  "offset": 0
}
```

## Error Responses

| Code | Description              |
| ---- | ------------------------ |
| 401  | Invalid or expired token |
| 404  | Device not found         |
