List Runs
List matching runs with optional config filtering, cancel in-progress runs, poll lightweight progress updates, and trigger AI resolution on borderline matches.
List all matching runs in the current workspace, optionally filtered by configuration. Each run object includes status, row counts, average confidence, and timing information. Use this endpoint to monitor active runs, review historical executions, or find runs to cancel.
Runs progress through a well-defined lifecycle: queued (waiting for worker), running (actively comparing rows), completed (all rows processed), failed (unrecoverable error), cancelled (user-initiated cancellation), or ai_resolving (AI disambiguation pass on borderline matches). The triggered_by field indicates whether the run was started manually, by schedule, or via the API.
For active runs, use the progress sub-endpoint to get lightweight status updates without loading the full run object. This is ideal for polling UIs — the response includes the current phase, phase-level progress percentage, and running row counts. For runs with a strategy, the ai-resolve endpoint triggers a post-hoc AI resolution pass on the review band to disambiguate borderline matches.
Cancelling a run is only possible while the run is in queued or running status. Once a run reaches completed, failed, or cancelled, the cancel endpoint returns a 409 conflict. Cancelled runs retain any partial results produced before cancellation — use the results endpoint to access them.
config_id to filter runs for a specific matching configuration. Without it, all runs across all configs in the workspace are returned./v1/matching/runsResponse
Response fields
Response
{
"data": [
{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"matching_config_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"triggered_by": "manual",
"rows_processed": 200,
"rows_matched": 183,
"avg_confidence": 0.91,
"started_at": "2024-10-02T14:00:05.000Z",
"completed_at": "2024-10-02T14:02:30.000Z",
"error": null,
"created_at": "2024-10-02T14:00:00.000Z",
"links": {
"self": "/v1/matching/runs/c3d4e5f6-a7b8-9012-cdef-123456789012",
"config": "/v1/matching/configs/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
],
"pagination": {
"total": 5,
"limit": 20,
"has_more": false,
"next_cursor": null
}
}/v1/matching/runs/:id/cancelResponse (Cancel)
Response fields
Response (POST /cancel)
{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"matching_config_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "cancelled",
"triggered_by": "manual",
"rows_processed": 120,
"rows_matched": 98,
"avg_confidence": 0.89,
"started_at": "2024-10-02T14:00:05.000Z",
"completed_at": "2024-10-02T14:01:15.000Z",
"error": null,
"created_at": "2024-10-02T14:00:00.000Z",
"links": {
"self": "/v1/matching/runs/c3d4e5f6-a7b8-9012-cdef-123456789012",
"config": "/v1/matching/configs/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}/v1/matching/runs/:id/progressResponse (Progress)
Response fields
Response (GET /progress)
{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"status": "running",
"phase": "scoring",
"phase_progress": 64.5,
"rows_processed": 129,
"rows_matched": 105,
"started_at": "2024-10-02T14:00:05.000Z",
"completed_at": null
}/v1/matching/runs/:id/ai-resolveResponse (AI Resolve)
Response fields
Response (POST /ai-resolve)
{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"status": "ai_resolving",
"message": "AI resolution started. Poll the run detail endpoint for progress."
}Errors
Error responses