Review Result
Reclassify individual match results from a matching run as matched, review, or no_match. Matched results feed downstream enrichment and reconciliation.
Review a single match result by reclassifying its status. Each result carries the status the engine assigned when the run executed — matched, review, or no_match — and this endpoint moves it between those same three states after human inspection. Set matched to accept a borderline candidate, no_match to reject a false positive, or review to flag a result for another look.
The typical review workflow targets the review band: results whose confidence landed between the review floor (0.4) and the config threshold. Inspect the evidence.field_contributions to see exactly which fields agreed and disagreed, then accept (matched) or reject (no_match). Reclassifying does not recompute confidence — the score remains the engine's original weighted sum.
The response returns the full updated match result object, including the evidence breakdown and the new status. Once reviewed, a result can be re-reviewed by calling this endpoint again with a different status — there is no lock on the review state. Any other status value is rejected with a 400 listing the valid values.
For bulk review workflows, iterate over results from GET /v1/matching/runs/:id/results?status=review and call this endpoint for each result. The API enforces standard rate limits — for high-volume batch review, use reasonable concurrency (e.g. 10 concurrent requests) and respect the Retry-After header on 429 responses.
/v1/matching/runs/:runId/results/:resultId/reviewPath parameters
Body parameters
Request body
{
"status": "matched"
}Response
Response fields (200 OK)
Response
{
"id": "e5f6a7b8-c9d0-1234-efab-345678901234",
"document_id": "doc_uuid_1",
"document_filename": "invoice-acme-2024-001.pdf",
"matched_reference_row_id": "ref_row_42",
"confidence": 0.78,
"status": "matched",
"evidence": {
"field_contributions": [
{ "extracted_field": "vendor_name", "extracted_value": "Acme Corp GmbH", "reference_value": "Acme Corp", "match_type": "fuzzy_string", "matched": true, "weight": 0.4, "score": 0.95, "contribution": 0.38 },
{ "extracted_field": "invoice_date", "extracted_value": "2024-09-28", "reference_value": "2024-09-30", "match_type": "date_range", "matched": true, "weight": 0.3, "score": 1.0, "contribution": 0.3 },
{ "extracted_field": "amount", "extracted_value": 14100.00, "reference_value": 14250.50, "match_type": "numeric_range", "matched": false, "weight": 0.3, "score": 0.33, "contribution": 0.1 }
],
"candidates_considered": 3,
"top_n_candidates": [
{ "reference_row_id": "ref_row_42", "confidence": 0.78 }
],
"blocking_method": null
}
}Errors
Error responses