Skip to main content

Get Reconciliation Config

Retrieve the stored reconciliation config for a reference dataset, including anchor key columns, per-column rules, and validation settings.

Retrieve the reconciliation config persisted against a reference dataset. The config defines how documents anchor to reference rows and which per-column rules run after anchoring. It is stored as JSONB on the dataset, so this endpoint returns whatever was last saved, or null when no config exists yet.

A stored config has two main parts. The anchor block names the key columns and optional narrowing columns used to find the one reference row a document belongs to, plus any regex key_patterns that constrain which markdown tokens are eligible to anchor. The columns map assigns a role to each reference column: anchor, validate, or extract.

This is a read-only endpoint. Use it to inspect the current config before editing, to confirm an auto-configured config was saved, or to drive a config editor in your own UI. The dataset must belong to your tenant.

GET/v1/reconciliation/config/{referenceDataId}

Response

Response fields

configobject | nullThe stored config, or null if none has been saved.
config.namestringOptional config name.
config.versionintegerOptional config version number.
config.anchor.key_columnsstring[]Reference columns indexed for anchor lookup.
config.anchor.narrowing_columnsstring[]Columns used to disambiguate multiple anchor matches.
config.anchor.key_patternsobjectPer-column regex patterns markdown tokens must match to anchor.
config.anchor.markdown_scanningstringWhen to scan document markdown for anchors: fallback, always, or disabled.
config.columnsobjectPer-column rules keyed by reference column name.
config.columns[].rolestringColumn role: validate, extract, or anchor.
config.haiku_validationbooleanWhether per-document LLM validation runs on anchored rows.

Response

{
  "config": {
    "name": "Carrier reconciliation",
    "version": 2,
    "anchor": {
      "key_columns": ["booking_ref"],
      "narrowing_columns": ["carrier_name"],
      "key_patterns": { "booking_ref": "^[A-Z]{3}[0-9]{7}$" },
      "markdown_scanning": "fallback"
    },
    "columns": {
      "freight_amount": { "role": "validate", "type": "numeric_tolerance", "tolerance": 0.02, "required": true },
      "consignee": { "role": "validate", "type": "fuzzy_name", "threshold": 0.85 },
      "container_no": { "role": "extract" }
    },
    "haiku_validation": true
  }
}

When config is null, the dataset has no saved reconciliation config. You can still run reconciliation by passing an inline config to POST /v1/reconciliation/run, but persisting a config first means auto-configure merges your stored rules on top of its suggestions and keeps anchor behavior consistent across runs.

Errors

Error responses

400validation_errorInvalid reference data ID format. Must be a UUID.
401unauthorizedMissing or invalid API key.
404not_foundNo reference dataset with this ID exists for your organization.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.