ForHosting KIT · Text & AI

Count letters only

Hello, World! 123 — café Ωmega 🚀 has 19 letters: digits, spaces, punctuation and the emoji are skipped, while é and the Greek Ω count like any other letter. Handy for word games, worksheets and data checks. 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
Text
Hello, World! 123 — café Ωmega 🚀
You get
Letter count
19

This letters-only counter gives you one clean total for the alphabetic letters in a piece of text. It ignores digits, spaces, line breaks, punctuation, emoji, currency marks, mathematical signs, and other symbols, so noisy content does not inflate the answer. Unlike an ASCII-only check, it recognizes letters from Unicode writing systems, including accented Latin characters and letters used in Greek, Cyrillic, Arabic, and many other scripts. That makes the result useful for word games, classroom exercises, editorial checks, data cleaning, and deterministic software tests. The calculation runs as a fixed local scan with no network request, randomness, or date-dependent behavior.

What the letters-only total includes

The result counts characters whose Unicode general category is Letter. That category includes ordinary uppercase and lowercase alphabetic characters, titlecase letters, modifier letters, and letters used in writing systems that do not follow the English A-to-Z pattern. For example, the accented character é counts as one letter, Greek Ω counts as one letter, and Arabic ك counts as one letter.

A combining accent entered separately does not add another letter because the mark itself is not classified as a letter; the underlying alphabetic character still counts. Digits never contribute, whether they appear inside a product code, beside a word, or on their own. Spaces, tabs, line breaks, commas, periods, apostrophes, quotation marks, dashes, brackets, mathematical operators, currency signs, emoji, and decorative symbols are also ignored.

The original text is not transformed, normalized, corrected, or returned as a filtered copy. It is scanned exactly as submitted, and only membership in the Unicode Letter category affects the total.

How to enter text and interpret edge cases

The string may contain sentences, multiple lines, codes, punctuation, or symbols, and those non-letter parts can remain in place because the counter skips them automatically. The algorithm iterates by Unicode code point, which prevents a supplementary-plane character from being split into two iterations. It then applies the standard Unicode Letter property to each code point.

No locale is guessed, no dictionary is consulted, and letter case has no effect. Because the scan uses no network, current time, random value, or mutable state, identical input produces identical output across repeated calls.

Using clean letter totals in games and analysis

A letters-only count is useful whenever formatting and incidental characters should not affect a measurement. Word-game designers can compare clue lengths after removing the visual noise of numbering, spaces, and punctuation without first building a sanitized copy. Teachers can check answers in alphabet exercises, prepare reproducible worksheet keys, or demonstrate the difference between letters and all characters in a sentence.

Editors and researchers can measure alphabetic content in labels, survey answers, headlines, or imported records that contain identifiers and markup-like punctuation. Data-cleaning workflows can flag records that return zero even though the original field is non-empty, revealing rows made entirely of digits or symbols. Use a dedicated character counter when spaces and punctuation should contribute, or a text-cleaning tool when you need filtered text rather than an integer total.

Check word-game material

Measure only the playable alphabetic content in clues, phrases, and answers while ignoring numbering and punctuation.

Audit mixed-format data

Find how much alphabetic content remains in product labels, survey fields, and imported records containing digits or symbols.

How much does the letters-only counter cost?

It is free to use in the browser.

Do accented and non-English letters count?

Yes. The counter uses the Unicode Letter property, so accented Latin letters and letters from many other writing systems count.

Are numbers, spaces, and punctuation included?

No. Digits, whitespace, punctuation, emoji, currency marks, mathematical signs, and other symbols are ignored.

Can the result be zero?

Yes. Text made only of digits, spaces, punctuation or emoji has no letters, so it returns zero, which is often exactly what a data check needs. A completely empty box is refused instead of reported as zero.

Do uppercase and lowercase letters both count?

Yes, letter case has no effect: A and a each add one letter. The counter only asks whether a character is a letter, in any alphabet, and leaves everything else out.

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/str/char-count-letters-only

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/str/char-count-letters-only \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello, World! 123"}'
{
  "text": "Hello, World! 123"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "str.char_count_letters_only",
  "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.

max_chars100000
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.

Use the browser tool interactively, or call the API for $0.002 per successful request when the same counting rule must be automated.

What the letters-only total includes

The response deliberately contains a single letter_count plus a fixed method label, instead of mixing this focused measurement with word, byte, vowel, or total-character statistics. This narrow contract makes the number easy to interpret in puzzles, rubrics, and automated assertions.

How to enter text and interpret edge cases

Provide the source in the required text field as a JSON string or paste it into the matching browser control. An empty string is rejected with invalid_input so an accidentally blank submission cannot be mistaken for a meaningful zero. A non-empty string containing only spaces, digits, punctuation, or emoji is valid and returns letter_count zero, which is often exactly the finding needed when validating noisy data. Values such as arrays, objects, booleans, and numbers are rejected instead of being silently converted into text; this avoids surprising results such as counting letters in the word true when the caller intended a Boolean value. Input is limited to one hundred thousand JavaScript characters to keep browser and Worker execution bounded.

Using clean letter totals in games and analysis

The browser version is convenient for one-off checks, while each successful API request costs $0.002 and applies the same deterministic algorithm. This tool does not count words, syllables, grapheme clusters, vowels, consonants, or every visible character, and it does not remove unwanted characters from the input.

Build deterministic tests

Generate stable Unicode-aware letter totals for validators, golden fixtures, classroom software, and CI assertions.

Can a valid result be zero?

Yes. A non-empty string containing no alphabetic letters returns letter_count zero. An empty string is invalid input.

Does the tool return text with non-letters removed?

No. It returns a numeric letter_count and a method label. It does not modify or return a filtered version of the source text.

Read the full KIT documentation →