Skip to content

Latest commit

 

History

History

README.md

ExisEcho API - JavaScript Examples

JavaScript/Node.js client library and examples for the ExisEcho Fuzzy Matching API.

Requirements

  • Node.js 18+ (for native fetch support)
  • Or any modern browser

Quick Start

import { ExisEchoClient } from './exisecho.js';

// Initialize with your API key
const client = new ExisEchoClient("your-api-key");

// Find duplicates in your data
const records = [
    { id: "1", fields: { name: "John Smith" } },
    { id: "2", fields: { name: "Jon Smyth" } },
    { id: "3", fields: { name: "Jane Doe" } }
];

const result = await client.findDuplicates(records, { threshold: 0.7 });

console.log(`Found ${result.summary.totalMatches} duplicates`);
for (const match of result.matches) {
    console.log(`  ${match.record1Id} <-> ${match.record2Id}: ${(match.score * 100).toFixed(0)}%`);
}

Get Your API Key

Request a FREE test API key by emailing: exisllc@gmail.com

Or purchase at: https://www.fuzzy-logic.com/Purchase

Examples

File Description
example-basic.js Basic duplicate detection
example-compare-datasets.js Compare two datasets
example-advanced.js Advanced options with weighted columns

Running Examples

  1. Get your API key
  2. Update API_KEY in the example file
  3. Run: node example-basic.js

Client Reference

ExisEchoClient

const client = new ExisEchoClient(apiKey, baseUrl);

Methods

findDuplicates()

Find duplicates within a single dataset.

const result = await client.findDuplicates(records, {
    matchingColumns: ["name"],   // Optional: columns to match
    threshold: 0.7,              // Similarity threshold
    maxResults: 100,             // Max matches to return
    columnOptions: { ... }       // Per-column options
});

compareDatasets()

Compare two datasets to find matches between them.

const result = await client.compareDatasets(sourceRecords, targetRecords, {
    matchingColumns: ["company"],
    threshold: 0.7,
    maxResults: 100,
    columnOptions: { ... }
});

Preset Options

Get recommended options for common use cases:

// For matching names
const nameOpts = ExisEchoClient.nameMatchingOptions();

// For matching addresses
const addrOpts = ExisEchoClient.addressMatchingOptions();

// For matching phone numbers
const phoneOpts = ExisEchoClient.phoneMatchingOptions();

// For matching emails
const emailOpts = ExisEchoClient.emailMatchingOptions();

Browser Usage

The client works in browsers with native fetch support:

<script type="module">
import { ExisEchoClient } from './exisecho.js';

const client = new ExisEchoClient("your-api-key");
// ... use client
</script>

Column Options

Option Type Description
weight number Importance multiplier (0.1 to 10.0)
usePhoneticMatching boolean Match words that sound alike
equateSynonyms boolean Treat synonyms as equal
removeHonorifics boolean Remove Mr., Mrs., Dr., etc.
removePunctuation boolean Strip special characters
ignoreCase boolean Case-insensitive matching
ignoreWordOrder boolean Match regardless of word order
removeNonDigits boolean Keep only digits

Support