{"openapi":"3.1.0","info":{"title":"Text-to-Speech & Voice Generation","version":"0.1.0","summary":"Give Your Agent A Voice with pay-per-call x402 speech.","description":"Paid text-to-speech via x402. WAV audio in 31 languages, OpenAI-compatible, no API keys.","contact":{"email":"clawdbotworker@gmail.com"},"x-guidance":"Use this API when an agent needs spoken audio: convert text to speech, generate a voiceover, narrate a script, read an alert aloud, or add a spoken reply to a chatbot, in any of 31 languages. Returns WAV (FLAC/OGG via the OpenAI-compatible route) streamed directly, no API key, no signup, pay-per-call in USDC on Base via x402. Example questions: 'Read this text aloud in a male voice', 'Generate a Spanish voiceover for this paragraph', 'Give me a Storyteller-voice narration', 'Speak this alert fast and urgently', 'Batch-convert these 10 replies to audio', 'Voice this like the OpenAI TTS API'. Routes: /v1/tts/base ($0.001, <=500 chars) and -long ($0.003, 501-2000 chars) use 10 standard voices (M1-M5, F1-F5); /v1/tts/pro ($0.003) and -long ($0.006) add speed (0.7x-2.0x) and quality-step (1-100) control; /v1/tts/custom ($0.005) and -long ($0.01) unlock 10 persona voices (Storyteller, Narrator, Announcer, Urgent, Velvet, Sage, Spark, Anchor, Echo, Assistant); /v1/audio/speech ($0.001) and -long ($0.003) are OpenAI-compatible drop-ins; /v1/tts/batch ($0.002) and -long ($0.005) synthesize up to 20 items per call. 31 languages supported; use -long routes for text over 500 characters.","x-voice-tier-rules":{"base_voices":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"standard_voices":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"persona_voices":["Storyteller","Narrator","Announcer","Assistant","Urgent","Sage","Spark","Anchor","Velvet","Echo"],"persona_endpoint":"/v1/tts/custom","openai_endpoint_standard_voices_only":true},"x-expressive-controls":{"speed":{"tier":"pro_or_custom","parameter":"speed","range":[0.7,2],"default":1.05,"presets":{"slow":0.7,"normal":1,"fast":1.3,"rapid":1.6}},"quality":{"tier":"pro_or_custom","parameter":"steps","range":[1,100],"default":8,"presets":{"draft":4,"standard":8,"high":16,"ultra":24}},"persona_voices":{"tier":"custom","endpoint":"/v1/tts/custom","note":"Persona voices are prebuilt expressive blends. Use the persona voice name in the voice field.","recipes":{"Storyteller":"warm measured narration, M1+F3 blend, slower pace","Narrator":"neutral documentary narration, M3+F3 blend","Announcer":"crisp authoritative announcement voice, M2+M5 blend","Assistant":"friendly clear assistant voice, F1+F4 blend","Urgent":"sharp alert voice, M4+F2 blend, faster pace","Sage":"deep calm wellness voice","Spark":"energetic youthful voice","Anchor":"authoritative report voice","Velvet":"warm rich premium voice","Echo":"androgynous neutral accessibility voice"}},"route_rules":{"base":"10 base voices only (M1-M5, F1-F5); no speed, steps, or personas","pro":"10 base voices only (M1-M5, F1-F5) with speed and steps; no personas","custom":"all 20 voices: base voices plus Custom-only persona voices with speed and steps","openai":"OpenAI-shaped request for the 10 base voices only; no personas","batch":"10 base voices only (M1-M5, F1-F5); no speed, steps, or personas"}}},"servers":[{"url":"https://voice.forgemesh.io"}],"paths":{"/v1/tts/base":{"post":{"operationId":"generateStandardVoice","summary":"Generate Standard Voice ≤500 chars","description":"Text-to-speech synthesis in 1 of 10 standard voices (5 male M1-M5, 5 female F1-F5) across 31 languages, up to 500 characters, returned as inline WAV audio. Use it to: give an agent a spoken reply, read an alert aloud, narrate a short UI prompt, add voice to a chatbot response, speak a confirmation message. Cheapest tier. USDC on Base via x402, no API key, no signup.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.001 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000,"description":"Text to synthesize. Use non-long routes for 1-500 chars and -long routes for 501-2000 chars."},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"audio/wav":{"schema":{"type":"string","format":"binary","description":"Raw audio bytes"}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/v1/tts/base-long":{"post":{"operationId":"generateStandardVoiceLong","summary":"Generate Standard Voice 501-2000 chars","description":"Text-to-speech synthesis in 1 of 10 standard voices (M1-M5 male, F1-F5 female) across 31 languages, for longer text from 501 up to 2000 characters, returned as inline WAV audio. Use it to: read a full paragraph aloud, narrate a multi-sentence agent summary, voice an email or article excerpt, turn a longer LLM response into spoken audio, generate audio for a script section. USDC on Base via x402, no API key.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"3000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.003 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000,"description":"Text to synthesize. Use non-long routes for 1-500 chars and -long routes for 501-2000 chars."},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"audio/wav":{"schema":{"type":"string","format":"binary","description":"Raw audio bytes"}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/v1/tts/pro":{"post":{"operationId":"generateControlledVoice","summary":"Generate Controlled Voice ≤500 chars","description":"Text-to-speech with speed (0.7x-2.0x) and quality-step (1-100) control, 1 of 10 standard voices across 31 languages, up to 500 characters, returned as WAV audio. Use it to: speak an urgent alert faster, slow a reading for clarity, tune synthesis quality against latency, produce a paced voice cue for a UI, generate a rushed or calm-toned notification. USDC on Base via x402, no API key.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"3000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.003 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000,"description":"Text to synthesize. Use non-long routes for 1-500 chars and -long routes for 501-2000 chars."},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"},"speed":{"type":"number","minimum":0.7,"maximum":2,"description":"Pro/Custom expressive control, 0.7-2.0. Presets: slow 0.7, normal 1.0, fast 1.3, rapid 1.6"},"steps":{"type":"integer","minimum":1,"maximum":100,"description":"Pro/Custom quality control, 1-100. Presets: draft 4, standard 8, high 16, ultra 24"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"audio/wav":{"schema":{"type":"string","format":"binary","description":"Raw audio bytes"}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/v1/tts/pro-long":{"post":{"operationId":"generateControlledVoiceLong","summary":"Generate Controlled Voice 501-2000 chars","description":"Text-to-speech with speed (0.7x-2.0x) and quality-step (1-100) control, 1 of 10 standard voices across 31 languages, for 501-2000 characters, returned as WAV audio. Use it to: pace a longer narration like a podcast intro, read a multi-paragraph script at a chosen speed, produce a slow deliberate reading of instructions, voice an extended alert or briefing. USDC on Base via x402.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.006 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000,"description":"Text to synthesize. Use non-long routes for 1-500 chars and -long routes for 501-2000 chars."},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"},"speed":{"type":"number","minimum":0.7,"maximum":2,"description":"Pro/Custom expressive control, 0.7-2.0. Presets: slow 0.7, normal 1.0, fast 1.3, rapid 1.6"},"steps":{"type":"integer","minimum":1,"maximum":100,"description":"Pro/Custom quality control, 1-100. Presets: draft 4, standard 8, high 16, ultra 24"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"audio/wav":{"schema":{"type":"string","format":"binary","description":"Raw audio bytes"}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/v1/tts/custom":{"post":{"operationId":"generatePersonaVoice","summary":"Generate Persona Voice ≤500 chars","description":"Expressive text-to-speech in any of 20 voices: 10 standard (M1-M5, F1-F5) plus 10 personas (Storyteller, Narrator, Announcer, Urgent, Velvet, Sage, Spark, Anchor, Echo, Assistant), with speed and quality control, up to 500 characters, WAV output. Use it to: voice a game character, narrate a branded assistant reply, add a dramatic announcer line, give a chatbot personality-driven audio. USDC on Base.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"5000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.005 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000,"description":"Text to synthesize. Use non-long routes for 1-500 chars and -long routes for 501-2000 chars."},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5","Storyteller","Narrator","Announcer","Assistant","Urgent","Sage","Spark","Anchor","Velvet","Echo"],"description":"Standard voice or Custom-tier persona voice"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"},"speed":{"type":"number","minimum":0.7,"maximum":2,"description":"Pro/Custom expressive control, 0.7-2.0. Presets: slow 0.7, normal 1.0, fast 1.3, rapid 1.6"},"steps":{"type":"integer","minimum":1,"maximum":100,"description":"Pro/Custom quality control, 1-100. Presets: draft 4, standard 8, high 16, ultra 24"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"audio/wav":{"schema":{"type":"string","format":"binary","description":"Raw audio bytes"}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/v1/tts/custom-long":{"post":{"operationId":"generatePersonaVoiceLong","summary":"Generate Persona Voice 501-2000 chars","description":"Expressive text-to-speech in any of 20 voices, standard M1-M5/F1-F5 plus personas like Storyteller, Narrator, Announcer, Urgent, Velvet, with speed and quality control, for 501-2000 characters, WAV output. Use it to: narrate a longer story or audiobook chapter, voice an extended character monologue, produce a branded multi-sentence announcement, script a persona-driven podcast segment. USDC on Base via x402.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.01 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000,"description":"Text to synthesize. Use non-long routes for 1-500 chars and -long routes for 501-2000 chars."},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5","Storyteller","Narrator","Announcer","Assistant","Urgent","Sage","Spark","Anchor","Velvet","Echo"],"description":"Standard voice or Custom-tier persona voice"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"},"speed":{"type":"number","minimum":0.7,"maximum":2,"description":"Pro/Custom expressive control, 0.7-2.0. Presets: slow 0.7, normal 1.0, fast 1.3, rapid 1.6"},"steps":{"type":"integer","minimum":1,"maximum":100,"description":"Pro/Custom quality control, 1-100. Presets: draft 4, standard 8, high 16, ultra 24"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"audio/wav":{"schema":{"type":"string","format":"binary","description":"Raw audio bytes"}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/v1/audio/speech":{"post":{"operationId":"generateOpenAiCompatibleVoice","summary":"Generate OpenAI-Compatible Voice ≤500 chars","description":"OpenAI-compatible text-to-speech endpoint (input, voice, response_format) for drop-in use with code already built against the OpenAI TTS API, 1 of 10 standard voices, up to 500 characters, WAV/FLAC/OGG output. Use it to: swap OpenAI TTS calls for a pay-per-call x402 alternative, generate speech from an existing OpenAI-style client, avoid API-key management for short text-to-audio requests. USDC on Base.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.001 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"maxLength":2000,"description":"OpenAI-compatible input text. Use non-long route for 1-500 chars and -long route for 501-2000 chars."},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"model":{"type":"string","description":"Optional compatibility field; ForgeMesh Voice is always used"},"response_format":{"type":"string","enum":["wav","flac","ogg"],"description":"Requested audio format"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"audio/wav":{"schema":{"type":"string","format":"binary","description":"Raw audio bytes"}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/v1/audio/speech-long":{"post":{"operationId":"generateOpenAiCompatibleVoiceLong","summary":"Generate OpenAI-Compatible Voice 501-2000 chars","description":"OpenAI-compatible text-to-speech endpoint (input, voice, response_format) for drop-in use with existing OpenAI TTS clients, 1 of 10 standard voices, for 501-2000 characters, WAV/FLAC/OGG output. Use it to: voice a longer OpenAI-formatted request without an API key, migrate an existing TTS integration to pay-per-call pricing, synthesize extended text through a familiar request shape. USDC on Base via x402.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"3000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.003 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"maxLength":2000,"description":"OpenAI-compatible input text. Use non-long route for 1-500 chars and -long route for 501-2000 chars."},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"model":{"type":"string","description":"Optional compatibility field; ForgeMesh Voice is always used"},"response_format":{"type":"string","enum":["wav","flac","ogg"],"description":"Requested audio format"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"audio/wav":{"schema":{"type":"string","format":"binary","description":"Raw audio bytes"}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/v1/tts/batch":{"post":{"operationId":"generateBatchVoices","summary":"Generate Batch Voices ≤500 total chars","description":"Batch text-to-speech: synthesize up to 20 separate text items in a single call, standard voices only, up to 500 total characters, returns JSON with base64 WAV audio plus duration and sample rate per item. Use it to: voice a list of short UI strings at once, generate audio for multiple notification templates, batch-produce voice lines for a menu or form, synthesize several short replies in one request. USDC on Base via x402.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.002 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","minItems":1,"maxItems":20,"description":"Array of text items. Total text across all items must be <= 2000 chars; use /v1/tts/batch for <=500 total chars and /v1/tts/batch-long for 501-2000 total chars.","items":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"}},"additionalProperties":false}},"defaults":{"type":"object","properties":{"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"}},"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"audio_base64":{"type":"string"},"duration_s":{"type":"number"},"format":{"type":"string"},"sample_rate":{"type":"integer"}}}}}}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/v1/tts/batch-long":{"post":{"operationId":"generateBatchVoicesLong","summary":"Generate Batch Voices 501-2000 total chars","description":"Batch text-to-speech: synthesize up to 20 text items in a single call, standard voices only, for 501-2000 total characters, returns JSON with base64 WAV audio plus duration and sample rate per item. Use it to: batch-voice a longer set of messages, produce audio for a multi-section script or FAQ, generate several paragraph-length voice clips in one request without repeated calls. USDC on Base via x402.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}},{"mpp":{}}],"offers":[{"intent":"charge","method":"evm","amount":"5000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"$0.005 USDC on Base, EIP-3009 authorization"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","minItems":1,"maxItems":20,"description":"Array of text items. Total text across all items must be <= 2000 chars; use /v1/tts/batch for <=500 total chars and /v1/tts/batch-long for 501-2000 total chars.","items":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"}},"additionalProperties":false}},"defaults":{"type":"object","properties":{"voice":{"type":"string","enum":["M1","M2","M3","M4","M5","F1","F2","F3","F4","F5"],"description":"Standard voice: M1-M5 or F1-F5"},"lang":{"type":"string","enum":["en","ko","ja","ar","bg","cs","da","de","el","es","et","fi","fr","hi","hr","hu","id","it","lt","lv","nl","pl","pt","ro","ru","sk","sl","sv","tr","uk","vi"],"description":"Language code; 31 languages supported"}},"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful synthesis response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"audio_base64":{"type":"string"},"duration_s":{"type":"number"},"format":{"type":"string"},"sample_rate":{"type":"integer"}}}}}}}}},"400":{"description":"Invalid request or wrong pricing bucket"},"402":{"description":"Payment Required"}}}},"/health":{"get":{"operationId":"health","summary":"Health check","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"service":{"type":"string"},"upstream":{"type":"string"}}}}}}}}},"/metrics":{"get":{"operationId":"metrics","summary":"Queue/cache/saturation metrics","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"service":{"type":"string"},"queue":{"type":"object","properties":{"active":{"type":"integer"},"queued":{"type":"integer"},"max_concurrency":{"type":"integer"},"max_queue":{"type":"integer"},"timeout_ms":{"type":"integer"}}},"counters":{"type":"object"},"cache":{"type":"object","properties":{"enabled":{"type":"boolean"},"dir":{"type":"string"}}}}}}}}}}},"/v1/voices":{"get":{"operationId":"listVoices","summary":"Voice catalog","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"voices":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"tier":{"type":"string"}}}},"personas":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"tier":{"type":"string"},"description":{"type":"string"}}}},"expressive_controls":{"type":"object"},"languages":{"type":"array","items":{"type":"string"}},"tiers":{"type":"object"},"char_buckets":{"type":"object","properties":{"short":{"type":"string"},"medium":{"type":"string"}}}}}}}}}}},"/.well-known/x402.json":{"get":{"operationId":"x402Discovery","summary":"x402 discovery","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"provider":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"description":{"type":"string"}}},"resources":{"type":"array","items":{"type":"object","properties":{"resource":{"type":"string"},"type":{"type":"string"},"metadata":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}}}}}}}}}}}}},"/openapi.json":{"get":{"operationId":"openapi","summary":"This spec","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"This OpenAPI 3.1 document"}}}}}}},"/llms.txt":{"get":{"operationId":"llmsTxt","summary":"LLM discoverability","security":[],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"provider":{"name":"ForgeMesh Labs","catalog":"POST https://x402.forgemesh.io/fleet-products ($0.05)","fleet":"11 x402 services and counting, 500+ paid endpoints, from $0.001 — one wallet, no signup, atomic USDC settlement on Base. Free index: https://x402.forgemesh.io/llms.txt"}}