Clean — by Similarity API

Compare two CSV files— see what changed

Upload two versions of the same list. Clean highlights every added, removed, changed, and unchanged row — no formulas, no sign-up, no install.

Drop file or browse

CSV, XLSX, or XLS · up to 10 MB

Drop file or browse

CSV, XLSX, or XLS · up to 10 MB

Row-by-row diff: Added · Removed · Changed · Unchanged

How It Works

How to compare two CSV files in 4 steps

Step 1

Upload

Drop your two CSV or Excel files. No signup, no install, no data stored.

Step 2

Auto-configure

Clean reads both files and recommends comparison settings. You can switch methods and tune settings before running.

Step 3

Review

See what was added, removed, changed or unchanged. 

Step 4

Download Results

Get full results instantly!.

Row-by-row diff

See exactly what changed between two CSV files.

Compare two CSV files

Upload two versions of the same list. Clean shows you every added, removed, changed, and unchanged row in one place — no formulas, no sign-up.

  • Compare two CSV or Excel files row-by-row, value-by-value
  • Pick a shared key (ID, email, anything) — Clean highlights what moved
  • Export a clean diff report with Added / Removed / Changed / Unchanged sheets
  • Works whether your files share a column name or not

Why Clean

Why spreadsheets fall apart when you need to compare two files

EXCEL / GOOGLE SHEETSOTHER ONLINE TOOLSClean
Compares across multiple columnsSome
Lets you switch between fuzzy match, exact join, and diff in one tool
Tells you upfront which approach fits your two files
Works on large files (50k+ rows combined)Time out
Browser-based — no formulas, no add-inSome

Simple Pricing

Free for small files. Pay only for large Excel & CSV jobs.

Process up to 500 rows for free. Larger files are priced per run.

$0

Up to 500 rows

  • Fuzzy deduplication
  • Multi-column matching
  • Instant download
Most Popular

Large File

$1.99+

501 – 100,000 rows

  • Up to 3,000 rows — $1.99
  • Up to 10,000 rows — $4.99
  • Up to 25,000 rows — $9.99
  • Up to 50,000 rows — $19.99
  • Up to 100,000 rows — $29.99

Monthly Unlimited

$99.99/mo

Unlimited uploads

  • Up to 10 MB per file
  • Unlimited file upload / deduplication
  • Priority customer support
  • Cancel anytime

Learn more

Guides for matching two lists

Step-by-step articles on reconciling CRM imports, trade-show lists, and vendor exports.

NEED MORE?

Interested in deduping larger files?

Our API handles millions of rows with sub-second matching, bulk uploads, and programmatic access. Or reach out and we'll walk you through a custom solution — free of charge.

FAQ

Frequently asked questions

Is my data safe to upload?

Both files are processed in memory and deleted immediately after your session. They are never written to permanent storage, never shared, and never used for any purpose other than generating your results. You can verify this in our privacy policy.

What file formats are supported?

CSV, XLSX, and XLS. Maximum 10 MB per file. If your files are larger, contact us — we can run them via the API.

How is pricing calculated for the reconcile tool?

Pricing is based on the combined row count across both files — File A rows plus File B rows, excluding headers. For example, a 400-row trade show export checked against a 2,000-row CRM export counts as 2,400 rows total. Free for combined totals up to 500 rows with no account required. For larger combinations: $1.99 up to 3,000 rows combined, $4.99 up to 10,000 rows, $9.99 up to 25,000 rows, $19.99 up to 50,000 rows, and $29.99 up to 100,000 rows. You can preview your results before paying — payment is only required to download.

Which file should be File A and which should be File B?

File A is the new list you want to check — a trade-show export, an Apollo or ZoomInfo download, a vendor or partner list, anything you're about to import. File B is your existing reference — your CRM export, customer database, or current contact list. The output is structured around File A: which rows in A already exist in B (matched, suppress before import) and which rows in A are net-new (safe to import). Get this backwards and the output won't make sense, so pick A = new list, B = source of truth.