Skip to main content

Results

Retrieve matching results for a completed run. Returns the top 5 candidates per document with weighted confidence scores and per-field evidence breakdowns.

Retrieve the full paginated results for a completed matching run. Each result represents a document matched (or unmatched) against the reference dataset, with a weighted confidence score and per-field evidence breakdown showing how each field contributed to the overall score.

Use this endpoint after a run completes to review all matches. Filter by status=pending to see matches awaiting review, or status=approved to see confirmed matches. Paginate with page and limit — the run detail endpoint only shows the top 50 results, while this endpoint provides full access.

Each result includes a per-field evidence object showing the strategy used and individual score for each field mapping. A null matched_reference_row_id means no reference row scored above the configured threshold for that document. The confidence score is the weighted sum of per-field scores using the weights from the matching config.

Use POST /v1/matching/runs/:runId/results/:resultId/review to approve or reject individual matches programmatically. Pair with the config detail endpoint to understand which field mappings and thresholds produced these results. Re-run matching with adjusted weights or a lower threshold to capture more matches.

Results with status: pending have not been reviewed. Use POST /v1/matching/runs/:runId/results/:resultId/review to approve or reject individual matches. Approved matches can be used downstream for data enrichment and reconciliation workflows.
GET/v1/matching/runs/:id/results

Response

Response fields

dataarrayArray of match result objects.
data[].idstringResult UUID.
data[].document_idstringSource document UUID.
data[].document_filenamestring | nullSource document filename.
data[].matched_reference_row_idstring | nullMatched reference dataset row ID.
data[].confidencenumberWeighted confidence score (0–1).
data[].statusstringReview status: pending, approved, or rejected.
data[].evidenceobject | nullPer-field evidence with strategy and score.
pagination.totalintegerTotal number of results for this run.
pagination.pageintegerCurrent page number.
pagination.limitintegerResults per page.

Response

{
  "data": [
    {
      "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.92,
      "status": "pending",
      "evidence": {
        "vendor_name": { "strategy": "fuzzy", "score": 0.95 },
        "invoice_date": { "strategy": "date_range", "score": 1.0 },
        "amount": { "strategy": "numeric_range", "score": 0.82 }
      }
    }
  ],
  "pagination": {
    "total": 183,
    "page": 1,
    "limit": 50
  }
}

Errors

Error responses

401unauthorizedMissing or invalid API key.
404not_foundNo matching run with this ID exists for your workspace.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.