Files
bookhoard/docs/developer/api/conflicts/list_conflicts.md
T
John O'Keefe eacc33bfac docs(conflicts,queue): Beam WO5 batch — 13 endpoints backfilled, registry pinned
Beam added frontmatter + provenance + labeled examples to the 7 conflict and
6 queue docs, fixing real field drift on the way (resolve response keys,
bulk result shape, dismiss-all deleted count, queue stats counts).

Claude registry verification found TWO Beam catches of Claude's own draft:
- queue routes use :device_id / :item_id params (registry first draft said :id)
- resolve_conflict DOES take a body (ConflictResolutionRequest) — registry
  first draft said nil
Both fixed; gate then surfaced one real Beam defect: example-request used a
nonexistent "resolution" field in resolve + bulk-resolve (real contract:
winner=<source|manual> with required manual_data for manual; strategy=
most_recent|highest_progress|manual). Fixed in the docs.

Pinned by type: ConflictListResponse, ConflictDetailResponse,
ConflictResolveResponse, BulkResolveRequest/Response, QueueStatsResponse,
ConflictResolutionRequest. dismiss-all deleted is an int count.
2026-10-24 15:37:45 -04:00

1.7 KiB

method, path, auth, area
method path auth area
GET /api/conflicts jwt conflicts

List Conflicts

List all sync conflicts for the current user.

Endpoint: GET /api/conflicts Auth: Required

Query Parameters

Parameter Type Required Description
status string No Filter by status (active, resolved, dismissed)
media_item_id string (UUID) No Filter by media item
limit integer No Maximum number of conflicts to return (default: 50)
offset integer No Number of conflicts to skip (default: 0)

Request Headers

Header Type Required Description
Authorization string Yes Bearer token

Example Request

GET /api/conflicts?status=active&limit=10
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Response (200 OK)

{
  "conflicts": [
    {
      "id": "uuid",
      "media_item_id": "book-uuid",
      "media_item_title": "Sample Book",
      "conflict_type": "progress",
      "conflict_data": {},
      "resolution_status": "unresolved",
      "created_at": "2026-02-08T10:00:00Z"
    }
  ],
  "total": 5,
  "unresolved": 5
}

Error Responses

Code Description
401 Invalid or expired token