Your CRM says "St Josephs Med Ctr, 1 Main". Your vendor file says "Saint Joseph's Medical Center, 1 Main Street, Suite 200". A franchise list says "Store #4127". Are these the same real place? Exact string matching says no. Fuzzy matching says maybe. You want to know which business actually exists, and where.
Why string matching isn't enough
Names come in with abbreviations, initialisms, store numbers, old spellings and "Inc" or "LLC" added or dropped. Addresses come in partial, with suite numbers in different fields, or as the registered office instead of the storefront. Comparing two strings can't tell you whether a business by that name really trades at that address today.
The reliable approach is to resolve each record against evidence about the place itself: its own website, map listings, social profiles, registries.
Settle the name, then check the address
The VOYGR Enrich API has two checks for this. verify_name settles the business name before anything else is researched. verify_address checks whether the business is at the address you gave.
curl https://api.voygr.tech/v1/enrich \ --request POST \ --header "X-API-Key: $VOYGR_API_KEY" \ --header "Content-Type: application/json" \ --data '{ "poi_name": "St Josephs Med Ctr", "address": "1 Main St", "country": "US", "attributes": ["phone", "website"], "verify_name": true, "verify_address": true }' identity.name returns the name we settled on, a verdict and your original:
-
confirmed: yours was already right -
corrected: we replaced it, and every other attribute was researched against the corrected name -
unresolved: we couldn't establish it, and your value comes back untouched
Formatting doesn't count as a correction. Punctuation, casing, "and" vs "&" and a dropped "Inc" come back confirmed with your own string. Branch on the verdict instead of comparing strings.
address_checks.address returns confirmed_at_address, not_found_at_address or found_elsewhere with the found_address where the evidence places the business. We never overwrite your address; you decide whether to update it.
Both checks share one lookup, so together they cost one extra credit per record.
Does the place exist, and is it open?
For a straight yes/no on existence and operating status, POST /v1/validate returns existence_confidence and operational_status.status (open, closed, unknown, not_exists).
A whole file
Batch jobs take up to 10,000 records. The check_closed_stores example reads a CSV of businesses and adds open/closed status and a closure reason next to your original columns. You can start a matching pipeline from it.
Free key with 2.5K credits: api.voygr.tech/checkout.
