meta { name: Get Unlinked Books - User View type: http seq: 4 } get { url: {{base_url}}/api/sync/unlinked-books body: none auth: inherit } headers { Authorization: Bearer {{user_token}} Content-Type: application/json } script:post-response { function onResponse(res) { if (res.getStatus() === 200) { const body = res.getBody(); tests('Has unlinked array', body.unlinked !== undefined); tests('Has total count', body.total !== undefined); tests('Total >= 0', body.total >= 0); } } onResponse(res); } settings { encodeUrl: true timeout: 0 } docs { ## Get Unlinked Books - User View Retrieves all unlinked books for the authenticated user that need manual linking. **Method:** GET **Endpoint:** /api/sync/unlinked-books **Authentication:** Bearer token **Response:** - `unlinked` (array): Array of unlinked book objects - `id` (string): Unlinked book UUID - `title` (string): Book title - `author` (string): Book author - `device_id` (string): Source device ID - `device_name` (string): Source device name - `detected_at` (string): Detection timestamp - `total` (number): Total count of unlinked books **Status Codes:** - 200: Success - 401: Unauthorized - 500: Internal server error }