Merge Datasets & Remove Duplicates [$0.20/1K 💰] avatar

Merge Datasets & Remove Duplicates [$0.20/1K 💰]

Pricing

$0.20 / 1,000 unique row writtens

Go to Apify Store
Merge Datasets & Remove Duplicates [$0.20/1K 💰]

Merge Datasets & Remove Duplicates [$0.20/1K 💰]

💰 $0.20 per 1,000 unique rows; duplicates free, no start fee. Merge Apify datasets and remove duplicate rows by any fields (URL, name, phone, place ID) with smart matching that ignores case, spaces and URL variations. Cheaper than saliga's merge-dedupe ($0.50/1K). New rows only on schedules.

Pricing

$0.20 / 1,000 unique row writtens

Rating

0.0

(0)

Developer

CyberMax

CyberMax

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 hours ago

Last modified

Features

Limited permissions

Share

Rowmeld: Merge & Deduplicate Datasets (Remove Duplicates)

Combine the results of many runs into one clean list, with every duplicate gone

Rowmeld merges any number of Apify datasets and removes duplicate rows by the fields you choose: URL, name, phone, place ID, or the whole row. Smart matching treats https://www.acme.com/ and acme.com, ACME Inc and acme inc, or +1 (555) 010-2000 and 555.010.2000 as the same. It can fill blanks from duplicates (one copy has the phone, another the email), drop rows you already have, and on schedules return only rows it has never sent before. Duplicates are free; $0.20 per 1,000 unique rows.

▶ Try it now (run it empty for a free demo on sample data) · $0.0002 per unique row (10,000 rows = $2) · no start fee · Apify's free plan includes $5 of credit a month

Built for: anyone who runs the same scraper many times (Google Maps leads by city, product or job searches by keyword) and needs one de-duplicated list · lead-list builders who must not pay twice for the same company · data teams joining exports before loading them into a CRM, Sheet or database · AI agents chaining Actors

Real output (demo run on Apify, 10 Nov 2026: two sample lists, 6 rows, deduplicated by url with fill blanks on, 1.8 s):

nameurlcityphone
Blue Bottle Coffeehttps://bluebottlecoffee.com/Oakland+1 510-653-3394 (filled from the duplicate http://www.bluebottlecoffee.com)
Stumptown Coffeehttps://www.stumptowncoffee.comPortland+1 503-230-7702
Intelligentsiahttps://intelligentsia.comChicago+1 312-253-0594 (filled from https://www.intelligentsia.com/)
Counter Culturehttps://counterculturecoffee.com/Durham
{"datasetIds": ["DATASET_ID_1", "DATASET_ID_2"], "dedupeFields": ["url"]}

How to use it

  1. Datasets to merge: pick the datasets in the form (the results of your earlier runs), or pass their IDs through the API, e.g. a previous run's defaultDatasetId.
  2. Duplicate when these fields match: for example url, or name + address, or placeId. Nested fields use dots: location.city. Leave empty to remove only rows that are identical in every field.
  3. Run. The output dataset holds the unique rows; the run's OUTPUT record shows how many were read, removed, excluded and written.

Options

OptionWhat it does
smartMatching (on)Ignores case and extra spaces; normalises URLs (scheme, www., trailing slash) and phone numbers (digits only). Off = exact matching.
keepKeep the first copy (earliest dataset and row) or the last (newest).
fillBlanksCopy fields that are empty in the kept row from its duplicates.
excludeDatasetIdsDrop rows whose key appears in these datasets, e.g. leads you already contacted.
outputFieldsKeep only these fields (dots for nested fields).
addSourceDatasetAdds sourceDatasetId to each row.
keepItemsWithoutKeyRows whose dedupe fields are all empty can't be matched: keep (default) or drop them.
maxItemsCap on rows written.
monitor + monitorKeyRemember every row written; later runs write only new rows (up to 1,000,000 remembered rows per watchlist).

Ready-made inputs

JobInput
Merge Google Maps runs by place{"datasetIds": ["…", "…"], "dedupeFields": ["placeId"], "fillBlanks": true}
One lead list by website{"datasetIds": ["…", "…", "…"], "dedupeFields": ["website"]}
Only leads you don't have yet{"datasetIds": ["new-run"], "excludeDatasetIds": ["my-crm-export"], "dedupeFields": ["website"]}
Newest price per product{"datasetIds": ["monday", "tuesday"], "dedupeFields": ["url"], "keep": "last"}
Exact duplicates only{"datasetIds": ["…"]}

Run it on a schedule (only new rows)

Chain it after any scraper: in that scraper's Integrations, add "Run Actor" → cybermax/merge-dedupe-datasets with

{"datasetIds": ["{{resource.defaultDatasetId}}"], "dedupeFields": ["url"], "monitor": true, "monitorKey": "my-leads"}

Each run then passes on only rows you have never received before, and you pay only for those.

Integrations

  • API (curl):
    curl -X POST "https://api.apify.com/v2/acts/cybermax~merge-dedupe-datasets/run-sync-get-dataset-items?token=YOUR_TOKEN" \
    -H "Content-Type: application/json" -d '{"datasetIds": ["ID1", "ID2"], "dedupeFields": ["url"]}'
  • Python: ApifyClient(token).actor("cybermax/merge-dedupe-datasets").call(run_input={"datasetIds": [run1["defaultDatasetId"], run2["defaultDatasetId"]], "dedupeFields": ["url"]})
  • Make, Zapier, n8n: run it after your scrapers, then send the unique rows to Google Sheets, Airtable, HubSpot or your database.
  • AI agents (MCP): https://mcp.apify.com?actors=cybermax/merge-dedupe-datasets.

Why Rowmeld

RowmeldTypical dedupe Actor on the Store
Access to your datasetsUses Apify's dataset picker, so it works with today's limited-permission ActorsThe most-used free one fails about 65% of its runs (Store stats, 10 Nov 2026)
MatchingSmart: case, spaces, URL and phone variationsUsually exact text
Fill blanks from duplicatesYesRare
Exclude lists and new-rows-only runsYesRare
Price$0.20 per 1,000 unique rows; duplicates free$0.25–$2.50 per 1,000 rows on paid rivals (10 Nov 2026)

FAQ

How big can the datasets be? Millions of rows: rows stream through and only a short fingerprint of each key is kept (about 150 MB per million keys at the default 512 MB). "Fill blanks" keeps whole rows in memory, about 75,000 unique rows at 512 MB; give the run more memory for more.

Can it read datasets from another Apify account? Only datasets you can access. Pick them in the form or pass IDs from your own account.

Does it change my original datasets? No. It only reads them and writes a new dataset.

Is my data safe? Rowmeld reads the datasets you pick, writes the result to your own run, and sends nothing anywhere else.

Also from CyberMax

Found this useful? A quick rating helps others find it.

© 2026 CyberMax. All rights reserved.