{"uid":"cap_bltNhl-zFYMVM3wuCHfTB","slug":"textdock-csv-clean-de4a6867","name":"Textdock CSV Clean","description":"Deterministic CSV, URL and text utilities sold per call in USDC on Base.","url":"https://textdock.ggez.my.id/csv_clean?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"csv":{"type":"string"},"drop_empty":{"type":"boolean"},"key_columns":{"type":"array","items":{"type":"string"}}}},"responseSchema":{"type":"json","example":{"data":[["1","ada"],["2","grace"]],"rows":2,"columns":["id","name"],"warnings":[],"dedupe_key":["id"],"dropped_empty":0,"dropped_duplicates":1}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_D7RmShtkOPuOKNyHW9FH7","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Cleans a CSV string by dropping empty rows and deduplicating by key columns, returning structured data with row/column metadata and warnings.","exampleAgentPrompt":"Clean this CSV for me — drop any empty rows and deduplicate by the 'email' column: 'id,email,name\\n1,ada@x.com,Ada\\n2,,Grace\\n1,ada@x.com,Ada duplicate'","exampleUseCases":[{"title":"Deduplicate customer export by ID","prompt":"I have a CSV export of our customer list and there are duplicate rows. Can you clean it up and deduplicate by the 'customer_id' column? Here's the CSV text: 'customer_id,name,email\\n101,Alice,alice@co.com\\n102,Bob,bob@co.com\\n101,Alice,alice@co.com'"},{"title":"Strip empty rows before database import","prompt":"Before I import this CSV into our database, can you clean it by dropping all the empty rows? Here's the data: 'id,product,price\\n1,Widget,9.99\\n,,\\n2,Gadget,14.99\\n,,\\n3,Doohickey,4.99'"},{"title":"Validate and count rows in uploaded CSV","prompt":"I just got a CSV upload from a vendor — can you parse it, tell me how many rows and columns it has, flag any warnings, and deduplicate by the 'sku' column? CSV: 'sku,name,qty\\nA1,Bolt,100\\nA2,Nut,200\\nA1,Bolt,100'"}],"resultDescription":"Returns a JSON object containing: a 2D array of cleaned data rows, total row count, column names array, list of warnings, the dedupe key used, count of dropped empty rows, and count of dropped duplicate rows.","failureModes":["Malformed CSV string causes parse error","Key columns specified that don't exist in the CSV headers","Empty CSV input returns zero rows with no error","Very large CSV may time out or exceed payload limits","Non-UTF-8 encoded CSV may produce garbled output"],"whenToPreferThis":"Choose this endpoint when you need a lightweight, pay-per-call, deterministic CSV cleaning operation — specifically deduplication by key columns and empty-row removal — without spinning up a data pipeline or ETL service. Ideal for agents processing ad-hoc CSV uploads or exports where data quality needs a quick, reliable pass before downstream use.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-21T12:30:13.899Z","isFirstParty":false,"canonicalSlug":"textdock-csv-clean-de4a6867"}