Contador de palavras
Cole um rascunho e receba de uma vez palavras, caracteres com e sem espaços, frases, parágrafos e tempo de leitura. Uma contração como don't conta como uma palavra só, e 3.14 nunca divide uma frase em duas. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Número de palavras
- 0
- Caracteres com espaços
- 0
- Caracteres sem espaços
- 0
- Número de frases
- 0
Precisa de uma contagem fiável para um artigo, legenda, briefing ou rascunho multilingue? Esta ferramenta mede palavras, caracteres, caracteres sem espaços, frases, parágrafos e o tempo de leitura estimado num único passo determinístico.
O que conta como palavra
As palavras formam-se com letras e números Unicode, não com um simples corte por espaços. Contrações como don't e compostos como well-known mantêm-se unidos, e um decimal como 3.14 conta como uma só palavra. Cadeias vazias ou só com espaços produzem zero palavras, e espaços laterais não inventam tokens extra.
O algoritmo percorre escalares Unicode, por isso um emoji conta como um carácter e não como duas unidades UTF-16.
Chinês, japonês e coreano sem dicionários ocultos
Escritas que não separam palavras com espaços exigem uma regra explícita. Cada carácter Han conta como uma palavra; sequências contíguas de kana ou hangul contam como uma palavra cada. Cadeias mistas, por exemplo Hello colado a ideogramas, partem-se em tokens latinos e Han em vez de colapsar num único bloco.
Terminadores de frase de largura completa ou ideográficos também fecham a frase sem exigir um espaço a seguir, como se escreve a prosa CJK. Não se inclui um segmentador lexical pesado: as regras são portáteis, auditáveis e idênticas no servidor e no navegador.
Frases, parágrafos e tempo de leitura
As frases terminam em ., !, ?, reticências e terminadores CJK, com aspas ou parênteses de fecho opcionais, enquanto o ponto decimal de 3.14 não abre uma frase nova. Os parágrafos são blocos de linhas não vazias separados por linhas em branco; uma quebra de linha simples dentro do bloco continua a ser um só parágrafo. O tempo de leitura usa a sua velocidade em palavras por minuto (200 por omissão) e arredonda para cima em segundos inteiros, ou zero se não houver palavras.
Casos de uso
Controlo de comprimento editorial e SEO
Meça títulos, meta descrições e corpo antes de publicar para os objetivos de comprimento serem coerentes entre autores.
Rascunhos multilingues
Conte texto latino e CJK misturado com regras explícitas, sem tratar cada ideograma como invisível ou como uma única palavra gigante.
Pré-visualização de estrutura
Mostre caracteres, frases e tempo de leitura junto do rascunho para a revisão ver a estrutura, não só o comprimento bruto.
Perguntas frequentes
O contador de palavras online é gratuito?
Sim. A ferramenta do navegador é local e sem custo.
Como são contadas as palavras?
Com sequências de letras e números Unicode e uniões explícitas para apóstrofos, hífenes e pontos decimais. Não se usa Intl.Segmenter, para o resultado coincidir entre navegador e servidor.
Como funciona a contagem em chinês ou japonês?
Cada carácter Han é uma palavra. Kana ou hangul contíguo forma uma palavra por sequência. Terminadores como 。 e ! fecham a frase mesmo quando o carácter seguinte não é um espaço.
O 3.14 cria duas frases?
Não. Um único ponto decimal entre dígitos permanece dentro do número tanto para palavras como para frases.
Qual é o tamanho máximo do texto?
Até 500.000 caracteres Unicode por pedido. Documentos maiores devem ser divididos antes da contagem.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/text/word-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello world. How many words is this?"}'const res = await fetch("https://api.kit.forhosting.com/text/word-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello world. How many words is this?"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/word-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello world. How many words is this?"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/word-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello world. How many words is this?"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello world. How many words is this?"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/word-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Hello world. How many words is this?"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.word_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 500000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
As mesmas regras correm grátis no navegador e na API, para a automação não divergir do que pré-visualizou na página.
O que conta como palavra
O underscore e os separadores de correio não colam tokens: foo_bar dá duas palavras e email@example.com dá três.
Frases, parágrafos e tempo de leitura
Use os campos JSON em editores, verificações SEO, validações de CMS ou qualquer fluxo que precise de uma contagem estável.
Casos de integração
Automação e ganchos de CMS
Chame a API com o mesmo contrato do widget gratuito para rejeitar publicações vazias ou estimar o tempo de leitura num pipeline.
Perguntas técnicas
O que significa reading_time_seconds?
É o teto de (palavras × 60 / wpm). O wpm predefinido é 200; indique um número finito maior que zero para alterar a estimativa.