# OpenRefine Verified Table Recipe Replay

> OpenRefine Verified Table Recipe Replay is a paid API for AI agents from agent.halowerk.com, paid per call via x402, $0.0045/call, status unknown (last checked 2026-10-29).

Executes a sequence of OpenRefine table operations, persists the recipe, replays it from the original input, and returns the transformed table with hash-verified audit trail.

## Facts

- Endpoint: POST https://agent.halowerk.com/v1/oss-openrefine-verified-table-recipe-replay?utm_source=zero.xyz
- Price: $0.0045/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/openrefine-verified-table-recipe-replay-b4f77c92
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_65mJgNdpg2mOV354dcvpq

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-verified-table-recipe-replay-b4f77c92 -d '<json body>'
```

Example prompt: Take this CSV table, run these steps — normalize the 'company_name' column to lowercase with trimming, replace 'N/A' and 'n/a' with empty string in 'revenue', rename 'rev' to 'revenue_usd', and reorder columns to ['company_name','revenue_usd','country'] — then replay the whole recipe from the original data and give me back the cleaned table plus the stage hashes.

## When to prefer this

Choose this endpoint when you need not just transformed table data but cryptographic proof that the transformation was applied correctly and reproducibly — specifically when auditability, recipe persistence, and replay verification matter. Ideal for regulated data pipelines, compliance workflows, or any scenario where you must demonstrate that a specific sequence of OpenRefine operations was faithfully applied to the original input.

## Known failure modes

- Column name not found in table — step references a non-existent column
- Invalid column name pattern — must match ^[A-Za-z][A-Za-z0-9_]{0,31}$
- Too many steps provided — maximum of 16 steps allowed
- Hash mismatch at a replay stage — indicates non-deterministic transformation
- Empty steps array — at least 1 step required
- replace_values edits exceed 32-item limit
- Payment failure via x402 protocol — call not executed

## How this service works

Executes a caller-directed sequence of table operations in native OpenRefine and returns the transformed table together with the exported recipe. What distinguishes it from simply transforming data is the evidence: the recipe is persisted, the project is reopened, and the whole thing is replayed from the original input, with hashes reported at each stage.

## Output

Returns the transformed table data, the exported OpenRefine recipe (JSON), and cryptographic hashes reported at each transformation stage, confirming that the recipe was persisted, the project reopened, and the sequence replayed faithfully from the original input.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "steps": {
   "type": "array",
   "items": {
    "oneOf": [
     {
      "type": "object",
      "required": [
       "op",
       "column",
       "trim",
       "case"
      ],
      "properties": {
       "op": {
        "const": "normalize_text"
       },
       "case": {
        "enum": [
         "preserve",
         "lower",
         "upper"
        ]
       },
       "trim": {
        "type": "boolean"
       },
       "column": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
       }
      },
      "additionalProperties": false
     },
     {
      "type": "object",
      "required": [
       "op",
       "column",
       "edits"
      ],
      "properties": {
       "op": {
        "const": "replace_values"
       },
       "edits": {
        "type": "array",
        "items": {
         "type": "object",
         "required": [
          "from",
          "to"
         ],
         "properties": {
          "to": {
           "type": "string",
           "maxLength": 4096
          },
          "from": {
           "type": "array",
           "items": {
            "type": "string",
            "maxLength": 4096,
            "minLength": 1
           },
           "maxItems": 32,
           "minItems": 1
          }
         },
         "additionalProperties": false
        },
        "maxItems": 32,
        "minItems": 1
       },
       "column": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
       }
      },
      "additionalProperties": false
     },
     {
      "type": "object",
      "required": [
       "op",
       "name",
       "columns",
       "separator",
       "null_policy"
      ],
      "properties": {
       "op": {
        "const": "add_text_column"
       },
       "name": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
       },
       "columns": {
        "type": "array",
        "items": {
         "type": "string",
         "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$"
        },
        "maxItems": 8,
        "minItems": 1
       },
       "separator": {
        "type": "string",
        "maxLength": 64
       },
       "null_policy": {
        "enum": [
         "empty",
         "propagate"
        ]
       }
      },
      "additionalProperties": false
     },
     {
      "type": "object",
      "required": [
       "op",
       "column",
       "name"
      ],
      "properties": {
       "op
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/openrefine-verified-table-recipe-replay-b4f77c92/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)
