Executes a caller-directed sequence of table operations in native OpenRefine and
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.
Answeringour last check, 2026-10-24
1 of 1checks answered this week
1220 msmedian answer time
$0.0045listed price per call
$0.0045price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://agent.halowerk.com/v1/oss-openrefine-verified-table-recipe-replay
| Category | Everything else |
|---|---|
| Provider host | agent.halowerk.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 2 from 2 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-24 | valid payment request | 402 | $0.0045 | 1220 ms |
Example input (from the provider)
{
"body": {
"steps": [
{
"case": "lower",
"column": "name",
"op": "normalize_text",
"trim": true
},
{
"case": "preserve",
"column": "code",
"op": "normalize_text",
"trim": true
},
{
"column": "status",
"edits": [
{
"from": [
"yes",
"Y"
],
"to": "active"
},
{
"from": [
"no"
],
"to": "inactive"
}
],
"op": "replace_values"
},
{
"columns": [
"name",
"code"
],
"name": "label",
"null_policy": "empty",
"op": "add_text_column",
"separator": " / "
},
{
"column": "code",
"name": "external_id",
"op": "rename_column"
},
{
"column": "notes",
"op": "remove_column"
}
],
"table": {
"columns": [
"name",
"code",
"status",
"notes"
],
"rows": [
{
"id": "r1",
"values": [
" \u00c9lodie ",
" X1 ",
"yes",
null
]
},
{
"id": "r2",
"values": [
"ALICE",
"x2",
"Y",
""
]
},
{
"id": "r3",
"values": [
null,
"001",
"no",
"keep"
]
}
]
}
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"steps": {
"items": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"case": {
"enum": [
"preserve",
"lower",
"upper"
]
},
"column": {
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
"type": "string"
},
"op": {
"const": "normalize_text"
},
"trim": {
"type": "boolean"
}
},
"required": [
"op",
"column",
"trim",
"case"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"column": {
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
"type": "string"
},
"edits": {
"items": {
"additionalProperties": false,
"properties": {
"from": {
"items": {
"maxLength": 4096,
"minLength": 1,
"type": "string"
},
"maxItems": 32,
"minItems": 1,
"type": "array"
},
"to": {
"maxLength": 4096,
"type": "string"
}
},
"required": [
"from",
"to"
],
"type": "object"
},
"maxItems": 32,
"minItems": 1,
"type": "array"
},
"op": {
"const": "replace_values"
}
},
"required": [
"op",
"column",
"edits"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"columns": {
"items": {
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
"type": "string"
},
"maxItems": 8,
"minItems": 1,
"type": "array"
},
"name": {
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
"type": "string"
},
"null_policy": {
"enum": [
"empty",
"propagate"
]
},
"op": {
"const": "add_text_column"
},
"separator": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"op",
"name",
"columns",
"separator",
"null_policy"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"column": {
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
"type": "string"
},
"name": {
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
"type": "string"
},
"op": {
"const": "rename_column"
}
},
"required": [
"op",
"column",
"name"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"column": {
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
"type": "string"
},
"op": {
"const": "remove_column"
}
},
"required": [
"op",
"column"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"columns": {
"items": {
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",