★ #1 open alternative to Flatfile & OneSchema for modern teams

Your users upload messy CSV.
Get back clean, validated data.

CsvMod is an embeddable import widget that sniffs the file, maps columns with AI, repairs errors, and hands your app clean JSON — in seconds, not weeks of engineering.

See it live → Read the docs
1 script tagto embed
100k+ rowsparsed in a Web Worker
60fpsvirtualized review grid
30smedian time to first import

Everything an importer needs. Nothing your ops team hates.

Built around the four steps every CSV ingestion flow shares — we make each one automatic, auditable, and beautiful.

🔎Upload & smart sniffing

Delimiter, encoding, and header-row detection happen in a Web Worker thread — your page never janks, even on 100k rows. Live parse speed and row counts included.

AI schema mapping

DeepSeek-powered zero-shot column mapping pre-fills your target schema, with confidence indicators. Human override stays one dropdown away.

🧹AI error repair

"AI Fix Common Errors" normalizes misaligned emails, numbers, booleans, dates and enums in one click — with a full audit of what changed.

📊Review grid at 60fps

Virtualized rendering keeps 100k+ rows scrollable like Excel. Invalid cells glow red with hover reasons; duplicates flagged amber.

🔄Clean JSON out

One callback receives validated rows, rejected counts, and full parse metadata — or hook the csvmod-complete event for webhook pipelines.

🤖OpenClaw automation

Long-running batch cleaning and scheduled re-imports run server-side on the OpenClaw engine — your browser never blocks, your data lake stays fresh.

Live demo

This page is running the actual embed. Drop in sample.csv (10 messy rows) — or hit "Generate 100k rows" to feel the Web Worker + virtualized grid do their thing.

✓ Tested: 134/134 automated browser tests green · parses in a Web Worker · runs 100% client-side

STEP 1

Drop a messy CSV — delimiter, encoding & header auto-detected.

STEP 2

AI maps ambiguous columns; override with dropdowns.

STEP 3

Spot red invalid cells & duplicates in the 60fps grid. Click ✨ AI Fix.

STEP 4

Watch the ring fill, then get clean JSON in your callback.

CsvMod sample.csv
// onComplete output will appear here when you import.

Why teams switch to CsvMod

Five years of building importers in-house taught us exactly where they fall apart.

DIY parserFlatfile / OneSchemaCsvMod
Time to embed4–8 engineering weeks1–2 weeks~30 minutes
PricingHidden engineering cost$0.05–0.20 per rowFlat monthly + 4¢/row
AI column mapping✓ DeepSeek
100k row grid✗ janks✓ 60fps virtualized
Self-host / data residency✗ cloud only✓ single JS file
Batch automation✓ OpenClaw engine

One script. Thirty minutes.

1. Copy two files to your CDN.

2. Drop a component where your users upload.

3. Write one callback that receives clean rows.

No build step. No iframe. Shadow DOM means zero CSS leakage both ways.

<link rel="stylesheet" href="https://cdn.csvmod.com/site.css">
<script src="https://cdn.csvmod.com/csvmod.embed.js"></script>

<csvmod-importer license-key="pk_live_..." theme="auto">
</csvmod-importer>

<script>
  const importer = document.querySelector('csvmod-importer');
  importer.schema = { fields: [
    { key: 'email',  label: 'Email Address', type: 'email', required: true },
    { key: 'role',   label: 'User Role',     type: 'select',
      options: ['Admin', 'Member'] }
  ]};
  importer.onComplete = async (data) => {
    await api.importUsers(data.validRows);   // clean JSON
  };
</script>