Skip to content

Latest commit

 

History

History

README.md

ExisEcho API - Python Examples

Python client library and examples for the ExisEcho Fuzzy Matching API.

Installation

pip install requests

Or install all dependencies:

pip install -r requirements.txt

Quick Start

from exisecho import ExisEchoClient

# Initialize with your API key
client = ExisEchoClient("your-api-key")

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

result = client.find_duplicates(records, threshold=0.7)

print(f"Found {result['summary']['totalMatches']} duplicates")
for match in result["matches"]:
    print(f"  {match['record1Id']} <-> {match['record2Id']}: {match['score']:.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.py Basic duplicate detection
example_compare_datasets.py Compare two datasets
example_advanced.py Advanced options with weighted columns

Running Examples

  1. Get your API key
  2. Update API_KEY in the example file
  3. Run: python example_basic.py

Client Reference

ExisEchoClient

client = ExisEchoClient(api_key, base_url=None)

Methods

find_duplicates()

Find duplicates within a single dataset.

result = client.find_duplicates(
    records,                    # List of records
    matching_columns=None,      # Columns to match (optional)
    threshold=0.7,              # Similarity threshold
    max_results=100,            # Max matches to return
    column_options=None         # Per-column options
)

compare_datasets()

Compare two datasets to find matches between them.

result = client.compare_datasets(
    source_records,             # First dataset
    target_records,             # Second dataset
    matching_columns=None,      # Columns to match
    threshold=0.7,              # Similarity threshold
    max_results=100,            # Max matches to return
    column_options=None         # Per-column options
)

Preset Options

Get recommended options for common use cases:

# For matching names
name_opts = ExisEchoClient.name_matching_options()

# For matching addresses
addr_opts = ExisEchoClient.address_matching_options()

# For matching phone numbers
phone_opts = ExisEchoClient.phone_matching_options()

# For matching emails
email_opts = ExisEchoClient.email_matching_options()

Column Options

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

Support