# ForgeMesh TTS Batch-Long (501–2000 chars)

> ForgeMesh TTS Batch-Long (501–2000 chars) 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 a batch of longer text items (501–2000 total characters) to WAV audio across 31 languages and 10 voice options, paid via x402 micropayment with no API key required.

## Facts

- Endpoint: POST https://tts.forgemesh.io/v1/tts/batch-long
- 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-tts-batch-long-501-2000-chars-a364c945
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MYWUjMOGfsW2UIbp4RwP1

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-tts-batch-long-501-2000-chars-a364c945 -d '<json body>'
```

Example prompt: Convert these two paragraphs to spoken audio in French using voice F2 — the first is 'Bienvenue sur notre plateforme, nous sommes ravis de vous accueillir.' and the second is 'Pour toute question, veuillez contacter notre équipe de support disponible vingt-quatre heures sur vingt-quatre.'

## When to prefer this

Choose this endpoint when your total text across all batch items is between 501 and 2000 characters. For shorter batches (≤500 total chars), use /v1/tts/batch instead. This endpoint is ideal when you need multilingual TTS without managing API keys and are comfortable paying $0.005 USDC per call via x402. It supports up to 20 text items in one request and offers 10 standard voices.

## Known failure modes

- Payment failure: x402 micropayment not completed or insufficient USDC balance — request rejected before processing
- Text too long: total character count across all items exceeds 2000 — use chunking or a different endpoint tier
- Invalid language code: unsupported lang enum value causes validation error
- Invalid voice: voice code outside M1-M5 or F1-F5 range causes schema rejection
- Too many items: more than 20 items in the batch array causes a 400 validation error
- Empty text: minLength:1 violation if any text field is blank

## How this service works

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

## Output

Returns a JSON object with an 'items' array, where each element contains a base64-encoded WAV audio string, the audio duration in seconds (e.g. 1.5), the sample rate (44100 Hz), and the format identifier ('wav'). One item is returned per input batch item in the same order.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "items": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "text"
    ],
    "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 for this batch item"
     },
     "voice": {
      "enum": [
       "M1",
       "M2",
       "M3",
       "M4",
       "M5",
       "F1",
       "F2",
       "F3",
       "F4",
       "F5"
      ],
      "type": "string",
      "description": "Standard voice: M1-M5 or F1-F5"
     }
    },
    "additionalProperties": false
   },
   "maxItems": 20,
   "minItems": 1,
   "description": "Array of standard-voice text items. Total text across all items must be <= 2000 characters; use /v1/tts/batch for <=500 total chars and /v1/tts/batch-long for 501-2000 total chars."
  },
  "defaults": {
   "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"
    },
    "voice": {
     "enum": [
      "M1",
      "M2",
      "M3",
      "M4",
      "M5",
      "F1",
      "F2",
      "F3",
      "F4",
      "F5"
     ],
     "type": "string",
     "description": "Standard voice: M1-M5 or F1-F5"
    }
   },
   "description": "Default standard voice and language for all items",
   "additionalProperties": false
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "items": [
   {
    "format": "wav",
    "duration_s": 1.5,
    "sample_rate": 44100,
    "audio_base64": "..."
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forgemesh-tts-batch-long-501-2000-chars-a364c945/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)
