This page documents the canonical HTTP contract for this endpoint.
Use the preview route GET /api/tables/{table_id}/dedupe/{column_key}/stats first, then pass its duplicate count and plan fingerprint to detect a stale preview. The request model permits either value to be omitted, but omitting them removes that corresponding confirmation check. Scope is always the entire table; the first row by table position survives each duplicate group.
Path parameters
table_idrequiredstring
Research Table ID.
| Name | Type | Description |
|---|---|---|
| table_idrequired | string | Research Table ID. |
Body parameters
column_keyrequiredstring
Nonblank identity column key.
expectedDuplicateCount· optionalinteger|null
Expected duplicate count from the preview, minimum 0.
expectedPlanFingerprint· optionalstring|null
Optional 64-character SHA-256 hex fingerprint from the preview.
| Name | Type | Description |
|---|---|---|
| column_keyrequired | string | Nonblank identity column key. |
| expectedDuplicateCount | integer|null | Expected duplicate count from the preview, minimum 0. |
| expectedPlanFingerprint | string|null | Optional 64-character SHA-256 hex fingerprint from the preview. |
Errors
| Status | Meaning |
|---|---|
| 401 | Authentication is required. |
| 403 | The caller lacks access to the resource or the tables:write scope. |
| 422 | The request does not satisfy the route or typed request contract. |
| 400 | The requested column does not exist on this table. |
| 404 | The table was not found. |
| 409 | The table changed since the supplied preview confirmation. |
| 422 | The selected column is unsupported or the request is invalid. |
