--- method: POST path: /api/conflicts/:id/resolve auth: jwt area: conflicts --- # Resolve Conflict Resolve a specific conflict by choosing which version to keep. **Endpoint**: `POST /api/conflicts/:id/resolve` **Auth**: Required **Content-Type**: `application/json` ## Path Parameters | Parameter | Type | Required | Description | | --------- | ------------- | -------- | ------------- | | id | string (UUID) | Yes | Conflict UUID | ## Request Body | Field | Type | Required | Description | | ---------- | ------ | -------- | -------------------------------------------------------------- | | resolution | string | Yes | Resolution strategy: "device", "server", or "highest_progress" | ### Example Request ```json example-request { "winner": "kobo" } ``` `winner` is one of the conflict's source keys (e.g. `"kobo"`, `"koreader"`, `"web"`) or `"manual"` — the latter requires `manual_data`. ## Response (200 OK) ```json example-response { "conflict_resolved": true, "applied_to": {}, "devices_synced": [] } ``` ## Error Responses | Code | Description | | ---- | --------------------------- | | 400 | Invalid resolution strategy | | 401 | Invalid or expired token | | 404 | Conflict not found | | 400 | Conflict already resolved |