# OpenRefine Reference Catalog Reconciliation Review

> OpenRefine Reference Catalog Reconciliation Review is a paid API for AI agents from agent.halowerk.com, paid per call via x402, $0.004/call, status unknown (last checked 2026-10-29).

Reconciles a column of names against a caller-supplied reference catalog using OpenRefine edit-distance matching, returning rows grouped by match confidence (single, multiple, or no candidates) without auto-resolving ambiguous cases.

## Facts

- Endpoint: POST https://agent.halowerk.com/v1/oss-openrefine-reference-catalog-reconciliation-review?utm_source=zero.xyz
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/openrefine-reference-catalog-reconciliation-review-605029e0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_TuJEXBGr1tOkuZ67v6669

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability openrefine-reference-catalog-reconciliation-review-605029e0 -d '<json body>'
```

Example prompt: I have a table of 80 supplier names in the 'supplierName' column and a reference catalog of 50 known suppliers — can you reconcile them using a max edit distance of 2, filtering to type 'company', and group the results into single matches, multiple candidates, and no matches without auto-picking any ambiguous ones?

## When to prefer this

Choose this endpoint when you have a private reference catalog (not a public knowledge base) and need to reconcile entity names against it using fuzzy matching with a configurable edit distance, particularly when human review of ambiguous cases is required and auto-resolution of conflicts is unacceptable. Prefer this over generic deduplication tools when you need OpenRefine's native reconciliation semantics with explicit single/multiple/none grouping and type filtering.

## Known failure modes

- Invalid column name pattern (must match ^[A-Za-z][A-Za-z0-9_]{0,31}$) returns validation error
- Catalog exceeds 100 entries — request rejected
- Table exceeds 200 rows — request rejected
- query_column not found in table columns — returns error
- max_edit_distance outside 0–8 range — validation failure
- Empty catalog array — validation error
- All rows unmatched when edit distance is too low or catalog is too sparse

## How this service works

Reconciles a column of names against a reference catalog that you supply — your catalog, not a public knowledge base — using native OpenRefine reconciliation with a caller-set edit distance and an optional required type. The result separates rows with a single candidate, rows with several, and rows with none, and it leaves the ambiguous ones ambiguous: an automatic pick would be the cheapest possible way to introduce a wrong identity into a reference dataset.

## Output

Returns rows partitioned into three groups: rows with exactly one catalog candidate (confident matches), rows with multiple candidates (ambiguous, left unresolved for human review), and rows with no candidates (unmatched). Each matched row includes the candidate ID, name, and type from the catalog.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "table": {
   "type": "object",
   "required": [
    "columns",
    "rows"
   ],
   "properties": {
    "rows": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "id",
       "values"
      ],
      "properties": {
       "id": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
       },
       "values": {
        "type": "array",
        "items": {
         "anyOf": [
          {
           "type": "string",
           "maxLength": 4096
          },
          {
           "type": "null"
          }
         ]
        },
        "maxItems": 16,
        "minItems": 1
       }
      },
      "additionalProperties": false
     },
     "maxItems": 200,
     "minItems": 1
    },
    "columns": {
     "type": "array",
     "items": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
     },
     "maxItems": 16,
     "minItems": 1
    }
   },
   "additionalProperties": false
  },
  "catalog": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "id",
     "name",
     "type"
    ],
    "properties": {
     "id": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
     },
     "name": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1
     },
     "type": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
     }
    },
    "additionalProperties": false
   },
   "maxItems": 100,
   "minItems": 1
  },
  "query_column": {
   "type": "string",
   "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
  },
  "required_type": {
   "type": "string",
   "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
  },
  "max_edit_distance": {
   "type": "integer",
   "maximum": 8,
   "minimum": 0
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/openrefine-reference-catalog-reconciliation-review-605029e0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent.halowerk.com](https://www.zero.xyz/host/agent.halowerk.com/llms.txt)
