Core concepts
Voices
Voice profiles learned from 2–20 samples: what they measure and how to build a good one.
A voice is a reusable profile of how one person writes, learned from 2–20 of their own pieces. Pass its id as voice_id on a rewrite and the output follows that person's habits instead of a generic “professional” register.
What a voice measures
We measure habits a careful reader notices, not topics. The traits object exposes the main ones:
| Trait | Example value | What it captures |
|---|---|---|
sentence_length_sd | 9.4 | How much sentence length varies. People vary a lot; models tend to be uniform. |
uses_em_dash | false | Punctuation habits, including ones the writer never uses. |
numbered_steps | true | Whether instructions become lists or stay as prose. |
endings | status_update | How pieces close: a question, a call to act, a plain status update. |
The profile also stores a baseline: how the Detect API scores the writer's own samples. That's what makes calibrated detection possible.
{
"id": "voice_8f2k1x",
"object": "voice",
"name": "Founder voice",
"samples": 2,
"words": 1197,
"traits": {
"sentence_length_sd": 9.4,
"uses_em_dash": false,
"numbered_steps": true,
"endings": "status_update"
},
"baseline": {
"ai_likelihood_mean": 0.19
}
}Choosing good samples
- Same person, unedited. Avoid pieces that went through heavy editing or an AI tool; you'd be teaching the voice the editor's habits.
- At least 1,200 words in total. More helps up to about 10,000 words, then returns flatten.
- Match where you'll publish. Five LinkedIn posts teach LinkedIn habits. Use
platformsto say where the samples came from. - Vary the topics. Different subjects let us separate style from subject matter.
Note:
Samples are for style only
Facts in your samples (names, figures, links) are never copied into a rewrite. The fidelity checker only allows facts that appear in the source you're rewriting.Using a voice
Pass voice_id on POST /rewrite. Without it, rewrites use a neutral house voice: plain, specific and free of stock phrasing, but nobody's in particular.
You can also pass a voice to POST /detect as calibrate_to, which scores text relative to that writer's baseline.
Limits and lifecycle
- Voices aren't billed. Basic API includes 3 voices, Pro API 15, Ultra API unlimited.
- Your samples are used to build the profile and then deleted; they are never stored with the voice. The profile keeps style measurements, a detector baseline and a style card that quotes 5–8 short sentences from your samples.
- Voices are immutable. To update one, create a new voice with the extra samples and switch ids; old ids keep working until you delete them.
- Deleting a voice removes its derived profile (and cancels a build that hasn't started). See Security & data retention.