Dataset Merge, Dedupe & Transform avatar

Dataset Merge, Dedupe & Transform

Under maintenance

Pricing

$0.50 / 1,000 row writtens

Go to Apify Store
Dataset Merge, Dedupe & Transform

Dataset Merge, Dedupe & Transform

Under maintenance

Merge several Apify datasets into one: remove duplicates by any field, filter rows, keep, drop or rename columns, flatten nested data and sort. $0.0005 per row written.

Pricing

$0.50 / 1,000 row writtens

Rating

0.0

(0)

Developer

ensorcelling _melilot

ensorcelling _melilot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Categories

Security

Limited permissions

Share

Combine several Apify datasets into one clean dataset. Remove duplicates by any field, filter rows, keep, drop or rename columns, flatten nested data and sort. No code, no scraping. It only reads datasets you already have.

Typical jobs:

  • Merge the results of many scraper runs into one list.
  • Remove duplicate leads, products or jobs by url, email or id, across runs.
  • Keep only rows that match rules (price < 20, country = DE, email exists).
  • Make a tidy table for a spreadsheet: pick columns, rename them, flatten address.city.

Why this one?

  • Simple price. $0.0005 per row written ($0.50 per 1,000). Rows you filter out or drop as duplicates are free.
  • Doesn't crash on big inputs. Datasets are read page by page, and duplicates are removed while streaming. Only sorting or "keep last duplicate" holds rows in memory.
  • Smart duplicate matching. Compare chosen fields (dot paths like company.id work), ignoring upper/lower case and extra spaces, or compare whole rows.
  • Clear errors. A typo in a filter operator or a bad dataset ID stops the run immediately with a plain message and no charge.

Input

FieldWhat it does
Datasets to mergeOne or more datasets, read in order
Raw rowsOptional JSON rows added after the datasets
Remove duplicates / Duplicate if these fields matchFields that identify a row; empty means whole-row comparison
Which duplicate to keepFirst (default) or last
Filter rules + Rows must passList of {field, operator, value}; all or any
Keep only / Drop / Rename fieldsChoose and rename columns
Flatten, trim, drop empty valuesTidy rows for spreadsheets
Sort by + orderNumbers sort as numbers, empty values last
Max rows to outputStop after N rows
Add _source columnWhich dataset each row came from

Filter operators: equals, notEquals, contains, notContains, startsWith, endsWith, greaterThan, lessThan, exists, notExists, matches (regular expression). Text comparisons ignore case.

Example

{
"datasetIds": ["<dataset id 1>", "<dataset id 2>"],
"dedupeBy": ["url"],
"filters": [{ "field": "price", "operator": "lessThan", "value": 20 }],
"keepFields": ["url", "name", "price"],
"sortBy": "price"
}

Output

One row per merged item in the run's dataset, plus a SUMMARY record with the number of rows read per dataset, filtered out, duplicates removed and written.

Limits and notes

  • You can only read datasets from your own Apify account.
  • Sorting and "keep last duplicate" support up to 1,000,000 rows per run.
  • Fields are matched exactly (Price and price are different columns). Nested fields use dots.
  • Only a field's value is compared for duplicates, not its type: 5 and "5" count as the same.