# Markup Sync > **Status: Coming Soon** — Native Kobo sync is not yet supported on real devices; this endpoint is under active development and may change. Sync markup highlights and annotations from Kobo device. **Endpoint**: `POST /api/sync/kobo/markup` **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 | | --------- | ----- | -------- | -------------------------------- | | bookmarks | array | Yes | Array of bookmark/markup objects | ### Bookmark Object | Field | Type | Required | Description | | ------------- | ------- | -------- | -------------------------- | | BookmarkID | string | Yes | Unique bookmark ID | | ContentID | string | Yes | Book content ID | | StartPosition | integer | Yes | Highlight start position | | EndPosition | integer | No | Highlight end position | | Text | string | No | Highlighted text | | Annotation | string | No | User annotation | | DateCreated | string | Yes | ISO 8601 timestamp | | Chapter | string | No | Chapter title | | Hidden | boolean | No | Whether bookmark is hidden | ### Example Request ```json { "bookmarks": [ { "BookmarkID": "bookmark123", "ContentID": "book-uuid", "StartPosition": 1234, "EndPosition": 1456, "Text": "Highlighted text from book", "Annotation": "My annotation", "DateCreated": "2026-02-08T10:00:00Z", "Chapter": "Chapter 1", "Hidden": false } ] } ``` ## Response (200 OK) ```json { "message": "Markup synced successfully", "synced_count": 1 } ``` ## Error Responses | Code | Description | | ---- | ---------------------------- | | 401 | Device authentication failed | | 400 | Invalid request data | | 404 | Device or book not found |