--- method: GET path: /api/media-items/:id/bookmarks auth: jwt area: media-items --- # Get Media Bookmarks Lists the signed-in user's bookmarks for one media item (sync-aware rows: dedup key and last-writer bookkeeping included). ## Example response ```json example-response [ { "id": "110e8400-e29b-41d4-a716-446655440000", "media_item_id": "550e8400-e29b-41d4-a716-446655440000", "user_id": "92413c3a-e1b8-4fff-b3f9-95c74478d19a", "page_number": null, "chapter_number": null, "cfi_position": null, "title": "Chapter 3", "position": "kindle:pos:1:2", "notes": null, "created_at": "2026-10-24T13:57:01Z", "dedup_key": "kindle:pos:1:2", "last_modified_at": "2026-10-24T13:57:01Z", "last_modified_source": "web", "device_sync_data": null, "percentage_location": null, "epubcfi_location": null, "chapter_reference": null, "deleted": false, "deleted_at": null, "origin_source": "web" } ] ``` `device_sync_data` is `[]byte` → base64 string when set, `null` otherwise. pgtype fields are `null` when unset. ## Errors | Status | Body | When | | ------ | ---- | ---- | | 400 | `{"error": "invalid user"}` / `{"error": "invalid media item id"}` | malformed ids | | 500 | `{"error": "..."}` | unexpected server error |