Spell a number in English
1234 becomes one thousand two hundred thirty-four, in American English with hyphenated tens and no and after hundred. Negatives and decimals work too, with decimals read digit by digit. Useful for invoices, voice prompts and classroom drills. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- N
- 1234
- Words
- one thousand two hundred thirty-four
- Integer part
- 1234
- Language
- en
- Style
- american_short_scale
Turning digits into spoken English is a daily need in invoices, accessibility labels, classroom drills, check writers, voice prompts, and any UI that must read a quantity aloud without sounding like a raw numeral. This capability spells a plain decimal number in American English short-scale words—one thousand two hundred thirty-four for one thousand two hundred thirty-four, negative forty-two for a signed integer, and twelve point three four for a fixed-point fraction—so humans and machines share one deterministic contract. Non-numeric text fails with a clear invalid input error instead of a guessed spelling.
What English number spelling returns and which inputs are valid
American English short-scale spelling names each group of three digits with thousand, million, billion, trillion, and quadrillion, and it writes compound tens with a hyphen so thirty-four is one token family rather than two unrelated words. Hundreds omit the British conjunction and, matching everyday United States style and the product example that turns one thousand two hundred thirty-four into one thousand two hundred thirty-four. Optional leading plus or minus signs mark positive or negative values; the engine prefixes negative for signed results.
An optional fractional part is allowed after a single decimal point. Common thousands separators such as commas or spaces in groupings like one comma two three four are stripped when they clearly group digits.
Reading words, parts, style flags, and how decimals are spoken
The words field is the full American English spelling ready for display, speech synthesis, or document templates. Fractional values are spelled digit by digit after the word point: twelve point three four for twelve point three four, which avoids inventing tenths or hundredths names and stays unambiguous for any fractional length within the cap. Zero is spelled zero; negative zero still carries the negative prefix when a leading minus was supplied, so signed inputs are not silently collapsed.
Quick checks build trust: one becomes one; twenty-one keeps the hyphen; one hundred one has no and; one million two keeps the scale name; zero point zero five becomes zero point zero five.
What you can do with it
Invoices and legal amount lines
Finance templates spell totals in English beside the numeric figure so human readers and compliance checks share one deterministic wording for integers and fixed-point amounts.
Accessibility and voice prompts
Screen-reader helpers and IVR scripts convert quantities into natural American English words, including negatives and digit-by-digit decimals, without inventing ad-hoc dictionaries.
FAQ
How do I spell a number in English with this tool?
The words field returns the American English spelling (for example one thousand two hundred thirty-four).
How are decimals and negatives spelled?
Negatives are prefixed with negative. Fractional digits are spelled one by one after point, so 12.34 becomes twelve point three four.
What happens on non-numeric input?
Empty strings, letters, multiple decimal points, and scientific notation strings are rejected and not charged.
Is this British or American English?
American short scale without and after hundreds (two hundred thirty-four, not two hundred and thirty-four), with hyphenated compound tens such as thirty-four.
Can I type a number with thousands separators?
Yes. Commas or spaces that clearly group digits in threes are removed before spelling, so a grouped figure gives exactly the same words as the plain one, such as one thousand two hundred thirty-four.
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/fmt/number-to-words-en \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":"1234"}'const res = await fetch("https://api.kit.forhosting.com/fmt/number-to-words-en", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": "1234"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fmt/number-to-words-en",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": "1234"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fmt/number-to-words-en", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":"1234"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":"1234"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fmt/number-to-words-en", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"n": "1234"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fmt.number_to_words_en",
"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
What English number spelling returns and which inputs are valid
Send the required field n as a JSON number or as a numeric string; aliases value, number, input, and num are accepted when your form or SDK already uses those labels. Empty strings, bare letters, multiple decimal points, hex prefixes, and scientific notation strings are rejected with invalid_input because this product promises an exact spelling of a well-formed plain decimal, not a fuzzy interpretation of free text. Integer and fractional digit lengths are capped for Worker isolate safety while still covering classroom exercises, invoice lines, and ordinary business magnitudes.
Reading words, parts, style flags, and how decimals are spoken
On success the response echoes a normalized plain decimal string in the field n, without thousands separators, so downstream systems can round-trip the value. Boolean flags is_integer and is_negative summarize structure without forcing callers to reparse the string. integer_part and fractional_part expose the digit strings separately for table UIs, graders that score the integer wording apart from the point-digit sequence, and pipelines that store magnitude and text side by side. language is always en and style is always american_short_scale so localization layers can branch when other languages are added later as separate capabilities. method is always number_to_words_en for telemetry and algorithm labeling. Missing n, non-numeric text, empty strings, overlong digit runs, and scientific strings all fail with invalid_input and are not charged after validation rejects the request.
API usage, pricing, accessibility workflows, and practical limits
Call the free in-browser spell-number tool for homework checks, lecture demos, invoice previews, and quick mental verification without installing a linguistics library or writing a throwaway script. Prefer classroom-scale and business-scale digit counts for production traffic, and keep magnitudes inside the published digit caps for isolate safety. Send a JSON body with the required n field, or use the documented aliases when your client already labels the quantity as value or number. Use the prepaid API when an accessibility layer, banking template, tutoring platform, voice prompt generator, content pipeline, or document renderer needs a stable English contract under KIT balance at $0.002 per successful item; validation failures never consume balance. Pair this endpoint with locale number formatters when you first normalize grouping and decimal separators, then spell the cleaned plain decimal, or with PDF and mail tools when the next step is embedding the words line into a customer-facing document. Authors shipping SDKs can map words into a single answer box while integer_part and fractional_part feed audit columns—the same split humans use when they read the whole number aloud and then list each digit after the decimal point.
Integration use cases
Homework, tutoring, and auto-graders
Students and platforms check that one thousand two hundred thirty-four is spelled correctly, with clear invalid_input feedback when non-numeric text is submitted by mistake.
Technical questions
Is the spell-number English tool free?
The browser widget runs free on your device. API calls use prepaid KIT balance at $0.002 per successful item; validation failures are not charged.