
Scraped Data Cleaner & Converter (No-Code CSV/JSON Tool) Rental
Pricing
$2.90/month + usage

Scraped Data Cleaner & Converter (No-Code CSV/JSON Tool) Rental
Clean and organize scraped .json or .csv data — no coding required. Remove duplicates, empty rows, unwanted columns, and sort by any field. Cleaned results are pushed to your Apify dataset. Perfect for marketers, researchers, and no-code workflows.
0.0 (0)
Pricing
$2.90/month + usage
1
Total users
1
Monthly users
1
Runs succeeded
>99%
Last modified
4 days ago
🧹 Scraped Data Cleaner & Converter (No-Code CSV/JSON Tool)
Clean and filter scraped datasets from .json
or .csv
files — no coding required.
This Actor helps you transform messy data into clean, analysis-ready results. Whether you're working with leads, profiles, product listings, or survey results, it removes the noise and gives you back structured rows that actually matter.
✅ Features
- Accepts both
.csv
and.json
files (uploaded directly or linked from Apify Key-Value Store) - Removes duplicate rows based on a field you choose (e.g.
email
,sku
) - Discards rows missing required data
- Choose whether all required fields must be filled or just one
- Optionally remove rows with no meaningful values
- Filter rows that match a specific field-value pair (e.g.
status = active
) - Delete unwanted fields (columns in CSV / keys in JSON)
- Sort rows by one or more fields (text, number, date supported)
- Pushes cleaned results to the Apify dataset for flexible exporting
🧾 How to Use
The Actor provides a clean no-code interface. Just upload a file and select any combination of cleaning options.
1.1 📁 Uploaded Data File
Upload a .csv
or .json
file manually — or enter a full Apify Key-Value Store URL pointing to one.
When uploading directly, you'll see a window titled “Upload file to key-value store” with these options:
- ✅ New temporary storage (recommended) — creates short-lived storage with no additional cost
- 🗂️ New permanent storage — for keeping the file long-term
- 📁 Existing storage — reuse an existing Apify KV store
If you’re cleaning a one-off dataset, just use the default temporary option. It’s lightweight, instant, and cost-free.
1.2 🧠 Deduplicate By Field
Specify a field name (e.g. email
, id
) to remove duplicate rows. Only the first occurrence of each unique value is kept.
1.3 🧹 Remove Empty Rows
Enable to discard rows where all fields are blank, null, or empty strings. Works for both JSON and CSV rows.
2.1.1 🔎 Must-Have Fields
List field names (e.g. email
, profile
, company
) that should contain data. Rows missing those fields will be removed.
2.1.2 🔎 Match All Required Fields
Enable for strict filtering: only rows with all listed fields filled will be kept.
Disable to allow rows with any one field filled.
2.2.1 🎯 Filter by Field
Specify a field name (e.g. members
) to match against a specific value.
2.2.2 🎯 Match Specific Value
Enter the exact value the field should contain (e.g. pro
). Only rows with that exact match will be kept.
3.1 🪓 Remove Columns (optional)
List column names you want deleted from every row (status
, id
, etc.). Applies to both CSV and JSON files.
4.1 📌 Sort By Fields
Enter a list of field names to sort by, in order of priority (status
, createdAt
, email
, etc.).
4.2 🔄 Sort Descending
Enable to reverse the sort direction (Z–A, latest-to-earliest, etc.).
📁 Output
Cleaned rows are pushed to your Apify dataset.
You can export in any format — CSV, JSON, Excel, HTML Table, RSS, JSONL, and more — from the Actor run page or via API.
🧠 What’s It Good For?
Let’s say you scraped a bunch of data — like contacts, products, survey answers, whatever. This tool helps clean it up and make it actually usable.
You can:
- Get rid of duplicate entries, like the same email showing up twice
- Filter out rows that are missing stuff you care about — like empty emails or profiles
- Keep only the ones with specific values (like people who have
status: active
ormembers: pro
) - Delete random columns you don’t need, like
internalNotes
ordebugInfo
- Sort everything — by date, group, name, whatever you want
- Convert between
.json
and.csv
so you can open the file wherever - Basically, take any messy scraped file and make it clean, neat, and ready to use
It’s like having a smart assistant that tidies your data for you without writing a single line of code.
🛠 No Coding Required
You don’t need any JavaScript, parsing logic, or scripting knowledge. Just upload your file, tweak a few inputs, and go.
Ideal for:
- Marketers analyzing scraped leads
- Researchers organizing field data
- Journalists working with tabular records
- Data-driven workflows powered by no-code integrations
🧪 Sample Pre-Filled Input
To try it instantly, use the example CSV file provided in the interface or paste this Apify URL:
https://api.apify.com/v2/key-value-stores/9oIROyE5tcs83ZqP5/records/data-example.csv
📊 Input vs Output Examples
📄 Original CSV
group | name | status | members | ||
---|---|---|---|---|---|
3 | Bob | bob@example.com | active | basic | |
1 | Eve | eve@example.com | active | pro | |
1 | Charlie | https://linkedin.com/in/charlie | inactive | ||
2 | Dana | pending | guest | ||
1 | Eve | eve@example.com | active | pro | |
1 | Alice | alice@example.com | https://linkedin.com/in/alice | active | pro |
1.2 🧠 Deduplicate By Field: email
Duplicate row for eve@example.com
is removed.
group | name | status | members | ||
---|---|---|---|---|---|
3 | Bob | bob@example.com | active | basic | |
1 | Eve | eve@example.com | active | pro | |
1 | Charlie | https://linkedin.com/in/charlie | inactive | ||
2 | Dana | pending | guest | ||
1 | Alice | alice@example.com | https://linkedin.com/in/alice | active | pro |
1.3 🧹 Remove Empty Rows
Removes the row with no values (between Charlie and Dana).
group | name | status | members | ||
---|---|---|---|---|---|
3 | Bob | bob@example.com | active | basic | |
1 | Eve | eve@example.com | active | pro | |
1 | Charlie | https://linkedin.com/in/charlie | inactive | ||
2 | Dana | pending | guest | ||
1 | Alice | alice@example.com | https://linkedin.com/in/alice | active | pro |
2.1.1 🔎 Required Fields: email
, linkedin
2.1.2 🔎 Match All Required Fields: 🔘 OFF — keeps rows with at least one of the fields filled
group | name | status | members | ||
---|---|---|---|---|---|
3 | Bob | bob@example.com | active | basic | |
1 | Eve | eve@example.com | active | pro | |
1 | Charlie | https://linkedin.com/in/charlie | inactive | ||
1 | Alice | alice@example.com | https://linkedin.com/in/alice | active | pro |
2.1.1 🔎 Required Fields: email
, linkedin
2.1.2 🔎 Match All Required Fields: 🟢 ON — keeps only rows with both fields filled
group | name | status | members | ||
---|---|---|---|---|---|
1 | Alice | alice@example.com | https://linkedin.com/in/alice | active | pro |
2.2.1 🎯 Filter by Field: members
2.2.2 🎯 Match Specific Value: pro
Keeps only rows where the members
field is exactly pro
.
group | name | status | members | ||
---|---|---|---|---|---|
1 | Eve | eve@example.com | active | pro | |
1 | Alice | alice@example.com | https://linkedin.com/in/alice | active | pro |
3.1 🪓 Remove Columns: linkedin
, status
Removes those columns from all rows.
group | name | members | |
---|---|---|---|
3 | Bob | bob@example.com | basic |
1 | Eve | eve@example.com | pro |
1 | Charlie | ||
2 | Dana | guest | |
1 | Alice | alice@example.com | pro |
4.1 📌 Sort By Fields: group
, then name
4.2 🔄 Sort Descending: 🔘 OFF — lowest group first, A–Z within group
group | name | status | members | ||
---|---|---|---|---|---|
1 | Alice | alice@example.com | https://linkedin.com/in/alice | active | pro |
1 | Charlie | https://linkedin.com/in/charlie | inactive | ||
1 | Eve | eve@example.com | active | pro | |
2 | Dana | pending | guest | ||
3 | Bob | bob@example.com | active | basic |
4.1 📌 Sort By Fields: group
, then name
4.2 🔄 Sort Descending: 🟢 ON — highest group first, Z–A within group
group | name | status | members | ||
---|---|---|---|---|---|
3 | Bob | bob@example.com | active | basic | |
2 | Dana | pending | guest | ||
1 | Eve | eve@example.com | active | pro | |
1 | Charlie | https://linkedin.com/in/charlie | inactive | ||
1 | Alice | alice@example.com | https://linkedin.com/in/alice | active | pro |
⚖️ Pay Per Event (PPE) vs Rental – Which Version Should You Use?
Feature | 🟢 PPE Version | 🔵 Rental Version |
---|---|---|
Pricing Model | Pay Per Event | Monthly Subscription |
Cost | $0.03 per run | $2.90/month |
Usage Charges | ✅ No compute/storage fees | ⚠️ Usage billed separately (CU, dataset) |
Free Trial | ❌ None | ✅ 7 days free |
Output Storage | Key-Value Store (CSV + JSON) | Dataset Export |
If you clean data occasionally and want zero billing surprises, use the PPE version — simple, predictable pricing.
If you run this frequently (e.g. 100+ runs/month), the Rental version offers better long-term value, and includes a 7-day free trial.
💬 Feedback & Ideas
Want new filtering modes, regex support, or nested data handling?
Have ideas to make it even simpler for non-coders? Just send me a message — I’d love to hear how you're using the tool.
On this page
-
🧹 Scraped Data Cleaner & Converter (No-Code CSV/JSON Tool)
-
- 📄 Original CSV
- 1.2 🧠 Deduplicate By Field:
email
- 1.3 🧹 Remove Empty Rows
- 2.1.1 🔎 Required Fields:
email
,linkedin
- 2.1.1 🔎 Required Fields:
email
,linkedin
- 2.2.1 🎯 Filter by Field:
members
- 3.1 🪓 Remove Columns:
linkedin
,status
- 4.1 📌 Sort By Fields:
group
, thenname
- 4.1 📌 Sort By Fields:
group
, thenname
-
⚖️ Pay Per Event (PPE) vs Rental – Which Version Should You Use?
Share Actor: