# Dataset Reconciliation

> Dataset Reconciliation is a paid API for AI agents from api.zfinia.com, paid per call via x402, $0.2/call, status unknown (last checked 2026-10-11).

Reconciles two CSV datasets by key, reporting missing keys, duplicates, cardinality issues, and field-level differences using exact decimal comparison.

## Facts

- Endpoint: POST https://api.zfinia.com/x402/v1/dataset-reconciliation?utm_source=zero.xyz
- Price: $0.2/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/dataset-reconciliation-031e1f24
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_h6BaC48bw6Nb6eGar62Dr

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 dataset-reconciliation-031e1f24 -d '<json body>'
```

Example prompt: Can you reconcile these two CSVs for me — join them on the 'order_id' column and compare the 'amount' and 'status' fields, then tell me every row that disagrees, any keys only on one side, and whether the join is truly 1:1?

## When to prefer this

Choose this endpoint when you need exact, auditable reconciliation of two tabular datasets joined by key — especially for financial, migration, or compliance use cases where floating-point imprecision would be unacceptable. Prefer it over general diff tools when you need cardinality analysis, duplicate detection, and row-level provenance all in one call. It is self-contained (fetches nothing externally) and deterministic.

## Known failure modes

- CSV too large (exceeds 256KB per side)
- Key column not found in one or both CSVs
- Delimiter mismatch causing parse failures
- More than 4 join keys specified
- Malformed CSV input (unescaped quotes, inconsistent columns)
- Numeric tolerance value invalid

## How this service works

Reconcile two datasets you supply and get one answer plus every disagreement. Reports keys present on only one side, keys duplicated on either side, whether the join is really 1:1 or silently N:M, and field-level differences with the row number on each side. Numbers compare exactly on their decimal text, never through floating point, so 42.50 and 42.5 agree while 9007199254740992 and 9007199254740993 do not. A repeated key is compared as an unordered multiset. Nothing is fetched.

## Output

Returns a structured report with: keys present only in the left or right dataset, keys duplicated on either side, whether the join cardinality is 1:1 or N:M, and field-level value differences with row numbers from each side. Numeric comparisons are performed on exact decimal text (e.g. 42.50 vs 42.5 agree; high-precision integers are distinguished correctly).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "key": {
   "type": "array",
   "items": {
    "oneOf": [
     {
      "type": "string"
     },
     {
      "type": "object",
      "required": [
       "left",
       "right"
      ],
      "properties": {
       "left": {
        "type": "string"
       },
       "right": {
        "type": "string"
       }
      },
      "additionalProperties": false
     }
    ]
   },
   "maxItems": 4,
   "minItems": 1
  },
  "left": {
   "type": "object",
   "required": [
    "csv"
   ],
   "properties": {
    "csv": {
     "type": "string",
     "maxLength": 262144
    },
    "name": {
     "type": "string",
     "maxLength": 64
    }
   },
   "additionalProperties": false
  },
  "right": {
   "type": "object",
   "required": [
    "csv"
   ],
   "properties": {
    "csv": {
     "type": "string",
     "maxLength": 262144
    },
    "name": {
     "type": "string",
     "maxLength": 64
    }
   },
   "additionalProperties": false
  },
  "compare": {
   "type": "array",
   "items": {
    "oneOf": [
     {
      "type": "string"
     },
     {
      "type": "object",
      "required": [
       "left",
       "right"
      ],
      "properties": {
       "left": {
        "type": "string"
       },
       "right": {
        "type": "string"
       }
      },
      "additionalProperties": false
     }
    ]
   }
  },
  "delimiter": {
   "type": "string",
   "maxLength": 1,
   "minLength": 1
  },
  "numeric_tolerance": {
   "oneOf": [
    {
     "type": "number",
     "minimum": 0
    },
    {
     "type": "string"
    }
   ]
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/dataset-reconciliation-031e1f24/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.zfinia.com](https://www.zero.xyz/host/api.zfinia.com/llms.txt)
