Word counter for text and characters

Writing an article, submitting an assignment, or preparing a product description with a length requirement? Paste your text into KitoTool to see word, character, sentence and paragraph counts plus estimated reading time as you edit. Before submitting, check the destination’s counting rules if it sets its own limit.

Paste text to count words and characters

Counts update as you type or edit.

Words
0
Characters
0
Characters without spaces
0
Estimated sentences
0
Paragraphs
0
Estimated reading minutes
0

How to Use Word Counter

01

Paste or type text

Counts change as you type, paste or edit; Recount refreshes the same result on demand.

02

Choose the count you need

Use words for draft length and characters for character limits; check the rules below when comparing with another tool.

03

Edit and recheck

Edit the input or choose Clear text to start over. Counts and frequent items update with the new content.

Understand the counts before using them

Words and characters

Each whitespace-separated item counts as one word. This is not language-aware word segmentation. Characters include spaces and line breaks; the second character count removes whitespace.

Sentences and paragraphs

Sentences are estimated from a period, question mark or exclamation mark before whitespace or the end; an unfinished passage counts as one. Blank lines separate paragraphs; a single line break does not.

Reading time

The tool divides whitespace-separated items by 200 and rounds up to whole minutes. This is a quick estimate, not an individual reading-time measurement.

Frequent items

The list shows up to 10 repeated items and preserves accented letters. It reports occurrences, not keyword-density percentages or an SEO score.

If a form or editor enforces a limit, check the count there before publishing: word, emoji and punctuation rules may differ.

How is your text handled?

The tool calculates counts in your browser. Counting does not upload your text to an KitoTool API, and this tool does not save a draft. Keep your original if you need it after closing the page.

Comments & feedback

Rate this tool

Loading ratings…

Write a commentNo account needed

Do not share passwords, sensitive information or the contents of files you are processing.

Reviewed before posting. Email stays private.

Embed this tool on your websiteFree · Copy once, receive tool updates automatically

Paste the iframe into HTML, WordPress or any platform that supports embeds. The tool runs in the visitor’s browser; adjust its height and theme as needed.

View the embed guide and supported platforms →

<div style="max-width:900px">
  <iframe data-kitotool-embed src="https://kitotool.com/embed/en/word-counter/" title="Word Counter — KitoTool" width="100%" height="820" style="display:block;width:100%;border:1px solid #dbe3ee;border-radius:12px" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
  <p style="margin:6px 2px 0;text-align:right;font:12px/1.5 system-ui,sans-serif;color:#64748b">Free tool by <a href="https://kitotool.com/en/word-counter/" target="_blank" rel="nofollow noopener noreferrer" style="color:#2359d4;text-decoration:underline">KitoTool</a></p>
</div>

The code includes a visible credit below the iframe; its link uses nofollow for a widely distributed widget.

Optional: automatically resize the iframe

Add this script once to the page containing the iframe.

<script>
(function(){var origin="https://kitotool.com";function frames(){return document.querySelectorAll("iframe[data-kitotool-embed]")}function measure(f){if(f.contentWindow&&new URL(f.src).origin===origin)f.contentWindow.postMessage({type:"kitotool:measure"},origin)}window.addEventListener("message",function(e){if(e.origin!==origin||!e.data||e.data.type!=="kitotool:resize"||!Number.isFinite(e.data.height))return;frames().forEach(function(f){if(f.contentWindow===e.source&&new URL(f.src).origin===origin)f.style.height=Math.max(320,Math.min(12000,Math.ceil(e.data.height)))+"px";});});function connect(){frames().forEach(function(f){f.addEventListener("load",function(){measure(f)});measure(f)})}if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",connect,{once:true});else connect()})();
</script>