Api Endpoint

voice.forgemesh.io

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.

Open interactive test console

Offering

Provider
voice.forgemesh.io
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Creative
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://voice.forgemesh.io/v1/tts/custom
MIME type
audio/wav
First seen
2026-10-16T01:51:10.599Z
Last seen
Tags
None supplied

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.005 USDC
Atomic price: 5000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "5000",
    "payTo": "0x962794FB8aD92941fAf1ab446b9e30637B86F331"
  }
]

Observed health

Status
Healthy
Latest latency
48 ms
Average latency
520 ms
HTTP status
200
Last checked
Reachability
100% over 14 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "POST"
      ]
    },
    "bodyType": {
      "type": "string",
      "enum": [
        "json",
        "form-data",
        "text"
      ]
    },
    "body": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000,
          "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": {
          "type": "string",
          "enum": [
            "M1",
            "M2",
            "M3",
            "M4",
            "M5",
            "F1",
            "F2",
            "F3",
            "F4",
            "F5",
            "Storyteller",
            "Narrator",
            "Announcer",
            "Assistant",
            "Urgent",
            "Sage",
            "Spark",
            "Anchor",
            "Velvet",
            "Echo"
          ],
          "description": "Voice name. Standard voices M1-M5/F1-F5; persona voices require Custom tier."
        },
        "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 speed 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"
        }
      },
      "required": [
        "text"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "additionalProperties": false
}

Output schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "example": {
      "type": "object",
      "properties": {
        "content_type": {
          "type": "string",
          "const": "audio/wav"
        },
        "audio": {
          "type": "string",
          "description": "Inline WAV bytes in the HTTP response body"
        }
      }
    }
  },
  "required": [
    "type"
  ]
}