Files
bookhoard/docs/developer/api/media-items/delete_media_bookmark.md
T
John O'Keefe ed0ce5d077 docs(media-items): Work Order 3 batch 3a — reader-adjacent CRUD (11 endpoints)
New frontmatter'd docs with real shapes (sqlc models pinned directly):
- bookmarks: get/create/update/delete (sync-aware rows: dedup_key,
  last_modified_*, tombstones; delete is 204)
- review: upsert (empty string DELETES the review) / get (200 with
  {review:null} when absent) / delete
- get single note + highlight (full sqlc row shapes)
- annotation history: restore (POST, kind via query or body) and purge
  (DELETE, kind via required query; permanent)

Gate hardening forced by this batch:
- required-field walk now guards non-struct Request types (RawMessage pins)
- update_media_bookmark needed a full example block (no cross-reference
  shortcuts — the gate checks every doc standalone)
2026-10-24 15:03:36 -04:00

575 B

method, path, auth, area
method path auth area
DELETE /api/media-items/:id/bookmarks/:bookmarkId jwt media-items

Delete Media Bookmark

Tombstones a bookmark (sync-aware delete, source "web"). Success is 204 No Content — no body.

Errors

Status Body When
400 {"error": "invalid bookmark id"} / {"error": "invalid user"} malformed
404 {"error": "bookmark not found"} no such bookmark
500 {"error": "..."} unexpected server error