# Sync From Server

Push content and metadata to Kobo device.

**Endpoint**: `POST /api/sync/kobo/sync-from-server`
**Auth**: Required (Device authentication)

## Device Authentication

This endpoint requires device authentication (not user JWT). Kobo devices authenticate using their device credentials and access tokens.

## Request Body

| Field     | Type            | Required | Description                                   |
| --------- | --------------- | -------- | --------------------------------------------- |
| book_ids  | array of string | No       | Array of ContentIDs to sync                   |
| full_sync | boolean         | No       | Whether to perform full sync (default: false) |

### Example Request

```json
{
  "book_ids": ["content-id-1", "content-id-2"],
  "full_sync": false
}
```

## Response (200 OK)

```json
{
  "books": [
    {
      "ContentID": "content-id-1",
      "Title": "Book Title",
      "Author": "Author Name",
      "ISBN": "978-0123456789",
      "PublicationDate": "2026-02-08",
      "FileSize": 1234567,
      "CoverImageId": "cover-id-1",
      "Metadata": {
        "language": "en",
        "publisher": "Publisher Name"
      }
    }
  ],
  "total": 2
}
```

## Error Responses

| Code | Description                  |
| ---- | ---------------------------- |
| 401  | Device authentication failed |
| 404  | Device not found             |

## Notes

This endpoint pushes library content from the server to the Kobo device. It's called during sync operations to update the device's library catalog.
