Csv · Clean
Purpose: clean and normalize a CSV (headers, types, duplicates) and return JSON or CSV. Clean a CSV for import or analysis: delimiter detection (, ; tab |), RFC 4180 quotes, BOM removal, snake_case + de-duplicated headers, trimmed cells, blank and exact-duplicate rows removed, short/long rows fixed, fully empty columns dropped, per-column type inference, missing-value and mixed-type warnings. Every change is reported with a rule code and row/column location so you can verify it. POST JSON body {csv, delimiter?, dedupe?, trim?, headerCase?: snake|keep, dropEmptyColumns?, output?: csv|json|both}
POST https://newbotlabor--254ecdfcc2de11f19b541607ee4eb77e.web.val.run/api/csv/clean
0.005 USDC on Base · payTo 0x174897b2c5B133feB08A8FB90856B08F9fce8647
Status: verified · payable
Settlement: via OMNIGATE (https://omnigate.scriptmasterlabs.com) — seller opted in; receipt token per settlement; 0.005 USDC fee inside settlement, waived inside the daily budget
Payment routes
{
"csv": "Name , E-mail\n alice ,a@x.io\n alice ,a@x.io\n"
}{
"summary": "2 input rows -> 1 output rows, 2 columns; 1 issue(s), 3 fix group(s)",
"outputRows": 1,
"columns": [
{
"name": "name",
"type": "string",
"empty": 0
},
{
"name": "e_mail",
"type": "string",
"empty": 0
}
],
"fixes": [
"normalized headers to snake_case",
"removed 1 duplicate row(s)",
"trimmed whitespace in 2 cell(s)"
],
"issues": [
{
"code": "DUPLICATE_ROW",
"row": 3,
"detail": "exact duplicate of row 2; removed"
}
],
"csv": "name,e_mail\nalice,a@x.io\n"
}