# Deduplicate table rows — by key columns, no upload

> Deduplicate a table by one or more key columns, keeping the first or last occurrence, then export. Runs in your browser with no upload.

Remove duplicate rows by one or more key columns, keeping the first or last occurrence, and export the result. Deduplication runs in your browser, so the data isn't uploaded.

Merged exports and repeated imports accumulate duplicate rows that skew every count. Deduping by a chosen key cleans that up, and the first/last option lets you keep the record you actually want — say, the most recent entry.

Profile the data first to spot duplicate estimates, and after combining files with Append, run Dedupe to remove overlaps.

## How to

1. **Add a file.** Drop the CSV or table with duplicates.
2. **Pick key columns.** Choose the column(s) that define a duplicate.
3. **Choose which to keep.** Keep the first or last occurrence per key.
4. **Export.** Download the deduplicated file.

## FAQ

### How do I remove duplicate rows in a CSV?

Pick the key column(s) that define a duplicate and choose whether to keep the first or last occurrence; the rest are dropped on export.

### Can duplicates be defined by multiple columns?

Yes. Use a composite key so rows count as duplicates only when all chosen columns match — useful when no single column is unique.

### Is my data uploaded to deduplicate it?

No. Deduplication runs in your browser, so the rows stay on your device.


## Related tools

- [Schema profile](https://www.safepaper.app/data/profile)
- [Append / union](https://www.safepaper.app/data/append)
- [Row diff](https://www.safepaper.app/data/diff)
- [SQL query](https://www.safepaper.app/data/sql-query)

---

Canonical HTML: https://www.safepaper.app/data/dedupe
Markdown: https://www.safepaper.app/data/dedupe.md

There is no upload endpoint — your files are processed in this browser tab. Open your network tab and check.
