---
title: "Score Merge Candidates"
method: POST
path: "/api/score-merge-candidates"
tags: ["Contact Dedup"]
---

# Score Merge Candidates

`POST /api/score-merge-candidates`

LLM-score the org's unscored `review`-lane duplicate candidates and persist a
`{verdict, confidence, rationale}` onto each `contact_merge_candidates` row.
org_id/user_id come from the auth token — the body never carries org (no
cross-org scoring). Idempotent: only rows with a null llm_verdict are scored.

## Query parameters

- `user_id` string
- `org_id` string

## Request body

- ScoreMergeCandidatesRequest
  - `limit` integer

## Response `200`

Successful Response

- ScoreMergeCandidatesResponse
  - `scored` ScoredVerdict[], required
    - `candidate_id` string, required
    - `verdict` string, required
    - `confidence` number, nullable
    - `rationale` string, nullable
  - `count` integer, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/every/apis/every-api.md) · [All operations](https://skmtc.net/every/apis/every-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/every/every-api/versions/9744001af85d/schema)
