---
title: "Resolve a context disputed by a `contradicts` link (T352)"
method: POST
path: "/api/contexts/{id}/resolve-contradiction"
tags: ["Contexts"]
---

# Resolve a context disputed by a \`contradicts\` link (T352)

`POST /api/contexts/{id}/resolve-contradiction`

## Request

- Base URL: `http://localhost:38200`
- URL: `http://localhost:38200/api/contexts/{id}/resolve-contradiction`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `token`

`:id` is the disputed context (the link's TARGET). A disputed row stays visible/searchable throughout the dispute, so this is a plain write-scope action rather than an admin-only moderation route.

## Path parameters

- `id` integer, required

## Request body

- object
  - `resolution` 'keep_source' | 'keep_target' | 'merge', required
  - `note` string

## Response `200`

Resolved.

- object
  - `id` integer
  - `lifecycle` string

## Other responses

- `400`: Request body/query failed Zod validation.
- `401`: Missing or invalid credentials.
- `404`: Disputed context not found (also returned when the row exists but is no longer disputed).

---

[API](https://skmtc.dev/contextq/apis/contextq-api.md) · [All operations](https://skmtc.dev/contextq/apis/contextq-api/llms.txt) · [OpenAPI document](https://skmtc.dev/contextq/apis/contextq-api/revisions/7afc44056a22?raw)
