C
StableVoice — MPP Grade C
Preview responses and set spending limits for this service through use.mpp.land
Free budget controls, response samples, and reliability routing.
On-chain Activity
1
Total txs
1
7d txs
$0.01
7d volume
$0.01
Total volume
1
Unique payers
0
Unique clients
7-day activity
▁▁▁▁▁▁█
Compliance Checks
All paid ops declare 402 response
MUST
10pt
All x-payment-info valid
MUST
10pt
Challenge has Cache-Control: no-store
MUST
5pt
Challenge digest on POST
SHOULD
3pt
Challenge has expires
SHOULD
3pt
Challenge has Problem Details
SHOULD
2pt
Challenge has required params
MUST
5pt
Challenge has WWW-Authenticate
MUST
5pt
Challenge returns 402
MUST
10pt
Correct Content-Type
MUST
5pt
Has Cache-Control on discovery
SHOULD
5pt
Has input schemas
SHOULD
5pt
Has llms.txt
SHOULD
5pt
Has /openapi.json at root
MUST
10pt
Has required top-level fields
MUST
10pt
Served over HTTPS
MUST
10pt
Uses standard categories
SHOULD
2pt
1 issue
- Endpoint POST /api/speech returned 400 (expected 402)
Paid Operations (2)
POST /api/speech dynamic
Create a paid StableVoice TTS job. Reserve an output slot on stableupload.dev first, then pass that slot as output. Poll /api/jobs/{jobId} until result.outputs.audio.publicUrl is ready.
- Amount
- map[currency:USD max:1.00 min:0.02 mode:dynamic]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
Non-standard x-payment-info fields:
price: map[currency:USD max:1.00 min:0.02 mode:dynamic] protocols: [map[x402:map[]] map[mpp:map[currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo]]]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| clientRequestId | string | No | |
| format | string | No |
enum: wav, mp3 default: wav
|
| language | string | No |
Language ID. Required for chatterbox-multilingual.
enum: ar, da, de, el, en, es, fi, fr, he, hi, it, ja, ko, ms, nl, no, pl, pt, ru, sv, sw, tr, zh default: en
|
| model | string | No |
Self-hosted Modal model. chatterbox-turbo is fastest; chatterbox adds expressive controls; chatterbox-multilingual supports 23 languages.
enum: chatterbox-turbo, chatterbox, chatterbox-multilingual, f5-tts, voxcpm2 default: chatterbox-turbo
|
| options | object | No | |
| output | object | Yes | Reserved StableUpload output slot for the generated audio. |
| referenceAudioUrl | string (uri) | No | Optional StableUpload URL for a custom voice reference. WAV/MP3/M4A. Required reference duration depends on the model: voxcpm2 takes 3-10s, f5-tts takes 10-15s, chatterbox-* takes 5-15s. |
| referenceText | string | No | Optional transcript of referenceAudioUrl. Used by f5-tts and voxcpm2 to skip on-worker Whisper transcription. Ignored by chatterbox-*. |
| text | string | Yes | Text to synthesize, max 2500 characters. |
| type | string | No |
default: stablevoice-speech
|
| voice | string | No |
Bundled reference voice. Match to the character's identity using `voiceGuide` from /api/voices — each voice carries an accent/ethnicity tag (Indian, Australian, Slavic, Black, Latina, American, older country) and a casting cue. Default Lucy is a neutral North American female. Ignored only when referenceAudioUrl is supplied.
enum: Aaron, Abigail, Anaya, Andy, Archer, Brian, Chloe, Dylan, Emmanuel, Ethan, Evelyn, Gavin, Gordon, Ivan, Laura, Lucy, Madison, Marisol, Meera, Walter default: Lucy
|
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| deduplicated | boolean | - |
| jobId | string | - |
| price | string | - |
| status | string | - |
| type | string | - |
POST /api/recording-tokens dynamic
Mint a one-hour recording URL the recordee opens in a browser. They speak the optional suggestedText, we transcode their audio to MP3 and PUT it into the StableUpload slot you reserved. The slot's publicUrl is what you'll plug into /api/speech as referenceAudioUrl. Pass StableUpload uploadUrlExpiresAt as expiresAt so the recording URL never outlives the upload slot. Advanced callers may pass requestedExpiresAt only when they also reserved a matching longer StableUpload upload URL and pass its uploadUrlExpiresAt as expiresAt.
- Amount
- map[currency:USD max:0.01 min:0.01 mode:dynamic]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
Non-standard x-payment-info fields:
price: map[currency:USD max:0.01 min:0.01 mode:dynamic] protocols: [map[x402:map[]] map[mpp:map[currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo]]]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| expiresAt | string (date-time) | Yes | Required StableUpload uploadUrlExpiresAt value. We clamp the recording-token TTL to this value. Do not pass StableUpload's public-file retention expiresAt. |
| postFields | object | No | Required form fields when posting to postUrl. |
| postUrl | string (uri) | No | Presigned POST URL from StableUpload. Pair with postFields. |
| publicUrl | string (uri) | Yes | StableUpload public URL where the resulting MP3 will live. Must end with .mp3. |
| requestedExpiresAt | No | Advanced optional epoch timestamp, seconds or milliseconds, for an explicit recording-link expiry. Default is 1 hour; max is 24 hours and still clamped to StableUpload uploadUrlExpiresAt. | |
| speakerLabel | string | No | Optional name shown on the recording page ("Recording for: …"). |
| suggestedText | string | No | Optional script the recordee will see on the recording page (max 500 chars). Improves clone quality with consistent prosody. |
| uploadUrl | string (uri) | No | Presigned PUT URL from StableUpload. Provide either uploadUrl or postUrl+postFields. |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| expiresAt | string (date-time) | - |
| publicUrl | string (uri) | - |
| recordUrl | string (uri) | - |
| token | string | - |
Payment Methods
- Methods
- -
- Intents
- -
- Currencies (discovery)
- -
- Multiple Challenges
- No
Security
- TLS Version
- TLSv1.3
- Challenge ID Unique
- -
- Challenge ID Length
- -
- Digest Binding
- -
Uptime
- Discovery
- Reachable (278ms)
- Challenge
- Reachable (164ms)
- Last Checked
Schema Completeness
- Paid Operations
- 2
- With Input Schema
- 2
- With Description
- 2
Documentation
- Homepage
- -
- API Reference
- -
- llms.txt
- -
Discovery
- OpenAPI URL
- https://stablevoice.dev/openapi.json
- OpenAPI Version
- 3.1.0
- Service Version
- 0.1.0
- Document Size
- 41327 bytes
- Document Hash
- f6f52673827090ae571d4044880efd57bf8f7def1f03b0be1c10fff6a25444c2
Version History (1 snapshots)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
- document hash changed (no semantic differences detected)
Scan snapshots
| Date | Grade | Score | Response | Status |
|---|---|---|---|---|
| 2026-04-29 | C | 64% | 700ms | Up |