Mots par paragraphe
Le nombre de mots par paragraphe révèle un rythme et un équilibre qu’un total global ne montre pas.
Lancer gratuitement
Collez un texte dont les paragraphes sont séparés par des lignes vides pour obtenir chaque compte, le total et la moyenne. L’outil signale aussi les paragraphes très supérieurs ou inférieurs à cette moyenne, afin que les équipes éditoriales, les étudiants et les rédacteurs repèrent rapidement les passages à examiner.
Préparez un texte aux limites de paragraphes claires
Collez du texte brut et laissez au moins une ligne entièrement vide entre les paragraphes. Un saut de ligne ordinaire au sein d’un paragraphe n’en crée pas un nouveau : les lignes repliées et les retours volontaires restent donc groupés. Une ligne séparatrice contenant des espaces ou des tabulations est acceptée. Les espaces placés au début et à la fin sont supprimés avant l’analyse, et plusieurs lignes vides successives ne forment toujours qu’une seule limite. Le compteur reconnaît comme mots les suites de lettres et de chiffres, tout en conservant les apostrophes et traits d’union internes usuels. La ponctuation seule n’ajoute rien au compte. Un paragraphe composé uniquement de symboles peut apparaître avec zéro mot s’il se trouve entre des limites valides. Si toute l’entrée est vide ou ne contient que des espaces, la requête échoue faute de paragraphe à analyser. Cette structure explicite garantit des résultats reproductibles et évite de considérer arbitrairement chaque ligne visible comme un paragraphe distinct.
Interprétez la moyenne et les signalements
L’outil compte d’abord tous les paragraphes, additionne leurs mots pour établir le total du document, puis divise ce total par le nombre de paragraphes. La moyenne affichée est arrondie à deux décimales, tandis que le classement emploie la valeur non arrondie. Un paragraphe n’est signalé très au-dessus de la moyenne que si son compte dépasse 150 pour cent de celle-ci. Il n’est très en dessous que si son compte reste inférieur à 50 pour cent. Une valeur exactement placée sur l’une de ces limites reste dans la moyenne, ce qui rend la règle prévisible. Ces marques sont des indices et non des jugements stylistiques. Dialogues, titres, transitions, exemples et conclusions ont naturellement des longueurs variées, et un paragraphe très bref peut être voulu. Servez-vous du résultat pour orienter votre lecture, puis examinez le contexte. Toute modification peut déplacer la moyenne et changer plusieurs signalements lors de l’analyse suivante.
Transformez le rapport en révision concrète
Commencez par les paragraphes très au-dessus de la moyenne et vérifiez si chacun réunit plusieurs idées qui gagneraient à être séparées. Repérez un changement de sujet, un long exemple ou une transition pouvant devenir une coupure naturelle. Examinez ensuite les paragraphes très en dessous. Un passage court peut produire un effet utile, mais il peut aussi s’agir d’une affirmation non étayée, d’une phrase isolée ou d’un fragment à rattacher au voisin. Après vos modifications, analysez de nouveau le texte complet plutôt que de comparer des nombres isolés, puisque la moyenne décrit l’ensemble actuel. La sortie numérotée conserve l’ordre de la source et permet de retrouver chaque résultat sans reproduire un texte potentiellement sensible. Les équipes peuvent également appeler l’API dans leurs contrôles éditoriaux, chaînes de publication ou outils pédagogiques pour $0.002 par requête. L’algorithme est déterministe, sans modèle ni réseau, et fournit un rapport identique pour une entrée inchangée.
Cas d’usage
Équilibrer le brouillon d’un article
Repérez les passages denses à scinder et les sections très brèves qui méritent davantage de développement.
Relire les travaux d’étudiants
Donnez aux étudiants une carte objective des longueurs avant d’aborder structure, preuves et rythme.
Automatiser les contrôles éditoriaux
Ajoutez des comptes déterministes et des alertes d’écart à une chaîne de publication ou de qualité.
Questions fréquentes
Qu’est-ce qui sépare deux paragraphes ?
Une ou plusieurs lignes vides séparent les paragraphes. Un saut unique sans ligne vide reste dans le même paragraphe.
Quand un paragraphe est-il très au-dessus de la moyenne ?
Son nombre de mots doit dépasser 150 pour cent de la moyenne non arrondie du document.
Quand un paragraphe est-il très en dessous de la moyenne ?
Son nombre de mots doit être inférieur à 50 pour cent de la moyenne non arrondie.
La ponctuation compte-t-elle comme un mot ?
Non. Le compteur utilise les suites de lettres et de chiffres en gardant les apostrophes et traits d’union internes usuels.
Quel est le prix de l’API ?
Chaque requête API coûte $0.002. La version pour navigateur peut fonctionner localement et gratuitement.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/write/word-count-by-paragraph \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"A short opening paragraph.\n\nThis second paragraph contains several more words so its length can be compared with the opening."}'const res = await fetch("https://api.kit.forhosting.com/write/word-count-by-paragraph", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "A short opening paragraph.\n\nThis second paragraph contains several more words so its length can be compared with the opening."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/write/word-count-by-paragraph",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "A short opening paragraph.\n\nThis second paragraph contains several more words so its length can be compared with the opening."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/write/word-count-by-paragraph", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"A short opening paragraph.\\n\\nThis second paragraph contains several more words so its length can be compared with the opening."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"A short opening paragraph.\n\nThis second paragraph contains several more words so its length can be compared with the opening."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/write/word-count-by-paragraph", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "A short opening paragraph.\n\nThis second paragraph contains several more words so its length can be compared with the opening."
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "write.word_count_by_paragraph",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chars | 1000000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |