Skip to main content
pd uniq creates a transform pipe that reads from a source pipe and emits each record only once. Duplicates are detected by the parsed record, not by the raw JSON text.

TL;DR

How it works

pd uniq <name> --from <source> creates a new pipe <name> that reads everything from <source> and emits each unique record once. The new pipe starts running immediately; it’s a regular pipe you can pull, pause, or feed into a dest http.

What counts as a duplicate

Records are hashed after JSON parsing, so formatting differences are ignored. Object keys are sorted before hashing, and types are not coerced. These all hash the same — they’re one record, deduplicated:
These are different records (different keys, different types):
Flags:
FlagDefaultPurpose
--fromSource pipe to dedupe. Required on create.
--duplicatesfalseInvert: emit only the duplicates (one per group) instead of uniques.
--start-id0First record ID in the source to consider.

Common patterns

Dedupe then forward
Inspect duplicates only

See also