Skip to content

Conflicts API

GET /api/conflicts?status=pending
Terminal window
curl http://localhost:8000/api/conflicts?status=pending

Query params

ParamValuesDefault
statuspending, resolved, dismissed(all)

Response 200 OK

[
{
"conflict_id": "c-abc123",
"wcp_id": "notion:page_xyz",
"sides": [
{ "app_name": "notion", "data": {"title": "v1"}, "detected_at": "2026-04-03T10:00:00Z" },
{ "app_name": "obsidian", "data": {"title": "v2"}, "detected_at": "2026-04-03T10:01:00Z" }
],
"strategy": "manual",
"status": "pending",
"resolution": null,
"resolved_at": null,
"resolved_by": null
}
]

POST /api/conflicts/{conflict_id}/resolve
Content-Type: application/json
Terminal window
curl -X POST http://localhost:8000/api/conflicts/c-abc123/resolve \
-H "Content-Type: application/json" \
-d '{"winning_app": "notion"}'

Body

{"winning_app": "notion"}

winning_app must be the name of one of the apps involved in the conflict.

Response 200 OK — returns the updated ConflictOut object.

Errors

CodeReason
404Conflict ID not found
409Conflict already resolved or dismissed
422winning_app is not part of this conflict

Marks the conflict as dismissed without writing any data.

POST /api/conflicts/{conflict_id}/dismiss
Terminal window
curl -X POST http://localhost:8000/api/conflicts/c-abc123/dismiss

Response 204 No Content

Errors

CodeReason
404Conflict ID not found
409Conflict already resolved or dismissed

GET /api/conflicts/strategy
Terminal window
curl http://localhost:8000/api/conflicts/strategy

Response 200 OK

{"strategy": "source_wins"}

PUT /api/conflicts/strategy
Content-Type: application/json
Terminal window
curl -X PUT http://localhost:8000/api/conflicts/strategy \
-H "Content-Type: application/json" \
-d '{"strategy": "manual"}'

Body

{"strategy": "manual"}

Valid values: source_wins, last_write_wins, manual.

Errors

CodeReason
422Invalid strategy value