--- method: GET path: /api/conflicts auth: jwt area: 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 ```http GET /api/conflicts?status=active&limit=10 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... ``` ## Response (200 OK) ```json example-response { "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 |