Find the shortest word in text and its length
In “Quiet rivers run beneath old bridges.” the shortest word is “run”, with 3 letters, out of 6 words checked; it beats “old” because it comes first. Punctuation is not counted in the length. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Text
- Quiet rivers run beneath old bridges.
- Shortest word
- run
- Length
- 3
- Word count
- 6
The shortest word finder scans your text, identifies the first word with the minimum length, and reports both that word and its character count. It is useful when reviewing sentence rhythm, comparing vocabulary, studying poetry, preparing classroom exercises, or checking text-processing rules. The analysis recognizes words written with Unicode letters and digits, including words that contain an internal apostrophe or hyphen, so it works consistently with far more than plain English prose.
Find the minimum without losing its context
Paste or send a passage in the text field and the tool examines its words from left to right. It returns the shortest word, its length, and the total number of word tokens inspected. When two or more words have the same minimum length, the first one in the passage wins.
That stable tie rule is valuable for editing and automated checks because the same input always produces the same answer. Punctuation surrounding a word is not included in its length. Internal apostrophes and hyphens are preserved when they connect word parts, so terms such as don't, mother-in-law, and similar constructions remain single tokens.
The result gives a quick, focused measurement rather than rewriting or interpreting the passage. Use it to locate unusually small vocabulary items, compare lines of verse, inspect headline rhythm, or create a reproducible fact that another program can store alongside broader readability statistics. Nothing is uploaded to an outside language service, and the calculation does not depend on a dictionary.
Understand what counts as a word and a character
Tokenization is Unicode-aware: a word begins with one or more letters or digits and may contain additional letter-or-digit groups joined by a straight apostrophe, a typographic apostrophe, or a hyphen. Spaces, commas, quotation marks, emoji, and other separators divide or surround tokens instead of increasing their lengths. Length is measured in Unicode code points rather than UTF-16 storage units, which avoids counting many characters outside the basic multilingual plane twice.
The method is deliberately mechanical and language-neutral. It does not consult a lexicon, remove stop words, expand contractions, stem related forms, or decide whether a number is meaningful vocabulary. A token such as 7 therefore qualifies as a one-character word token.
If your research uses a narrower linguistic definition, preprocess the text first and then submit the normalized version. Blank input and strings containing only punctuation or symbols are rejected because there is no word for the capability to report.
Apply the result to writing and language workflows
A minimum word length is a small metric, but it becomes informative when used consistently across drafts, poems, transcripts, and datasets. Editors can pair it with average word length or sentence length to spot passages whose cadence changed after revision. Poets can compare lines and stanzas while retaining the actual first minimum word as evidence, rather than recording only a number.
Teachers can build exercises that ask learners to predict the result and then discuss punctuation, contractions, or ties. For fair comparisons, keep the same preprocessing policy across every sample: changing whether numbers or hyphenated forms are removed changes the population being measured. The returned word count helps document how much material was scanned, while the word and length fields provide the central observation.
What you can do with it
Review sentence rhythm
Identify the smallest word in a paragraph while editing cadence, emphasis, and vocabulary variety.
Explore poetry
Compare the first minimum-length word across lines or stanzas with a consistent tie rule.
Analyze a text corpus
Add a deterministic minimum-word observation and token count to linguistic or readability records.
FAQ
What happens when several words have the same shortest length?
The first shortest word in reading order is returned, making ties deterministic.
Does punctuation count toward the word length?
No. Surrounding punctuation acts as a separator, while an internal apostrophe or hyphen that joins word parts remains in the token and contributes to its length.
Are numbers treated as words?
Yes. Runs of Unicode letters or digits are tokens, so a standalone number can be the shortest result.
How are non-ASCII characters counted?
The tool recognizes Unicode letters and digits and measures token length in Unicode code points rather than UTF-16 storage units.
Can it skip little words such as a or the?
No, every word counts, including articles and numbers, because no dictionary or list of common words is used. If you want to ignore them, remove those words from the text first and then run the search.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/str/shortest-word \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Quiet rivers run beneath old bridges."}'const res = await fetch("https://api.kit.forhosting.com/str/shortest-word", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Quiet rivers run beneath old bridges."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/shortest-word",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Quiet rivers run beneath old bridges."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/shortest-word", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Quiet rivers run beneath old bridges."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Quiet rivers run beneath old bridges."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/shortest-word", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"text": "Quiet rivers run beneath old bridges."
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.shortest_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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Apply the result to writing and language workflows
API requests use the displayed $0.002 base price; the browser version can perform the same pure analysis locally without network-dependent behavior.
Technical questions
What input causes an error?
Missing text, blank text, and text containing no letter-or-digit word produce an invalid_input error.
What does an API request cost?
Each API request uses the displayed $0.002 base price.