CSV Contact Cleaner: Dedupe Emails, Reject Report, Excel-Safe
Pricing
from $500.00 / 1,000 1,000 input rows processeds
CSV Contact Cleaner: Dedupe Emails, Reject Report, Excel-Safe
Clean contact CSVs: remove duplicate and invalid emails, get a reason for every rejected row, block Excel formula injection. CSV URL, Google Sheets or text.
Pricing
from $500.00 / 1,000 1,000 input rows processeds
Rating
0.0
(0)
Developer
Jo NuMe
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Give it a contact list (CSV URL, public Google Sheets link or pasted text). Get back a clean list you can import into your CRM or emailing tool, plus a file explaining every row that was removed.
What it does
- Removes duplicate emails (case and spaces ignored, first occurrence kept).
- Rejects invalid emails and broken rows (wrong number of columns) with a reason per row:
duplicate_email,invalid_email,malformed_row. - Neutralises spreadsheet formula injection (CSV injection): cells starting with
=,+,-,@get a leading apostrophe, so opening the file in Excel or Google Sheets never runs a formula. Real phone numbers like+33 6 12 34 56 78are left untouched. - Keeps all your columns (city, company, tags...) and accounts for every input row: kept + duplicates + invalid = input.
- Detects comma / semicolon / tab separators and UTF-8 or Windows-1252 encoding (French Excel exports).
- Recognises
email,e-mail,mail,courrielheaders, or any column name you set. - Gives SHA-256 fingerprints of the input and outputs, so you can prove which file was processed.
It does not contact mail servers (no SMTP/MX check) and does not store your data after the run beyond Apify's normal storage retention.
Input
| Field | Description |
|---|---|
csvUrl | Public CSV URL or Google Sheets link (max 20 MB) |
csvText | Or paste the CSV directly |
emailColumn | Optional, if your email column has another name |
requireFullFile | Optional. Stop (nothing charged for rows) instead of cleaning only the first rows when your max cost per run is too low for the whole file |
Output
- Dataset: the cleaned rows (export as CSV, Excel, JSON from the Output tab).
- Key-value store:
CLEANED_CSV: cleaned file, same separator as the input;REJECTS_CSV: rejected rows with source row number and reason;OUTPUT: JSON report (counts, reasons, detected separator/encoding, SHA-256).
Example report:
{"summary": {"input_rows": 5, "kept_rows": 2, "duplicate_rows": 1, "invalid_rows": 2, "escaped_cells": 1},"reject_reasons": {"duplicate_email": 1, "invalid_email": 1, "malformed_row": 1}}
Pricing
Pay per event: $0.50 per started block of 1,000 input rows (a 250-row file costs $0.50, a 10,000-row file $5.00), plus Apify's tiny run-start fee. A file with a header but no data rows costs only the run start.
The Actor checks your maximum cost per run (Run options) before charging. If it is too low for the whole file, the first rows that fit are cleaned and only those are charged; the status message and the unprocessed_rows field of OUTPUT say how many rows were left out (duplicates are then checked within the cleaned rows). Tick requireFullFile to stop instead: nothing is charged for rows and the message tells you how many blocks the file needs.
En français
Nettoie une liste de contacts CSV : supprime les emails en double, rejette les emails invalides et les lignes cassées en expliquant chaque rejet, neutralise les formules dangereuses pour Excel (injection CSV) sans abîmer les numéros +33, conserve toutes vos colonnes et fournit des empreintes SHA-256. Séparateur , ; ou tabulation, encodage UTF-8 ou Windows-1252 détectés automatiquement. Tarif : 0,50 $ par tranche entamée de 1 000 lignes. Si votre coût maximum par exécution ne couvre pas tout le fichier, les premières lignes qui tiennent dans ce plafond sont nettoyées et seules celles-ci sont facturées ; cochez requireFullFile pour arrêter sans rien facturer.