{"uid":"cap_EhxqOeUAz8E-XWm7pgNrp","slug":"nero-labs-list-merge-deduplicate-5119e93e","name":"Nero Labs List Merge & Deduplicate","description":"Pay-per-call tools for AI agents, 31 in all: read web pages and RSS feeds, OCR, PDF text, transcription; email, phone and domain checks; UK, Irish and Polish company lookups and UK risk reports; website contacts, tech stack and SEO audits; PageSpeed; AI review, job post and row enrichment; data cleaning, joins, dedupe and diffs; US and EU compliance rules. No account or API key: pay each call in USDC on Base over x402.","url":"https://x402-agent-tools.nerolabs.workers.dev/data/merge-dedupe?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"lists":{"type":"array","items":{"type":"object"},"description":"Two or more lists to merge, each {\"name\":\"Google Maps\",\"rows\":[{...},{...}]}. Every row is a JSON object. The name is returned on each row as the list it came from."},"dedupKeys":{"type":"array","items":{"type":"string"},"description":"Fields that identify the same record, for example [\"phone\"] or [\"website\"]. Leave out to compare whole rows."},"dedupMode":{"enum":["exact","normalized","fuzzy","none"],"type":"string","description":"normalized (default) ignores case, spaces, punctuation and http/www, so \"0117 496 0012\" matches \"01174960012\". fuzzy also catches near matches (100 rows at most). none only merges, no dedupe."},"keepStrategy":{"enum":["most_complete","first","last"],"type":"string","description":"Which duplicate to keep: most_complete (default, the row with the most filled fields), first or last."},"similarityThreshold":{"type":"number","description":"fuzzy only, 0.5 to 1. Default 0.9."},"fillBlanksFromDuplicates":{"type":"boolean","description":"Default true: copy values the kept row is missing from the duplicates it replaced."}}},"responseSchema":{"type":"json","example":{"rows":[{"name":"ACME PLUMBING","phone":"01174960012","_source":"CRM","website":"https://www.acme.co.uk/","_foundInSources":["Google Maps","CRM"],"_duplicatesMerged":1}],"summary":{"lists":2,"rowsIn":2,"rowsOut":1,"modeUsed":"normalized","blanksFilled":0,"duplicatesRemoved":1},"warnings":[],"_example_note":"Real output, trimmed: long lists cut to their first items and long text shortened."}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_HrEBGN9l2IezLgXCNhI2T","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Merges two or more JSON row lists and removes duplicate records by a chosen key (phone, email, website), keeping the most complete row and filling blanks from duplicates.","exampleAgentPrompt":"Merge these three lead lists — Google Maps results, my CRM export, and a spreadsheet — into one unified list, deduplicate by phone number using normalized matching so spacing differences don't matter, keep the most complete record for each business, and fill any blanks from the duplicates.","exampleUseCases":[{"title":"CRM and scraped leads consolidation","prompt":"I've got leads from Google Maps and my CRM export — can you merge them into one list, deduplicate by website URL using normalized matching, and tell me which sources each business appeared in?"},{"title":"Fuzzy phone deduplication across imports","prompt":"Merge these two contact lists and deduplicate by phone number using fuzzy matching with a 0.85 similarity threshold — I want to catch near-identical numbers and keep the row with the most filled-in fields."},{"title":"Three-way spreadsheet merge for sales team","prompt":"Combine my three spreadsheet exports into one clean list, deduplicate records by email address, fill in any blank fields from the duplicate rows, and label each record with which of the three original lists it came from."}],"resultDescription":"A JSON object containing a 'rows' array of merged, deduplicated records — each row annotated with '_source' (the primary list name), '_foundInSources' (all lists the record appeared in), and '_duplicatesMerged' (count of duplicates collapsed). Also includes a 'summary' object with counts of lists processed, rows in, rows out, mode used, blanks filled, and duplicates removed, plus a 'warnings' array for any issues encountered.","failureModes":["Fewer than two lists provided — returns an error requiring at least two input lists","Total rows exceed 500 — returns an error about the row limit","dedupKeys references fields not present in the row data — no deduplication matches occur","fuzzy mode used with more than 100 rows — returns an error or warning about the 100-row fuzzy limit","Malformed JSON rows — parsing error returned","similarityThreshold out of 0.5–1.0 range — validation error"],"whenToPreferThis":"Choose this endpoint when you need to combine multiple structured JSON row lists from different sources (CRM, scraped data, spreadsheets) into a single canonical list and remove overlapping records by a specific key field. It is especially valuable when phone or website formatting differences would fool exact matching, or when you want to enrich records by filling blanks from duplicate rows. Prefer it over generic dedup tools when you need source attribution per record and a summary of what was merged. Not suitable for more than 500 total rows or for unstructured/non-JSON data.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-22T12:41:27.637Z","isFirstParty":false,"canonicalSlug":"nero-labs-list-merge-deduplicate-5119e93e"}