{"ok":true,"result":{"slug":"csv-cleaner","name":"CSV Cleaner","summary":"Clean CSV: trim cells, drop empty rows and columns, remove duplicate rows, rename headers, fix ragged rows and drop columns. Returns the cleaned CSV and a report of what changed.","description":"Clean messy CSV in your browser. Trim cells, drop empty rows and columns, remove duplicates, tidy header names, fix ragged rows and change the delimiter.","method":"POST","endpoint":"/api/v1/tools/csv-cleaner","plan":"free","mcpName":"csv_cleaner","input":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"string","description":"The CSV text.","maxLength":200000},"delimiter":{"type":"string","description":"Input delimiter: \"auto\" to detect, or a single character such as \",\" \";\" \"|\" or a tab.","default":"auto","maxLength":4},"outputDelimiter":{"type":"string","description":"Output delimiter: \"same\" keeps the input one, or a single character.","default":"same","maxLength":4},"header":{"type":"boolean","description":"Treat the first row as a header row (kept, never de-duplicated).","default":true},"trim":{"type":"boolean","description":"Trim whitespace around every cell.","default":true},"removeEmptyRows":{"type":"boolean","description":"Drop rows where every cell is blank.","default":true},"removeEmptyColumns":{"type":"boolean","description":"Drop columns where every data cell is blank.","default":false},"removeDuplicates":{"type":"boolean","description":"Drop repeated data rows, keeping the first.","default":false},"duplicateKeys":{"type":"string","description":"Comma-separated 1-based column numbers that identify a duplicate, e.g. \"2\" for the second column. Empty compares whole rows.","default":"","maxLength":500},"ignoreCase":{"type":"boolean","description":"Ignore letter case when finding duplicates.","default":false},"headerStyle":{"type":"string","description":"Rename headers: keep, snake (first_name) or title (First Name).","default":"keep","enum":["keep","snake","title"],"maxLength":200000},"ragged":{"type":"string","description":"Rows with a different number of cells: keep as they are, pad short rows to the widest row, or fit every row to the first row's width.","default":"keep","enum":["keep","pad","fit"],"maxLength":200000},"removeColumns":{"type":"string","description":"Comma-separated 1-based column numbers to drop, e.g. \"3, 5\".","default":"","maxLength":500},"crlf":{"type":"boolean","description":"Use CRLF line endings instead of LF.","default":false}},"required":["input"]},"example":{"input":" Name , Email \nAda, ada@example.com \n\nAda,ada@example.com\nAlan,alan@example.com","removeDuplicates":true,"headerStyle":"snake"},"randomOutput":false,"network":false,"docs":"https://pithlab.com/developers/tools/csv-cleaner","page":"https://pithlab.com/tools/csv-cleaner"}}