# ForgeMesh Text-to-Speech (Base Route)

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

Converts short text (1–500 characters) into a WAV audio file using a selected voice and language, paid per-call via x402 with no API key required.

## Facts

- Endpoint: POST https://tts.forgemesh.io/v1/tts/base
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forgemesh-text-to-speech-base-route-6375b455
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_B-ELHEIr5ykAZ8jK42sm0

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-text-to-speech-base-route-6375b455 -d '<json body>'
```

Example prompt: Read this aloud using a male voice (M2) in Spanish: 'Bienvenidos a nuestra tienda, estamos felices de atenderte hoy.'

## When to prefer this

Choose this endpoint when you need short-form TTS (1–500 characters) in one of 31 supported languages, want OpenAI-compatible behavior, and prefer pay-per-call micro-payments via x402 rather than managing API keys or subscriptions. Ideal for agents that need occasional TTS without long-term API key setup.

## Known failure modes

- Text exceeds 2000 characters — use the -long route instead
- Invalid or unsupported language code returns a validation error
- Invalid voice ID (outside M1-M5/F1-F5) returns a validation error
- Text is empty or below minimum length of 1 character
- x402 payment failure if wallet has insufficient USDC balance
- Network timeout if audio rendering takes too long

## 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 (content-type: audio/wav) containing the synthesized speech of the submitted text in the chosen language and voice.

## 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."
  },
  "voice": {
   "enum": [
    "M1",
    "M2",
    "M3",
    "M4",
    "M5",
    "F1",
    "F2",
    "F3",
    "F4",
    "F5"
   ],
   "type": "string",
   "description": "Standard voice: M1-M5 or F1-F5"
  }
 }
}
```

## 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-text-to-speech-base-route-6375b455/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)
