{"uid":"cap_kxB4AHeKwEpz89XPWUCxc","slug":"ai-data-tools-scraped-data-cleaner-111f2324","name":"AI Data Tools - Scraped Data Cleaner","description":"Deterministic post-scrape data cleaner and quality gate for AI agents. Three tiers over one engine, no LLM anywhere: the same input always produces byte-identical output.\n\n**CLEAN** (`POST /api/clean`, $0.04) - post the raw output of a scrape, get the REPAIRED data back as the response body: residual HTML stripped, mojibake decoded (\"CafÃ©\" -> \"Café\"), invisible characters removed, non-breaking spaces normalised, values trimmed, across nested objects and arrays. It repairs how data was ENCODED and never what it SAYS: a negative price or a failed extraction (\"captcha\", \"access denied\") is reported, never rewritten or deleted. Call it after every extraction run - a verdict is cached per source, but dirt is produced fresh by every run.\n\n**CLEAN + AUDIT** (`POST /api/clean/audit`, $0.12) - identical repaired data plus a complete, replayable, reversible ledger of every transformation, with a replay_id and input/output SHA-256. Applying the ledger in reverse reconstructs the input byte for byte.\n\n**VERDICT** (`POST /api`, $0.01) - score + exact facts + a RELIABLE / USABLE_WITH_CLEANING / UNRELIABLE judgement, for deciding whether to trust a source at all. Facts-only signals (price_divergence, text_cleanliness, a robust MAD cross-check) report alongside without moving the score.\n\nWhat is repaired automatically, what needs an explicit opt-in, and what is only ever reported is published in full at `GET /api/clean` - machine-readable, and auditable before you pay. Paid via x402: no account, no API key, no signup.","url":"https://www.aidatatools.dev/api/clean","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","description":"The scraped data to process. A JSON array of objects, a single object, a CSV string or raw text are all accepted -- the endpoint detects the shape and gives the same shape back."},"type":{"type":"string","const":"http"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":{"type":"json","example":{"sku":"B0C1","price":"12,99","title":"Café Table Lamp & Shade"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.04","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"registry","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.04/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.04","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.04","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_mD4rS2M_wAkUWVP99_5oI","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.04","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Deterministically repairs and normalizes scraped data (JSON objects, arrays, CSV, or raw text) and returns the same data shape, cleaned.","exampleAgentPrompt":"I just scraped a batch of product records and some have garbled prices like '12,99', weird special characters in titles, and inconsistent SKU formatting — can you run them through the data cleaner and give me back the fixed records in the same JSON shape?","exampleUseCases":[{"title":"E-commerce catalog scrape repair","prompt":"I scraped 500 product listings and the prices are formatted like '12,99' or '$12.99 USD' mixed together, and some titles have encoding artifacts like '&amp;' — clean all of them up and give me back the same JSON array with corrected fields."},{"title":"Scraped real estate data normalization","prompt":"My scraper pulled property listings but the square footage, prices, and address fields are a mess with inconsistent formats and junk characters. Can you repair the data and return it as the same JSON objects, cleaned up?"},{"title":"CSV pipeline data fix before database load","prompt":"I have a CSV string from a scraping job that has broken special characters, inconsistent date formats, and some fields with stray HTML tags — please clean it up deterministically and return a fixed CSV so I can load it into the database."}],"resultDescription":"Returns the same data shape as the input (JSON array of objects, single object, CSV string, or raw text) with fields repaired: normalized prices, corrected special characters, standardized encodings, and fixed formatting inconsistencies — a drop-in replacement for the original scraped data.","failureModes":["Unrecognizable input format that cannot be parsed — likely returns an error or unparseable response","Input body missing required 'type', 'method', or 'bodyType' fields — returns 400-level validation error","Extremely large payloads may time out or be rejected","Ambiguous data where the 'correct' value is unclear may be repaired inconsistently","Non-UTF-8 or binary content not representable as JSON/text may fail to parse"],"whenToPreferThis":"Choose this endpoint when you have scraped data with deterministic, rule-based repair needs — malformed prices, encoding issues, special character corruption, or inconsistent formatting — and you need the exact same data shape returned. Prefer it over ML-based enrichment tools when reproducibility and determinism are critical, and over validation-only endpoints when you need the data actually fixed, not just flagged. It accepts JSON objects, arrays, CSV, and raw text, making it versatile for scraping pipelines.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T18:36:21.964Z","isFirstParty":false}