Skip to content

exisllc/exisecho-api-samples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExisEcho API - Sample Code & Examples

Python Node.js License

Official sample code and examples for the ExisEcho API - a powerful fuzzy matching and duplicate detection service.

What is ExisEcho?

ExisEcho is a fuzzy logic deduplication system that finds similar but not identical records in your data. Unlike exact-match tools, ExisEcho uses advanced fuzzy matching algorithms to identify records with:

  • Typos and misspellings (Smith vs Smyth)
  • Abbreviations (Corporation vs Corp)
  • Name variations (Bob vs Robert)
  • Formatting differences (New York vs NYC)
  • Phonetic similarities (words that sound alike)

Website: https://www.fuzzy-logic.com

Getting Started

1. Get Your API Key

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

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

2. Choose Your Language

Available Examples

Example Description
example_basic Simple duplicate detection with a single field
example_advanced Multi-field matching with weighted columns
example_compare_datasets Compare two datasets to find matches
example_all_options Comprehensive demo of ALL column options

3. Make Your First API Call

Python:

import requests

response = requests.post(
    "https://www.fuzzy-logic.com/api/match",
    headers={"X-API-Key": "your-api-key"},
    json={
        "records": [
            {"id": "1", "fields": {"name": "John Smith"}},
            {"id": "2", "fields": {"name": "Jon Smyth"}},
            {"id": "3", "fields": {"name": "Jane Doe"}}
        ],
        "threshold": 0.7
    }
)

result = response.json()
print(f"Found {result['summary']['totalMatches']} duplicates!")

JavaScript:

const response = await fetch("https://www.fuzzy-logic.com/api/match", {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        "X-API-Key": "your-api-key"
    },
    body: JSON.stringify({
        records: [
            { id: "1", fields: { name: "John Smith" } },
            { id: "2", fields: { name: "Jon Smyth" } },
            { id: "3", fields: { name: "Jane Doe" } }
        ],
        threshold: 0.7
    })
});

const result = await response.json();
console.log(`Found ${result.summary.totalMatches} duplicates!`);

API Endpoints

Endpoint Method Description
/api/match POST Find duplicates within a single dataset
/api/compare POST Compare two datasets to find matches between them
/api/health GET Health check (no authentication required)

Key Features

  • Multiple Matching Algorithms - Levenshtein, Jaro-Winkler, and phonetic matching
  • Phonetic Matching - Match names that sound alike (Soundex, Metaphone)
  • Synonym Support - Treat equivalent terms as matches (Bob=Robert, Corp=Corporation)
  • Weighted Scoring - Assign importance to different columns
  • Preprocessing Options - Remove punctuation, honorifics, articles, and more
  • Fast Processing - Handle thousands of records efficiently

Column Options

Fine-tune matching behavior per column:

Option Type Default Description
weight number 1.0 Importance multiplier (0.1 to 10.0)
usePhoneticMatching boolean false Match words that sound alike
equateSynonyms boolean false Treat synonyms as equal (Bob=Robert)
equateAddressAbbreviations boolean false Replace address/city abbreviations (NYC=New York)
removeHonorifics boolean false Remove Mr., Mrs., Dr., etc.
removePunctuation boolean true Strip special characters
removeArticles boolean false Remove articles (a, an, the)
removeAllBlanks boolean false Remove all whitespace
removeDigits boolean false Remove numeric digits
removeNonDigits boolean false Keep only digits (for phone/ID matching)
ignoreCase boolean true Case-insensitive matching
ignoreWordOrder boolean false Match regardless of word order
matchingCharacters integer 0 Match first N characters only (0=all)
removeCustomWords array null List of custom words to remove

Request Options

Additional options for API requests:

Option Type Default Description
threshold number 0.7 Similarity threshold (0.0 to 1.0)
maxResults integer 100 Maximum matches to return
removeSubsetGroups boolean false Remove groups that are subsets of larger groups

See the full API documentation for all options.

Example Use Cases

Customer Deduplication

Find duplicate customer records in your CRM:

records = [
    {"id": "1", "fields": {"name": "Acme Corporation", "email": "info@acme.com"}},
    {"id": "2", "fields": {"name": "ACME Corp", "email": "info@acme.com"}},
    {"id": "3", "fields": {"name": "Acme Corp.", "email": "contact@acme.com"}}
]

Name Matching

Match names with variations:

column_options = {
    "name": {
        "usePhoneticMatching": True,  # John/Jon
        "equateSynonyms": True,       # Robert/Bob
        "removeHonorifics": True,     # Dr., Mr., Mrs.
        "ignoreWordOrder": True       # "Smith, John" = "John Smith"
    }
}

Address Matching

Match addresses with abbreviations:

column_options = {
    "address": {
        "equateSynonyms": True,              # Street/St, Avenue/Ave
        "equateAddressAbbreviations": True,  # NYC/New York, SF/San Francisco
        "removePunctuation": True,
        "ignoreCase": True
    }
}

City Matching

Match city names with common abbreviations:

column_options = {
    "city": {
        "equateAddressAbbreviations": True,  # NYC = New York, LA = Los Angeles
        "ignoreCase": True
    }
}

Pricing

  • 10,000 API calls - $25
  • 100,000 API calls - $99
  • 1,000,000 API calls - $499
  • Enterprise - Custom pricing

Each unit = 2 records processed. View pricing details

Support

License

This sample code is released under the MIT License.


ExisEcho is developed by Exis, LLC

About

ExisEcho API - sample fuzzy logic code & examples

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors