Louise Gluck poetry stats
Two lines, “The night is still.” and “A moth finds the lamp.”, measure 2 verse lines, 9 words and 9 estimated syllables in one stanza. Paste your draft, a short quotation or an imitation, and compare revisions to see whether the later one is leaner. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Text
- The night is still. A moth finds the lamp.
- Lines
- 2
- Words
- 9
- Syllables
- 9
- Characters
- 42
Students of Louise Glück's lyric keep returning to the same craft question: how little language can carry a feeling, and where each line should break. Workshop drafts, close-reading notes, and revision journals need a fast, honest count of verse lines, words, and a stable syllable estimate—not a generative essay about the poem. This Louise Gluck poetry measurer accepts the text you paste, ignores blank stanza gaps when it tallies verse lines, counts English word tokens, and estimates syllables with a deterministic vowel-group heuristic so two runs of the same draft never disagree.
Why line, word, and syllable counts matter in spare lyric
Louise Glück's published books—The Wild Iris, Averno, Faithful and Virtuous Night, and the rest of a career that later received the Nobel Prize in Literature—are often taught as models of compression. A typical classroom exercise is not “what does the iris symbolize” alone; it is how many words sit on a line, how often a stanza isolates a single clause, and whether a revision added syllables that the earlier draft had refused. Those are measurable facts about a text, and they are the facts this capability returns.
A verse line here is a non-empty line after newline normalization: a blank line is a stanza gap, not an extra line of poetry, which matches how readers hear Glück's pauses on the page. Words are English letter tokens, so a hyphenated compound splits into halves that can each carry stress, and an apostrophe inside a contraction stays inside one token.
Syllables are an estimate, not a dictionary lookup of every English lexeme: the engine counts vowel groups, drops a silent trailing e, treats regular past-tense -ed as usually unsyllabic, and consults a small table for words the heuristic systematically misses (poem, quiet, every, people). That is enough to compare two drafts of the same lyric and see whether the later one is actually leaner. It will not certify iambic pentameter, assign scansion marks, or retrieve a copyrighted Glück poem from a corpus.
Paste the lines you are allowed to measure—your own draft, a short quotation you already have in front of you, a student imitation—and read the counts as craft evidence, not as a verdict on quality.
Input contract, how each statistic is defined, and empty-text errors
Leading and trailing whitespace, including a conventional final newline, are trimmed before analysis so a file that ends with a line break does not invent an extra blank stanza. Example: two short lines “The night is still.” and “A moth finds the lamp.” yield two verse lines, nine words, and a matching syllable total under the heuristic, with one stanza if they are adjacent and two stanzas if a blank line sits between them.
Pair the response with your own display: highlight a rising syllable-per-line average when a student is trying to write shorter, or store the triple (lines, words, syllables) next to each saved draft. Do not treat a low syllable count as proof of Glück-like authority—only as a reproducible measurement of the string you sent. Keep pastes under the documented character ceiling; oversized input is rejected rather than silently truncated.
Where these poetry counts help most
Creative-writing workshops can drop this check into a revision loop so a poet sees whether the new draft actually shed lines and syllables or only rearranged them. Literature courses that assign close reading of spare American lyric can ask students to paste a short passage they already transcribed and report lines, words, and estimated syllables before they write about tone—numbers first, interpretation second.
Pin expected triples in tests, keep the original poem out of logs if your product promises privacy, and you get reproducible lyric statistics for homework, editorial tools, and edge workers without standing up a speech-syllable or readability pipeline for a job that line and token scans already solve.
What you can do with it
Workshop revision loops
Paste a draft lyric and a later cut of the same poem to see whether lines, words, and estimated syllables actually fell, or only moved.
Classroom close reading
Ask students to measure a short transcribed passage before they write about Glück-like compression, so claims about spare lines rest on counts.
Editorial and MFA appendices
Store lines, words, and syllable estimates next to each saved sequence when a reader wants a mechanical check of average line length.
FAQ
How does the Louise Gluck poetry tool count lines?
After normalizing newlines and trimming outer whitespace, every non-empty line is one verse line.
How is the syllable estimate computed?
Each English word token is scored with a fixed vowel-group heuristic (silent e, regular -ed, consonant-plus-le) plus a small exception table for words the heuristic misses. The same string always returns the same total. It is an estimate, not a pronunciation dictionary.
What happens if I paste empty text?
Empty or whitespace-only input is not a poem measurement and is not billed. Send a non-empty string in the text field.
Does this look up Louise Glück's published poems?
No. Nothing is fetched from a corpus. You paste the text you are allowed to measure—your draft, notes, or a short quotation you already have—and the engine counts only that string.
Can it check the meter of a poem, such as iambic pentameter?
No. It counts lines, words, stanzas and estimated syllables, but it does not mark stresses, certify iambic pentameter or judge quality. Read the counts as craft evidence about compression and line length, not as a verdict on the poem.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/life/louise-gluck-poetry \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The night is still.\nA moth finds the lamp."}'const res = await fetch("https://api.kit.forhosting.com/life/louise-gluck-poetry", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The night is still.\nA moth finds the lamp."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/louise-gluck-poetry",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The night is still.\nA moth finds the lamp."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/louise-gluck-poetry", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The night is still.\\nA moth finds the lamp."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The night is still.\nA moth finds the lamp."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/louise-gluck-poetry", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"text": "The night is still.\nA moth finds the lamp."
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.louise_gluck_poetry",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Empty or whitespace-only input is rejected as invalid_input instead of returning a decorative zero that looks like a successful reading.
Input contract, how each statistic is defined, and empty-text errors
POST a JSON body with one required field: text, a non-empty string containing the poem (aliases poem, content, body, input, and verse are accepted by the same parser). If the field is missing, not a string, empty, or only whitespace, the task fails with invalid_input naming text and is not billed. On success the body reports lines (non-empty verse lines), words, syllables (the summed estimate), characters (length of the normalized poem), blank_lines, stanzas (runs of verse separated by one or more blank lines), and three averages rounded to two decimals: avg_words_per_line, avg_syllables_per_line, and avg_syllables_per_word. The method field is always english_vowel_group_estimate so clients can distinguish this contract from a future dictionary scorer.
Where a Louise Gluck poetry stats API earns its keep
Mentorship platforms and MFA applications sometimes want a mechanical appendix (“this sequence averages under six syllables a line”) that a human reader can verify; a deterministic parse endpoint is safer than a chatbot that invents a count.
Technical questions
What does the Louise Gluck poetry counter cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.