Every project eventually inherits the same spreadsheet: emails in three different cases, phone numbers formatted six ways, names like "DOE, john michael", and the same customer entered twice. Cleaning it by hand, or with a pile of regexes you don't quite trust, is nobody's favorite afternoon.

RecordScrub is a small API we built at DSP to do that job in one call. It's live on RapidAPI now, with a free tier.

What it does

  • Email validation & normalization, single or batch, with valid/invalid stats and a plain-language reason for every rejection
  • Phone normalization to E.164, powered by Google's libphonenumber, so (312) 555-0142 becomes +13125550142
  • Name normalization, "DOE, john michael" → John Michael Doe, with first/last split out
  • US address normalization, state codes, ZIP+4, standardized street suffixes
  • Batch record cleaning, send CSV-style records, get snake_case keys, per-field cleaning, and exact dedupe on the fields you choose, with a duplicate report showing what was dropped and why

Every dropped or altered value comes back with a _warnings explanation. No silent data loss.

A taste

curl -X POST https://record-scrub.p.rapidapi.com/v1/normalize/phone \ -H "X-RapidAPI-Key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"phone": "(312) 555-0142"}' 
{"original": "(312) 555-0142", "normalized": "+13125550142", "valid": true, "country_code": 1, "national_format": "(312) 555-0142"} 

And the batch cleaner, deduplicating on email + phone:

{"records": [{"name": "John Doe", "email": "john@example.com", "phone": "+13125550142"}], "stats": {"received": 2, "returned": 1, "duplicates_removed": 1}, "duplicates": [{"index": 1, "duplicate_of": 0, "record": { "...": "..." }}]} 

How it's built

FastAPI, completely stateless. Requests are processed in transit and nothing is stored, so there's no database to leak from. It runs on a free-tier host, so the first call after a quiet spell can take a few extra seconds while it wakes up; after that it's fast.

Pricing

Every endpoint is available on every plan, including the free tier. No feature gates, no Pro-only cleaners, no endpoint held back to force an upgrade. Upgrading simply gets you more requests per month: start free with 100 requests a month, move up to Pro at $10/month for 5,000, and scale from there if your batch volume grows. You pay for volume, not for access.

Try it: https://rapidapi.com/darksundarker/api/record-scrub

Feedback very welcome, especially the "I wish it also cleaned X" kind. That's how the v2 list gets written.