Files
bookhoard/docs/developer/api/kobo/bookmark_sync.md
T
John O'Keefe 25ef0d12ba docs(kobo,koreader,collections): Beam WO5 batch 6 — 12 endpoints
Kobo emulation + KOReader calibre-compatible surface backfilled with
device-token auth; collections reorder + update_rule created.

Claude registry: 12 entries. kobo/koreader emulation endpoints all bind
arbitrary protocol POST bodies (markup/bookmark/gettests/sync-from-server,
koreader progress/bookmarks) — registered as AnyJSONObject, not bodyless as
first drafted. Initialization returns the library sync payload, not the init
response.

Contract correction in update_rule.md: the route is SetRuleEnabled ({enabled}
required -> {collection_id, is_smart}); Beam's draft invented rule-field
updates. Reordered response/status: {item_ids} -> {status: reordered}.

make test 9/9.
2026-10-24 16:25:00 -04:00

1.8 KiB

method, path, auth, area
method path auth area
POST /api/sync/kobo/:token/bookmark device-token kobo

Bookmark Sync

Status: Coming Soon — Native Kobo sync is not yet supported on real devices; this endpoint is under active development and may change.

Sync bookmarks from Kobo device.

Endpoint: POST /api/sync/kobo/:token/bookmark 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 objects

Bookmark Object

Field Type Required Description
BookmarkID string Yes Unique bookmark ID
ContentID string Yes Book content ID
StartPosition integer Yes Bookmark position
Text string No Bookmark text
DateCreated string Yes ISO 8601 timestamp

Example Request

{
  "bookmarks": [
    {
      "BookmarkID": "bookmark123",
      "ContentID": "book-uuid",
      "StartPosition": 1234,
      "Text": "Chapter 5",
      "DateCreated": "2026-02-08T10:00:00Z"
    }
  ]
}

Response (200 OK)

{
  "BookmarksSynced": null,
  "MarkupsSynced": null,
  "Status": null
}

Error Responses

Code Description
401 Device authentication failed
400 Invalid request data
404 Device or book not found