Documentation
Results, abstentions, and costs
Branch your code on the stable band, handle abstentions and retryable codes, and see the cost before each call, with no charge when nothing is returned.
Branch your code on the band
When the engine decides, the response carries probability, then band: signature, plausible, ambiguous, or foreign. That’s the key your code should branch on. label says the same band in words, always in French, for display. Those words changed on October 12, 2026. The key didn’t.
band | label on q1 | English meaning |
|---|---|---|
signature | Signe cette voix | Carries this voice |
plausible | Plausiblement cette voix | Plausibly this voice |
ambiguous | Ambigu | Ambiguous |
foreign | Voix générique | Generic voice |
On q2, foreign reads “Voix étrangère” (“Different voice”). Before October 12, 2026, label used other words, and an archived result may still carry them: the description of label in the OpenAPI contract lists them. A server older than contract 5.3.0 omits band: match label against the table above and those former words. Like label, band is absent when the engine abstains.
No probability is better than a made-up one
probability: null with an unavailable code is not a zero. The engine declined to decide, and the operation costs no credit.
| Code | Meaning | Retry? | Action |
|---|---|---|---|
self_overlap | The submitted text substantially overlaps its own reference corpus. | No | Submit a text that is not already part of the voice reference. |
unsupported_language | The text reads neither as French nor as English, even when choosing between those two only. | No | Read the language field before requesting a verdict. |
voice_language_mismatch | The text and the reference voice are not written in the same language. | No | Measure the text against a voice written in its language. |
mixed_language | The text matches the voice language, but at least one full sentence, outside quotation marks, is in the other one. | No | Fix or remove the sentences returned in passages, or put a quote in quotation marks, then try again. |
embedding_layer | The deep measurement layer did not return a result. | Yes | Retry after a short delay. |
out_of_distribution | The contrast panel does not cover this voice register. | No | Add human reference texts closer to the measured register. |
calibration_mismatch | The engine version does not match a validated calibration. | No | Wait for the engine configuration to be corrected. |
Supported languages
Production stamps are calibrated for French and English, each with its own engine. Any other language, or a voice and a text in different languages, returns an explicit unavailable result.
Know the charge before you make the call
Estimate before spending
GET /api/v1/estimate returns the catalog price. Add ?operation=… to compare that price with the account balance through affordable.
Conditional charges
conditional: true means the operation is free when it produces no usable result, including an abstention or a rejected certificate.
One balance across every surface
The web app, REST API, and MCP server share one credit balance and the same operation weights. Reading stays free.