Contatore di parole
Le serve un conteggio affidabile per un articolo, una didascalia, un brief o una bozza multilingue?
Esegui gratis nel browser
Questo strumento misura parole, caratteri, caratteri senza spazi, frasi, paragrafi e tempo di lettura stimato in un solo passaggio deterministico. Le stesse regole girano gratis nel browser e sull’API, così l’automazione non diverge da ciò che ha anteprima sulla pagina.
Cosa conta come parola
Le parole si formano con lettere e numeri Unicode, non con un semplice taglio sugli spazi. Contrazioni come don't e composti come well-known restano uniti, e un decimale come 3.14 conta come una sola parola. Underscore e separatori email non incollano i token: foo_bar dà due parole e email@example.com ne dà tre. Stringhe vuote o solo spazi producono zero parole, e gli spazi laterali non inventano token extra. L’algoritmo scorre gli scalari Unicode, quindi un emoji conta come un carattere e non come due unità UTF-16.
Cinese, giapponese e coreano senza dizionari nascosti
Le scritture che non separano le parole con spazi richiedono una regola esplicita. Ogni carattere Han conta come una parola; le sequenze contigue di kana o hangul contano come una parola ciascuna. Le stringhe miste, ad esempio Hello attaccato a ideogrammi, si spezzano in token latini e Han invece di collassare in un unico blocco. Anche i terminatori di frase a larghezza piena o ideografici chiudono la frase senza richiedere uno spazio successivo, come si scrive la prosa CJK. Non è incluso un segmentatore lessicale pesante: le regole restano portabili, verificabili e identiche su server e browser.
Frasi, paragrafi e tempo di lettura
Le frasi terminano con ., !, ?, puntini di sospensione e terminatori CJK, con virgolette o parentesi di chiusura opzionali, mentre il punto decimale di 3.14 non apre una nuova frase. I paragrafi sono blocchi di righe non vuote separati da righe vuote; un singolo a capo dentro il blocco resta un solo paragrafo. Il tempo di lettura usa la velocità in parole al minuto (200 predefinita) e arrotonda per eccesso ai secondi interi, oppure zero se non ci sono parole. Usi i campi JSON in editor, controlli SEO, validazioni CMS o qualsiasi pipeline che necessiti di un conteggio stabile.
Casi d'uso
Controllo lunghezza editoriale e SEO
Misuri titoli, meta description e corpo prima della pubblicazione affinché gli obiettivi di lunghezza restino coerenti tra autori.
Bozze multilingue
Conti testo latino e CJK misto con regole esplicite, senza trattare ogni ideogramma come invisibile o come un’unica parola gigante.
Automazione e hook CMS
Chiami l’API con lo stesso contratto del widget gratuito per rifiutare post vuoti o stimare il tempo di lettura in un flusso.
Anteprima di struttura
Mostri caratteri, frasi e tempo di lettura accanto alla bozza così la revisione vede la struttura, non solo la lunghezza grezza.
Domande frequenti
Il contatore di parole online è gratuito?
Sì. Lo strumento del browser è locale e senza costi. Le richieste API scalano il prezzo base pubblicato $0.002 dal saldo prepagato; un’attività fallita non viene addebitata.
Come vengono contate le parole?
Con sequenze di lettere e numeri Unicode e unioni esplicite per apostrofi, trattini e punti decimali. Non si usa Intl.Segmenter, così il risultato coincide tra browser e server.
Come funziona cinese o giapponese?
Ogni carattere Han è una parola. Kana o hangul contigui formano una parola per sequenza. Terminatori come 。 e ! chiudono la frase anche se il carattere successivo non è uno spazio.
3.14 crea due frasi?
No. Un singolo punto decimale tra cifre resta dentro il numero sia per le parole sia per le frasi.
Cosa significa reading_time_seconds?
È l’arrotondamento per eccesso di (parole × 60 / wpm). Il wpm predefinito è 200; indichi un numero finito maggiore di zero per cambiare la stima.
Qual è la dimensione massima del testo?
Fino a 500.000 caratteri Unicode per richiesta. Documenti più grandi vanno suddivisi prima del conteggio.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
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)Esempio di richiesta
{
"text": "Hello world. How many words is this?"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.word_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars | 500000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |