ForHosting KIT · Text & AI

English word pluralizer

Get the correct English plural of a noun and the rule behind it: child becomes children, city becomes cities and box becomes boxes. Irregular forms are checked before the regular endings, so mouse never turns into mouses. 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
Word
child
You get
Normalized
child
Plural
children
Rule
irregular

Turning a singular English noun into a correct plural is a small task that still trips up code generators, CMS labels, database naming helpers, and localization pipelines. Regular rules (add s, add es, y becomes ies) cover many words, but irregular forms such as child to children, mouse to mice, and person to people need an explicit table. This English word pluralizer accepts a single noun or identifier-style token, applies irregular dictionary entries first, then a fixed cascade of suffix rules, and returns the plural with the rule name that fired.

How English plurals are chosen: irregular table then regular suffixes

English plurals are not one mechanical suffix. Many high-frequency nouns change stem entirely: child becomes children, goose becomes geese, tooth becomes teeth, and person becomes people. Other nouns keep the same form in singular and plural, including sheep, deer, fish, series, and species.

Still others take Latin or Greek endings still common in technical English—index to indices, matrix to matrices, criterion to criteria, bacterium to bacteria. This capability checks a curated irregular dictionary first so those forms win over naive suffixing. When the word is not in the irregular table, regular rules apply in a fixed order.

A consonant followed by y becomes ies (city to cities, company to companies), while vowel plus y simply adds s (day to days, key to keys). Known f and fe nouns become ves (leaf to leaves, knife to knives, life to lives). Endings that sound like sibilants—s, ss, sh, ch, x, and z—take es (box to boxes, bus to buses, watch to watches).

A short list of o-ending nouns that traditionally take es (potato, tomato, hero, echo) is handled next. Everything else receives a plain s.

Where an English pluralizer earns its keep in product and tooling

Code generators and ORMs often need table or collection names from a singular model label: Order becomes Orders with a regular rule, while Person should become People rather than Persons when product copy prefers natural language. Exam-prep and ESL tools can show which rule fired so learners see why city becomes cities and why mouse does not become mouses. Failed validation does not consume balance, which keeps form validation and negative CI cases cheap.

Keep requests to a single noun, pin plural and rule in tests, and you get reproducible labels for codegen, CMS helpers, and edge workers without standing up a full natural-language morphology service.

Table and collection naming in codegen

Derive plural table or resource names from a singular model label with stable irregular and regular rules.

UI labels that respect count grammar

Build strings such as N items or N children without shipping a partial suffix table in every client app.

ESL and morphology drills

Show the rule label that fired so learners compare irregular dictionary hits with -s, -es, and -ies patterns.

Does it handle irregular plurals like child or mouse?

Yes. A curated irregular dictionary runs first (child→children, mouse→mice, person→people, and many technical forms). Words not in the table use regular suffix rules.

Is casing preserved?

All-uppercase and Title-case inputs restore that style on the plural. Lowercase and mixed-case inputs return a lowercase plural for stable, predictable output.

Why does city become cities but day become days?

A consonant followed by y changes to ies, as in city to cities or company to companies. A vowel followed by y just adds s, so day becomes days and key becomes keys.

Which nouns stay the same or take Latin endings?

Sheep, deer, fish, series and species keep one form for singular and plural. Borrowed words follow their own pattern: index becomes indices, matrix becomes matrices and criterion becomes criteria.

Can I pluralize a whole phrase?

No, only one word at a time. Letters, digits, hyphens and underscores are fine, so identifier-style names pass, but spaces, commas and other punctuation make the entry be refused.

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/dev/pluralize-word

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/dev/pluralize-word \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"word":"child"}'
{
  "word": "child"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.pluralize_word",
  "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 strings, tokens without letters, and multi-word phrases are rejected with invalid_input so blank form submits never look like successful conversions.

Input contract, response shape, and error behaviour

The value must be a non-empty string after trimming whitespace, at most ten thousand characters, and must contain at least one Latin letter. POST a JSON body with one required string field named word. Aliases text, input, noun, value, and w are accepted so existing form posts and scripts need less renaming. Only a single token is allowed: letters, digits, hyphens, underscores, and apostrophes may appear so identifier-style names such as user_id fragments or hyphenated product codes can pass validation when they still look like one word; spaces, commas, and other punctuation cause invalid_input. On success the response echoes word as you sent it (after trim), normalized as the lowercase analysis form, plural as the pluralized string with casing restored for all-uppercase and title-case inputs, rule as a short machine label such as irregular, add_s, add_es, y_to_ies, f_to_ves, fe_to_ves, or o_to_es, and is_irregular as a boolean flag when the dictionary path fired. Missing word, non-string types, empty content after trim, tokens with no letters, and multi-token phrases all fail with invalid_input and are never billed. Pricing is a flat $0.002 per successful request with unit item. Prefer asserting on plural and rule in tests; treat invalid_input as a client validation bug for blank form fields rather than a billing event.

Where an English pluralizer earns its keep in product and tooling

Admin UIs and dashboard widgets display counts such as 3 children or 1 child; pluralizing the label with a shared API keeps client apps from hard-coding half-finished suffix tables. Prefer a dedicated localization or translation API when the source language is not English; this landing is English morphology only.

How do I pluralize an English noun with this API?

Send a JSON body with word set to a single non-empty English noun (aliases text, input, noun, value, w). The response includes plural and the rule that produced it.

What inputs are rejected?

Missing or empty word, non-string values, tokens with no letters, multi-word phrases, and most punctuation fail with invalid_input and are not billed.

What does the English word pluralizer cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →