ForHosting KIT · Developer Utilities

NYSIIS encoder

Bishop becomes BASAP in NYSIIS, a phonetic code that gives names spelled differently but pronounced alike the same key. Type a personal or family name to get its code and the cleaned letters it was built from. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Name
Bishop
You get
Code
BASAP
Normalized
BISHOP
Length
6

NYSIIS—the New York State Identification and Intelligence System phonetic code—was designed in 1970 to index personal and family names with higher match accuracy than classic American Soundex. It keeps an alphabetic key that preserves more of the original spelling shape while still folding vowels and common consonant groups so homophones and near-homophones land on the same code. This nysiis encoder accepts a non-empty name string, strips non-letters, applies the standard prefix and suffix translations, scans the remaining letters with the official collapse rules, and returns the resulting code together with the normalized letter form used for coding.

How NYSIIS builds a phonetic key from a name

NYSIIS starts by uppercasing the name and keeping only Latin letters A through Z; digits, spaces, hyphens, apostrophes, and punctuation are stripped so a form field with O'Brien or brown, sr still yields a stable letter stream after cleaning. Suffix rules rewrite the end: EE or IE becomes Y, and DT, RT, RD, NT, or ND becomes D. The first letter of that transformed string is kept as the first character of the key.

From the second letter onward the scan applies one rule at a time: EV becomes AF; any other vowel becomes A; Q becomes G; Z becomes S; M becomes N; KN becomes N and other K becomes C; SCH becomes SSS and PH becomes FF; H is replaced by the previous letter when either neighbor is not a vowel; W after a vowel is replaced by that previous letter. Adjacent identical letters are collapsed so runs never repeat.

After the scan finishes, trailing S is removed, a trailing AY pair becomes Y, and a trailing A is removed.

What to enter and the mistakes to avoid

On success the response includes code (the NYSIIS alphabetic value), method equal to nysiis so downstream routers can branch without sniffing shapes, name echoing the original string, normalized with the uppercase A–Z sequence actually coded, empty always false on success, and length equal to the original character count before stripping. Do not treat NYSIIS as encryption or as a unique person identifier: many unrelated surnames can still collide, and that controlled collision is the feature for fuzzy match, not a bug.

Prefer this landing when search intent is nysiis encoder, New York State phonetic code, or name matching beyond Soundex; American Soundex, NATO phonetic spelling, and Metaphone answer different intents and stay on separate pages. Accented letters outside pure A–Z are stripped with other non-letters, so feed an ASCII-normalized form if your source data uses diacritics and you need those letters to participate. This implementation returns the full code after trailing cleanup rather than forcing a six-character truncate, so longer surnames keep the extra detail NYSIIS was designed to retain.

Where NYSIIS name matching helps

Genealogists and local-history projects use a nysiis encoder to group census, court, and passenger-list surnames that were recorded with inconsistent spelling while retaining more shape than a four-character Soundex bucket. CRM and customer-support tooling can pre-cluster look-alike last names before a human review step without standing up a full entity-resolution engine. Classroom demos of historical indexing algorithms need a deterministic oracle students can call from a browser while the teacher walks through prefix and vowel rules on the board.

Data-cleaning notebooks can emit NYSIIS as one feature column next to lowercase and Soundex columns when building entity-resolution features for record linkage. Pair with other text utilities only when a later step needs a different phonetic or cipher scheme; keep NYSIIS on its own landing so SEO intent stays sharp and the guide remains honest about what the alphabetic code can and cannot do compared with Soundex.

Genealogy and court-record surname grouping

Cluster family names that sound alike but were spelled differently in historical New York and U.S. records by comparing full NYSIIS codes.

CRM and fuzzy name pre-match

Bucket look-alike customer last names for human review with more detail than Soundex without installing a full entity-resolution stack.

How do I encode a name with NYSIIS?

The response code field holds the NYSIIS value (BASAP for Bishop).

How is NYSIIS different from Soundex?

Soundex returns one letter plus three digits. NYSIIS returns an alphabetic key with prefix, suffix, and vowel rules that keep more spelling detail for name matching.

Is the NYSIIS encoder free?

The browser tool runs free on your device.

Is the result truncated to six characters?

This tool returns the full code after trailing S, AY, and A cleanup. The historical six-character limit is not forced so longer names keep extra detail.

Can two different names get the same NYSIIS code?

Yes, and that is the point. Many unrelated surnames share a code, which is what makes fuzzy name matching work. So never treat the code as a unique person identifier or as a way to hide a name.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/enc/nysiis

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/enc/nysiis \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Bishop"}'
{
  "name": "Bishop"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.nysiis",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Empty input, a missing name field, or a string with no Latin letters fails with invalid_input so callers can flag blank forms instead of inventing a code. The free browser path and the prepaid API share the same pure parse logic, so classroom demos and production name-matching pipelines never disagree on Bishop, Willis, or Mackenzie.

How NYSIIS builds a phonetic key from a name

Prefix rules rewrite the start of the name: MAC becomes MCC, KN becomes NN, a leading K becomes C, PH or PF becomes FF, and SCH becomes SSS. Because the path is pure character arithmetic with no network and no clock, identical names always yield identical JSON for continuous-integration goldens.

Input contract, empty flags, response shape, and common mistakes

POST a JSON body with the required string field name set to the person or family name you want to encode. Aliases text, input, value, and s are accepted when clients reuse older form names or shared text widgets. Missing name, a non-string value, a zero-length string, whitespace-only text, or a string that contains no Latin letters at all all raise invalid_input and are not billed on the prepaid API—this is the empty-input flag path the product promises, expressed as a hard validation error rather than a success body with a blank code.

Where a NYSIIS API earns its keep and how pricing works

Call the free in-browser tool for one-off checks and teaching; use the prepaid KIT API when a backend, serverless function, or SDK needs a stable contract under balance at $0.002 per successful item. Validation failures never consume balance after the engine rejects the request. Keep payloads to ordinary name lengths appropriate for a Worker isolate item call—this tool is for names and short labels, not multi-megabyte documents.

Classroom phonetic-index demos

Show students that Bishop becomes BASAP and empty forms fail cleanly, using the same free browser path as the prepaid API.

What happens if the name is empty?

The request fails with invalid_input. Missing, blank, or letter-less input is flagged as empty and is not charged on the prepaid API.

Read the full KIT documentation →