--- method: GET path: /api/devices/:deviceId/sync/unlinked-books auth: jwt area: book-matching --- # 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 example-response { "total": 15, "unlinked": null } ``` ## Error Responses | Code | Description | | ---- | ------------------------ | | 401 | Invalid or expired token | | 404 | Device not found |