Files
bookhoard/docs/developer/api/kobo/markup_sync.md
T
john-okeefe 4d321528b2 docs: update comprehensive API documentation and project guides
This commit updates all documentation files throughout the project:

- Updated IMPLEMENTATION_PLAN.md with new implementation details
- Updated PROJECT_GUIDELINES.md with coding standards and practices
- Updated README.md with current project information
- Updated SCREENSHOT_AUTOMATION.md with new automation details
- Added TEST_DATA.md with test fixtures data
- Updated cover_image_serving_plan.md with static URL patterns

Documentation API updates:
- Updated API reference documentation for all endpoints including:
  - Authentication (login, logout, register, refresh_token)
  - Book matching (auto_link, bulk_link, link_book, search)
  - Collections (CRUD operations, shelf mappings, auto-assign rules)
  - Conflicts (bulk operations, resolve/dismiss)
  - Devices (registration, approval, shelf management)
  - Highlights (create, update, delete, get)
  - Kobo sync (bookmark, markup, initialization, sync)
  - KOReader sync (library, metadata, bookmarks, progress)
  - Libraries (CRUD, folders, media items, stats)
  - Media items (bulk operations, CRUD)
  - Notes (CRUD operations)
  - OPDS (acquisition, feeds, publication)
  - Progress (reading progress tracking)
  - Queue (device queue management)
  - Ratings (star ratings)
  - Scanner (watch mode, scan operations)
  - Sync protocols (Kobo, KOReader)
  - Users (profile, password, admin operations)
  - WebSocket protocols

- Updated user guides (admin, dashboard, settings, sync)
- Updated device setup guides (Kobo, KOReader)
- Updated developer guides (testing, contributing, operations)
- Updated scripts/README.md
2026-02-27 17:06:22 -05:00

2.0 KiB

Markup Sync

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

{
  "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)

{
  "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