81trust / 100

Data Clean

by HALOWERK Agent Tools in Documents & files

x402 APIPassing, checked 21 min ago

Nimmt CSV oder eine Liste von Objekten, erkennt das Trennzeichen selbst, vereinheitlicht Spaltennamen, deutet Typen einschliesslich deutscher und englischer Zahlformate und Datumsformate, entfernt Dubletten, leere Zeilen und leere Spalten und meldet jede Aenderung. Liefert zusaetzlich ein abgeleitetes Schema je Spalte mit Hinweis auf gemischte Typen.

POST https://tools.halowerk.com/v1/data/clean

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
44 ms typical, 44 ms slowest 5%
Last check
21 min ago
Next check
in 11 min

How to call it

# See the payment challenge (nothing is charged)
curl -i -X POST "https://tools.halowerk.com/v1/data/clean" \
  -H "content-type: application/json" \
  -d '{"csv":"Firma;Umsatz 2025;Datum;Notiz\nBau GmbH;1.234,50;01.03.2026;\nBau GmbH;1.234,50;01.03.2026;\nHolz AG;980,00;15.04.2026;"}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ftools.halowerk.com%2Fv1%2Fdata%2Fclean
const res = await pay("https://tools.halowerk.com/v1/data/clean", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"csv":"Firma;Umsatz 2025;Datum;Notiz\nBau GmbH;1.234,50;01.03.2026;\nBau GmbH;1.234,50;01.03.2026;\nHolz AG;980,00;15.04.2026;"}),
});
console.log(await res.json());

Example input

{
  "csv": "Firma;Umsatz 2025;Datum;Notiz\nBau GmbH;1.234,50;01.03.2026;\nBau GmbH;1.234,50;01.03.2026;\nHolz AG;980,00;15.04.2026;"
}

Example output

{
  "columns": [
    "firma",
    "umsatz_2025",
    "datum"
  ],
  "report": {
    "columns_in": 4,
    "columns_out": 3,
    "duplicates_removed": 1,
    "empty_columns_removed": [
      "notiz"
    ],
    "empty_rows_removed": 0,
    "rows_in": 3,
    "rows_out": 2,
    "type_changes": {},
    "values_trimmed": 0
  },
  "rows": [
    {
      "datum": "2026-03-01",
      "firma": "Bau GmbH",
      "umsatz_2025": 1234.5
    },
    {
      "datum": "2026-04-15",
      "firma": "Holz AG",
      "umsatz_2025": 980
    }
  ],
  "schema": {
    "datum": {
      "mixed": false,
      "null_count": 0,
      "type": "date"
    },
    "firma": {
      "mixed": false,
      "null_count": 0,
      "type": "string"
    },
    "umsatz_2025": {
      "mixed": false,
      "null_count": 0,
      "type": "number"
    }
  },
  "source": "csv"
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
21 min agoPassed40297 ms$0.002
5 h agoPassed40244 ms$0.002