# ForgeMesh Custom Text-to-Speech (x402)

> ForgeMesh Custom Text-to-Speech (x402) is a paid API for AI agents from tts.forgemesh.io, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-14).

Converts text to high-quality WAV audio in 31 languages using expressive voice personas with configurable speed and quality, paid per-call via x402 USDC micropayment.

## Facts

- Endpoint: POST https://tts.forgemesh.io/v1/tts/custom
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forgemesh-custom-text-to-speech-x402-5a0b1df8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_QgyP8xl9H4zM4FeAqhedD

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability forgemesh-custom-text-to-speech-x402-5a0b1df8 -d '<json body>'
```

Example prompt: Can you read this aloud in Spanish using a warm female voice (F2) at normal speed with standard quality — here's the text: 'Bienvenidos a nuestra plataforma de aprendizaje. Esperamos que disfruten la experiencia.'

## When to prefer this

Choose this endpoint when you need pay-per-call TTS with no API key or account setup, require broad multilingual coverage (31 languages), want expressive persona voices beyond generic TTS, or need fine-grained control over speech speed and synthesis quality. Ideal for agents operating in micropayment-native (x402) environments or when avoiding subscription-based TTS APIs.

## Known failure modes

- Payment failure if x402 USDC funds are insufficient — HTTP 402 returned
- Text exceeds 2000 character limit — validation error
- Unsupported language code submitted — enum validation error
- Speed outside 0.7–2.0 range — validation error
- Steps outside 1–100 range — validation error
- Persona voice requested on non-Custom tier — access denied or fallback
- Empty or missing text field — validation error

## How this service works

Paid text-to-speech via x402. WAV audio in 31 languages, OpenAI-compatible, no API keys.

## Output

Returns a 44.1kHz 16-bit mono WAV audio file inline as audio/wav content, containing the synthesized speech corresponding to the submitted text, ready for playback or downstream processing.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "lang": {
   "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"
   ],
   "type": "string",
   "description": "Language code; 31 languages supported"
  },
  "text": {
   "type": "string",
   "maxLength": 2000,
   "minLength": 1,
   "description": "Text to synthesize into speech, max 2000 characters. Use non-long routes for 1-500 chars and -long routes for 501-2000 chars."
  },
  "speed": {
   "type": "number",
   "maximum": 2,
   "minimum": 0.7,
   "description": "Pro/Custom expressive speed control, 0.7-2.0. Presets: slow 0.7, normal 1.0, fast 1.3, rapid 1.6"
  },
  "steps": {
   "type": "integer",
   "maximum": 100,
   "minimum": 1,
   "description": "Pro/Custom quality control, 1-100. Presets: draft 4, standard 8, high 16, ultra 24"
  },
  "voice": {
   "enum": [
    "M1",
    "M2",
    "M3",
    "M4",
    "M5",
    "F1",
    "F2",
    "F3",
    "F4",
    "F5",
    "Storyteller",
    "Narrator",
    "Announcer",
    "Assistant",
    "Urgent",
    "Sage",
    "Spark",
    "Anchor",
    "Velvet",
    "Echo"
   ],
   "type": "string",
   "description": "Voice name. Standard voices M1-M5/F1-F5; persona voices require Custom tier."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "description": "44.1kHz 16-bit mono WAV speech audio returned inline",
  "content_type": "audio/wav"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forgemesh-custom-text-to-speech-x402-5a0b1df8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tts.forgemesh.io](https://www.zero.xyz/host/tts.forgemesh.io/llms.txt)
