VOOZH about

URL: https://apify.com/parsebird/dataset-deduplicator

โ‡ฑ Data Deduplicator โ€” Merge & Deduplicate Apify Datasets ยท Apify


Pricing

from $1.49 / 1,000 items processeds

Go to Apify Store

Merge and deduplicate Apify datasets by any field combination. Remove duplicate rows while keeping the first or last occurrence. Supports case-insensitive matching and whitespace trimming.

Pricing

from $1.49 / 1,000 items processeds

Rating

0.0

(0)

Developer

๐Ÿ‘ ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

4

Total users

2

Monthly active users

19 days ago

Last modified

Share

Data Deduplicator

Merge and deduplicate Apify datasets by any field combination. Remove duplicate rows automatically with case-insensitive matching and whitespace trimming built in.

Combine multiple Apify datasets and remove duplicates by URL, email, name + company, or any field combination. Case-insensitive matching and whitespace trimming built in.

ParseBird Infra Suite   โ€ข  Utility tools for data pipelines
๐Ÿ”—  HTTP Request
Send API calls from the cloud
๐Ÿ“š  Data Deduplicator
โžค You are here
๐Ÿ—ก  Data Cleaner
Clean nulls, normalize case, format phones & emails

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

parsebird/dataset-deduplicator on Apify. Call:ApifyClient("TOKEN").actor("parsebird/dataset-deduplicator").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for deduplicated results. Key inputs:datasetIds(array of strings โ€” Apify dataset IDs to merge),jsonData(array of objects โ€” direct JSON input, alternative to datasetIds),fields(array of strings, required โ€” field names for dedup key). Matching is case-insensitive with whitespace trimming. First occurrence is kept. Full actor spec: fetch build via GEThttps://api.apify.com/v2/acts/parsebird~dataset-deduplicator(Bearer TOKEN). Get token: https://console.apify.com/account/integrations

What does Data Deduplicator do?

This Actor merges one or more Apify datasets and removes duplicate rows based on fields you specify. It's the fastest way to clean up scraped data before analysis or export.

  • Single-field dedup โ€” deduplicate by url, email, phone, or any single field
  • Composite key dedup โ€” combine multiple fields like firstName + lastName + company to identify unique records
  • Smart matching โ€” case-insensitive comparison with automatic whitespace trimming
  • Multi-dataset merge โ€” combine items from multiple dataset IDs before deduplication
  • Direct JSON input โ€” pass data directly as a JSON array instead of referencing datasets

How to use it (6 steps)

  1. Run your scraper(s) โ€” collect data into one or more Apify datasets
  2. Copy the dataset ID(s) โ€” find them in the Apify Console under your run's Storage tab
  3. Choose your dedup fields โ€” pick the field(s) that uniquely identify each record
  4. Run this Actor โ€” pass the dataset IDs and field names as input
  5. Get clean data โ€” deduplicated items appear in the output dataset

Input parameters

ParameterTypeRequiredDefaultDescription
datasetIdsstring[]No*โ€”Apify dataset IDs to merge and deduplicate
jsonDataarrayNo*โ€”Direct JSON array of objects to deduplicate
fieldsstring[]Yesโ€”Field names for the dedup key

*Provide either datasetIds or jsonData (or both).

Composite key examples

Use caseFieldsEffect
Unique URLs["url"]One row per URL
Unique emails["email"]One row per email address
Unique people["firstName", "lastName", "company"]One row per person at each company
Unique products["sku", "marketplace"]One row per SKU per marketplace

Output example

Deduplicated items retain their original structure โ€” no fields are added or removed:

[
{"name":"John Doe","email":"john@example.com","company":"Acme"},
{"name":"Jane Smith","email":"jane@example.com","company":"Beta"},
{"name":"Bob Wilson","email":"bob@example.com","company":"Gamma"}
]

A stats key is stored in the key-value store:

{
"totalLoaded":5000,
"uniqueKept":3200,
"duplicatesRemoved":1800,
"datasetsProcessed":3
}

How to use via API

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("parsebird/dataset-deduplicator").call(run_input={
"datasetIds":["DATASET_ID_1","DATASET_ID_2"],
"fields":["email"],
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Unique items: {len(items)}")

Node.js

import{ ApifyClient }from'apify-client';
const client =newApifyClient({token:'YOUR_API_TOKEN'});
const run =await client.actor('parsebird/dataset-deduplicator').call({
datasetIds:['DATASET_ID_1','DATASET_ID_2'],
fields:['firstName','lastName','company'],
});
const{ items }=await client.dataset(run.defaultDatasetId).listItems();
console.log(`Unique items: ${items.length}`);

cURL

curl-X POST "https://api.apify.com/v2/acts/parsebird~dataset-deduplicator/runs?token=YOUR_API_TOKEN"\
-H"Content-Type: application/json"\
-d'{
"datasetIds": ["DATASET_ID_1"],
"fields": ["url"]
}'

Tips and best practices

  • Start with a single field โ€” url or email usually covers most use cases
  • Use composite keys carefully โ€” the more fields, the stricter the matching (fewer duplicates found)
  • Matching is always case-insensitive with whitespace trimming โ€” no configuration needed

Pricing

This Actor uses a pay-per-event pricing model.

EventPrice per eventPrice per 1,000
items-processed$0.00149$1.49

Charged per 1,000 items loaded (not per unique item). Platform compute costs are additional.

You might also like

Dataset Deduplicator

automation-lab/dataset-dedup

Merge and deduplicate Apify datasets by any field combination. Remove duplicates, keep first or last occurrence. Case-insensitive matching, whitespace trimming. Pay per 1K items processed.

๐Ÿ‘ User avatar

Stas Persiianenko

23

CSV Diff Tool

automation-lab/csv-diff-tool

Compare two CSV datasets and find added, removed, and modified rows. Supports key-column matching, configurable delimiters, case-insensitive comparison, and whitespace trimming. Exports a structured change report with before/after values.

๐Ÿ‘ User avatar

Stas Persiianenko

5

Deduplicate, Merge & Transform Datasets

datacach/deduplicate-datasets

Merge multiple datasets, deduplicate items by a combination of fields, and apply custom transforms โ€” powered by Polars.

Data Cleaner

parsebird/data-cleaner

Clean messy data โ€” remove nulls, normalize case, trim whitespace, format phone numbers and emails, extract domains, convert types, and more. Works with Apify datasets or direct JSON input.

๐Ÿงผ Scraped Data CSV Cleaner

taroyamada/csv-data-cleaner

Polish raw outputs from Google Maps and Instagram profile scrapers. Merge duplicate contacts, clear empty spreadsheet rows, and sort email lists automatically.

Glassdoor Jobs | Remove Duplicate Jobs | Cheapest

cheap_scraper/glassdoor-jobs-scraper-remove-duplicate-jobs

Glassdoor Jobs | Remove Duplicate Jobs | Cheapest The Glassdoor jobs scraper allows you to collect jobs By entering multiple keywords, search queries.

655

LinkedIn Jobs Scraper | Remove Duplicate Jobs | Pay Per Result

cheap_scraper/linkedin-job-scraper

LinkedIn Jobs Scraper | Remove Duplicate Jobs. The LinkedIn jobs scraper allows you to collect jobs in 2 ways: By providing one or more start URLs, or By entering multiple keywords, search queries. You can use either method individually or combine both.

8.2K

4.5