{
  "data": {
    "a": {
      "slug": "fish-audio-tts",
      "name": "Fish Audio TTS API",
      "vendor": "Fish Audio",
      "vendorUrl": "https://fish.audio",
      "kind": "model",
      "category": "text-to-speech",
      "summary": "Fish Audio's API turns text into speech with the `s2.1-pro` model in 83 languages, over a REST endpoint, a timestamped stream and a WebSocket that accepts text as it is produced.",
      "url": "https://www.anchorterminal.com/tools/fish-audio-tts",
      "markdownUrl": "https://www.anchorterminal.com/tools/fish-audio-tts.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/fish-audio-tts.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/fish-audio-tts.json",
      "dns": "fish-audio-tts.grade.anchorterminal.com",
      "repo": "https://github.com/fishaudio/fish-audio-python",
      "license": "Apache-2.0 (Python SDK), MIT (JavaScript SDK)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.fish.audio",
      "packages": [
        {
          "registry": "pypi",
          "name": "fish-audio-sdk"
        },
        {
          "registry": "npm",
          "name": "fish-audio"
        }
      ],
      "auth": "mixed",
      "authNotes": "`Authorization: Bearer` API key created in the web app after a browser signup with email verification. A key takes a name and an optional expiry. The `model` request header selects the model. The hosted MCP server at `https://api.fish.audio/mcp` signs in by OAuth and is bound to one team (https://docs.fish.audio/developer-guide/getting-started/api-key, https://docs.fish.audio/overview/mcp).",
      "pricing": "usage",
      "pricingNotes": "$15 per million UTF-8 bytes of input text on `s2.1-pro`, `s2-pro` and `s1`, and $50 per million on `drama-3`, billed at a launch price of $10 per million until 12 November 2026 17:00 UTC. Prepaid, with no subscription or monthly minimum. `s2.1-pro-free` costs $0 under fair-use limits, and the changelog says it is free through 30 November 2026. An agent can start on the free model once a person has signed up. Whether a card is needed is not stated. Concurrency rises with total prepaid amount. MCP usage draws on web app plan credits, not API credits (https://docs.fish.audio/developer-guide/models-pricing/pricing-and-rate-limits).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI file or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 47,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 5213,
        "pypiWeekly": 34220,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.fish.audio/features/text-to-speech",
      "llmsTxt": "https://docs.fish.audio/llms.txt",
      "openapi": "https://docs.fish.audio/api-reference/openapi.json",
      "capabilities": [
        "speech.tts",
        "speech.streaming",
        "speech.voices",
        "speech.languages",
        "voice.clone"
      ],
      "tags": [
        "hosted",
        "usage-priced",
        "prepaid",
        "free-tier",
        "closed-source",
        "python",
        "typescript",
        "openapi",
        "llms-txt",
        "mcp",
        "streaming",
        "status-page",
        "open-weights"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.5,
        "grade": "C",
        "agentReady": false,
        "rank": 601,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 72,
          "payments": 30,
          "reliability": 77,
          "schema": 84,
          "security": 35,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "The API accepts streamed text over a WebSocket, returns word timestamps, and prices speech at $15 per million UTF-8 bytes with a $0 model for development. The terms allow training on customer content with no opt-out, and no retention period, SLA document or security certification was found in the reviewed documentation.",
        "bestFor": "Voice agents that stream LLM text into speech at a low per-byte price, multilingual output from one model, directed performances with Drama 3, and teams moving from OpenAI or ElevenLabs request shapes.",
        "strengths": [
          "Public OpenAPI 3.1 file, llms.txt, Markdown pages and two installable agent skills for the SDKs and the raw API",
          "WebSocket input takes text as it is produced, with `flush` and `stop` events and a variant that returns word timestamps",
          "`s2.1-pro-free` runs the production model at $0 under fair-use limits, through 30 November 2026",
          "Drama 3 takes plain-language performance directions on the same `POST /v1/tts` request, priced at $50 per million bytes and $10 until 12 November 2026",
          "S1 retirement was announced on 8 October 2026 for 31 December 2026, with a migration guide"
        ],
        "weaknesses": [
          "The terms allow Usage Data and Content to train models, with no opt-out found",
          "An unrecognised `model` header falls back to paid `s2.1-pro` without an error",
          "The free model's status component shows downtime on 9 days from 5 August, the longest 58 minutes on 6 August 2026",
          "npm `fish-audio` is still 0.1.0 from March 2026 and defaults to the deprecated `s1`, and neither SDK exposes the `language` field",
          "No security.txt, certification, DPA text or sub-processor list found in the pages read"
        ],
        "agentNotes": [
          "Send the `model` header on every request and check its spelling. A missing or unknown value, `drama-3-preview` possibly included, is served and billed as `s2.1-pro`.",
          "Budget by UTF-8 bytes, not characters. Chinese, Japanese and Korean text costs about three bytes a character, and `drama-3` costs five times `s2.1-pro` after 12 November 2026.",
          "Retry 429 and 5xx with exponential backoff. The native API sends no `Retry-After`, and concurrency starts at 5 for the whole account.",
          "Use `[bracket]` cues on the S2 family and `drama-3`. `(parenthesis)` tags from `s1` are read aloud as text.",
          "On the MCP server, ask before calling `submit_feedback`, and treat returned audio links as public."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.5
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 72,
          "payments": 30,
          "reliability": 77,
          "schema": 84,
          "security": 35,
          "transparency": 44
        },
        "provenanceScore": 78,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "lastMoved": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install fish-audio-sdk",
        "http": "curl --request POST https://api.fish.audio/v1/tts \\\n  --header \"Authorization: Bearer $FISH_API_KEY\" \\\n  --header \"Content-Type: application/json\" \\\n  --header \"model: s2.1-pro-free\" \\\n  --data '{ \"text\": \"Hello from Fish Audio!\", \"format\": \"mp3\" }' \\\n  --output hello.mp3",
        "claudeCode": "claude mcp add --transport http fish-audio https://api.fish.audio/mcp",
        "config": {
          "mcpServers": {
            "fish-audio": {
              "url": "https://api.fish.audio/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/speech.tts",
        "tool": "https://letme.dev/fish-audio-tts"
      },
      "sameCompany": [
        "fish-audio-drama-3",
        "fish-audio-voice-cloning"
      ],
      "sameModel": [
        "fish-audio-s2-pro"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Text to speech, s2.1-pro",
          "unit": "1m-chars",
          "usd": 15,
          "note": "per million UTF-8 bytes of input text, not characters"
        },
        {
          "item": "Text to speech, s2.1-pro-free",
          "unit": "1m-chars",
          "usd": 0,
          "note": "fair-use limits, free through 30 November 2026 per the changelog"
        },
        {
          "item": "Text to speech, drama-3",
          "unit": "1m-chars",
          "usd": 50,
          "note": "per million UTF-8 bytes of input text; billed at $10 until 12 November 2026 17:00 UTC as a launch promotion"
        }
      ],
      "provenance": {
        "legalEntity": "Hanabi AI Inc.",
        "domain": "fish.audio",
        "domainRegistered": "2023-12-11",
        "endpointOnVendorDomain": true,
        "terms": "https://fish.audio/terms/",
        "privacy": "https://fish.audio/privacy/",
        "statusPage": "https://status.fish.audio",
        "changelog": "https://docs.fish.audio/developer-guide/getting-started/changelog",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The Terms of Use (effective 18 August 2024, re-read on 2026-11-03) name Hanabi AI Inc., a Delaware corporation at 1111B S Governors Ave STE 48109, Dover, DE 19904, as the provider of the Services, and cover API keys.",
          "The Privacy Policy is dated 28 August 2024.",
          "https://fish.audio/.well-known/security.txt returned 404 on 2026-10-09, 2026-10-17, 2026-10-23 and 2026-11-03.",
          "RDAP for fish.audio gives a registration date of 2023-12-11.",
          "The terms forbid crawling or scraping any page of the Services by manual or automated means. robots.txt on fish.audio, read on 2026-11-03, now disallows only `/auth` for other crawlers, and the docs host signals `ai-input=yes`. We read the terms, the privacy policy, robots.txt and the docs host, and no other fish.audio page."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/fish-audio-tts.json",
      "live": {
        "slug": "fish-audio-tts",
        "probe": {
          "target": "https://api.fish.audio",
          "method": "get",
          "lastAt": "2026-11-07T18:20:25.379376274Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 232,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.95,
          "p50ms24h": 157,
          "p95ms24h": 292,
          "samples24h": 239,
          "samples30d": 7289,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 247
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 251
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.fish.audio",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:47.464784664Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "fishaudio/fish-audio-python",
            "version": "fish-audio-sdk-v1.4.0",
            "released": "2026-10-31",
            "seenAt": "2026-11-06T23:26:15.547520737Z"
          },
          {
            "registry": "npm",
            "name": "fish-audio",
            "version": "0.1.0",
            "seenAt": "2026-11-06T23:26:15.238618616Z"
          },
          {
            "registry": "pypi",
            "name": "fish-audio-sdk",
            "version": "1.4.0",
            "released": "2026-10-31",
            "seenAt": "2026-11-06T23:26:14.988215476Z"
          }
        ],
        "githubStars": 232,
        "npmWeekly": 6234,
        "pypiWeekly": 54219,
        "securityTxt": {
          "url": "https://fish.audio/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:20.344131882Z"
        },
        "llmsTxt": {
          "url": "https://docs.fish.audio/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:30.528713538Z"
        },
        "domain": {
          "domain": "fish.audio",
          "registered": "2023-12-11",
          "source": "https://rdap.centralnic.com/audio/domain/fish.audio",
          "checkedAt": "2026-11-01T14:23:11.45479758Z"
        },
        "pages": [
          {
            "url": "https://docs.fish.audio/developer-guide/getting-started/changelog",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:19.977169486Z",
            "changedAt": "2026-10-30T05:37:21.748374818Z",
            "fingerprint": "4dc1ff65de94"
          },
          {
            "url": "https://docs.fish.audio/developer-guide/models-pricing/migrate-from-s1",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:24.149813027Z",
            "changedAt": "2026-10-30T05:37:25.939039489Z",
            "fingerprint": "29de593865df"
          },
          {
            "url": "https://docs.fish.audio/developer-guide/models-pricing/pricing-and-rate-limits.md",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:28.182181909Z",
            "changedAt": "2026-11-06T13:28:52.872393018Z",
            "fingerprint": "aaebc4d08c19"
          },
          {
            "url": "https://docs.fish.audio/developer-guide/models-pricing/pricing-and-rate-limits",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:26.225587197Z",
            "changedAt": "2026-11-06T13:28:50.845780198Z",
            "fingerprint": "6e8b59e47e92"
          },
          {
            "url": "https://fish.audio/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:09:58.005204711Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "14953e34f56f"
          },
          {
            "url": "https://fish.audio/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:10:00.072075482Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "659fc3527722"
          }
        ],
        "mcpTools": {
          "url": "https://api.fish.audio/mcp",
          "checkedAt": "2026-11-07T01:44:36.445375898Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:44:36.445375898Z"
        },
        "github": {
          "repo": "fishaudio/fish-audio-python",
          "checkedAt": "2026-11-02T08:48:46.297965397Z",
          "stars": 231,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-31T05:07:38Z",
          "openIssues": 6,
          "openPRs": 9,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 4,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 46,
            "failure": 4,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-31T05:04:56Z"
          },
          "replies": {
            "sampled": 24,
            "unanswered": 5,
            "medianDays": 0.6
          }
        },
        "updatedAt": "2026-11-07T18:20:25.379376274Z"
      }
    },
    "answer": "Fish Audio TTS API scores 61.5 (C) on agent readiness against MiniMax Speech (T2A)'s 55.1 (C), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "minimax-speech",
      "name": "MiniMax Speech (T2A)",
      "vendor": "MiniMax",
      "vendorUrl": "https://www.minimax.io",
      "kind": "model",
      "category": "text-to-speech",
      "summary": "MiniMax's text-to-speech API synthesises speech with its speech-2.8 HD and Turbo models over HTTP with optional streaming, WebSocket (including bidirectional text streaming) and an asynchronous long-text API, with 300+ system voices, pronunciation dictionaries and subtitles.",
      "url": "https://www.anchorterminal.com/tools/minimax-speech",
      "markdownUrl": "https://www.anchorterminal.com/tools/minimax-speech.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/minimax-speech.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/minimax-speech.json",
      "dns": "minimax-speech.grade.anchorterminal.com",
      "transports": [
        "http",
        "websocket"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "minimax-mcp"
        },
        {
          "registry": "npm",
          "name": "minimax-mcp-js"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer API key created in the platform console under Account, API Keys. No scopes were found in the docs. Mainland China accounts use `https://api.minimaxi.com`.",
      "pricing": "usage",
      "pricingNotes": "Pay as you go from a prepaid balance. speech-2.8-hd costs $100 and speech-2.8-turbo $60 per million characters, on the sync and async APIs alike. Audio subscriptions from $5 a month add voice slots and higher request rates. No free allowance is published for speech synthesis.",
      "priceSummary": "Pay per use",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, OpenAPI and AsyncAPI files or pricing page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://platform.minimax.io/docs/api-reference/speech-t2a-http",
      "llmsTxt": "https://platform.minimax.io/docs/llms.txt",
      "openapi": "https://platform.minimax.io/docs/api-reference/speech/t2a/api/openapi.json",
      "capabilities": [
        "speech.tts",
        "speech.streaming",
        "speech.voices",
        "speech.languages"
      ],
      "tags": [
        "official",
        "hosted",
        "usage-priced",
        "prepaid",
        "openapi",
        "llms-txt",
        "mcp",
        "python",
        "typescript",
        "status-page"
      ],
      "lastRelease": "2026-01-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.1,
        "grade": "C",
        "agentReady": false,
        "rank": 879,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 13,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 56,
          "maintenance": 38,
          "payments": 20,
          "reliability": 75,
          "schema": 81,
          "security": 36,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "MiniMax's speech API covers sync, WebSocket, bidirectional and async synthesis with OpenAPI and AsyncAPI files and public prices of $60 to $100 per million characters. Text-to-Speech had only short incidents in 90 days. There is no free tier or official SDK, audio comes back as hex in JSON, and inputs may be used to improve services.",
        "bestFor": "Multilingual speech for narration and agents at mid-range prices, with strong Chinese voices by the vendor's account.",
        "strengths": [
          "OpenAPI files for sync and async synthesis and AsyncAPI files for both sockets",
          "Statuspage with a Text-to-Speech component; three incidents in 90 days, the longest 22 minutes",
          "Public prices of $60 (Turbo) and $100 (HD) per million characters on sync and async alike",
          "Pronunciation dictionaries, pause markers, timbre mixing and subtitles",
          "Official MCP servers in Python and JavaScript with a speech tool"
        ],
        "weaknesses": [
          "No free allowance for synthesis and no official SDK",
          "Sync responses carry audio as hex inside JSON, and the OpenAPI file documents only a 200 response",
          "API release notes stop at 28 October 2025, and the newest speech model dates from January 2026",
          "Terms let MiniMax use inputs to improve its services with no opt-out, and no retention period is published",
          "No security.txt, disclosure policy or certification found"
        ],
        "agentNotes": [
          "Keep sync requests under 10,000 characters and use the async API for longer text",
          "Decode the hex `audio` field before saving, or stream for text over 3,000 characters",
          "Check `base_resp.status_code` on every response, since errors arrive inside a 200",
          "Stay under 60 requests a minute and back off on code 1002",
          "Use speech-2.8-turbo for agents and HD only where quality matters, since HD costs two thirds more"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.1
          }
        ],
        "editorialScores": {
          "ergonomics": 56,
          "maintenance": 38,
          "payments": 20,
          "reliability": 75,
          "schema": 81,
          "security": 36,
          "transparency": 48
        },
        "provenanceScore": 82,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -X POST https://api.minimax.io/v1/t2a_v2 \\\n  -H \"Authorization: Bearer $MINIMAX_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"model\": \"speech-2.8-turbo\", \"text\": \"Hello from MiniMax.\", \"voice_setting\": {\"voice_id\": \"English_expressive_narrator\"}}'"
      },
      "letme": {
        "capability": "https://letme.dev/speech.tts",
        "tool": "https://letme.dev/minimax-speech"
      },
      "sameCompany": [
        "minimax-api",
        "minimax-video",
        "minimax-stt",
        "minimax-voice-cloning",
        "minimax-code",
        "minimax-m2-5",
        "minimax-m2-7",
        "minimax-m3-1-flash"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "speech-2.8-hd",
          "unit": "1m-chars",
          "usd": 100,
          "note": "sync and async"
        },
        {
          "item": "speech-2.8-turbo",
          "unit": "1m-chars",
          "usd": 60,
          "note": "sync and async"
        }
      ],
      "provenance": {
        "legalEntity": "Nanonoble Pte. Ltd.",
        "domain": "minimax.io",
        "domainRegistered": "2021-03-27",
        "endpointOnVendorDomain": true,
        "terms": "https://platform.minimax.io/protocol/terms-of-service",
        "privacy": "https://platform.minimax.io/protocol/privacy-policy",
        "statusPage": "https://status.minimax.io",
        "changelog": "https://platform.minimax.io/docs/release-notes/apis",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "Nanonoble Pte. Ltd., 152 Beach Road, #14-02 Gateway East, Singapore, is named in the terms (effective 30 March 2026) and the privacy policy (updated 30 March 2026), read on 4 November 2026 from the document text the pages carry for the browser, as on the minimax-api listing. The 8 October reader recorded both pages as unreadable.",
          "RDAP for minimax.io gives a registration date of 2021-03-27 and a transfer on 2025-01-31, as recorded on 8 October.",
          "platform.minimax.io/.well-known/security.txt returns 404 (per the 8 October check), and www.minimax.io/.well-known/security.txt redirects to the home page.",
          "The API release notes page has no entry after 28 October 2025 on 4 November. Model releases are dated on a separate page, whose newest speech model is Speech 2.8 (23 January 2026).",
          "status.minimax.io/robots.txt disallows /api/, so incidents were read from the /history pages only.",
          "firstReleased is left empty. lastRelease is Speech 2.8, dated 23 January 2026 on the model release page."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/minimax-speech.json",
      "live": {
        "slug": "minimax-speech",
        "vendorStatus": {
          "page": "https://status.minimax.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T18:21:22.955290584Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "minimax-mcp-js",
            "version": "0.0.18",
            "seenAt": "2026-11-06T23:46:02.528010346Z"
          },
          {
            "registry": "pypi",
            "name": "minimax-mcp",
            "version": "0.0.19",
            "released": "2026-08-21",
            "seenAt": "2026-11-06T23:46:02.341494165Z"
          }
        ],
        "npmWeekly": 493,
        "pypiWeekly": 2443,
        "securityTxt": {
          "url": "https://minimax.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:57.120551174Z"
        },
        "llmsTxt": {
          "url": "https://platform.minimax.io/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:04.532998601Z"
        },
        "pages": [
          {
            "url": "https://platform.minimax.io/docs/release-notes/apis",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:16:49.741417545Z",
            "changedAt": "2026-11-05T12:39:36.530148547Z",
            "fingerprint": "dc39bde39ad3"
          }
        ],
        "updatedAt": "2026-11-07T18:21:22.955290584Z"
      }
    },
    "edges": [
      {
        "by": 34,
        "category": "maintenance",
        "leads": "fish-audio-tts",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a model, on the lines cartesia-tts and soniox-tts use for hosted speech models (recency 30, dated releases 10, deprecation notice 10, support 15, issues 10, SDKs 15, health 10). Python SDK `fish-audio-sdk` 1.4.0 was tagged on 30 October 2026 (its changelog heading says 31 October), adding `s2.1-pro-free` and `drama-3` to the model type, and the changelog's newest TTS entry is 20 October (Turkish, Tagalog and `pt-BR` normalisation) (30). In the 90 days from 5 August, TTS changelog entries on 8 October (S1 retirement notice), 13 October (Drama 3), 16 October (`language` field) and 20 October, and SDK 1.4.0 (10). S1's retirement on 31 December 2026 was announced 84 days ahead with a migration guide and dates on the deprecations page, which states no minimum notice period, and `drama-3-preview` left the reference with no entry, as a preview, the same reading as cartesia-tts (5 of 10). Public changelog, Discord and a support address. We did not test how fast they answer (8 of 15). SDK issue pages weren't read, since GitHub's pages answer 403 in this session (3 of 10, as soniox-tts). Python 1.4.0 is current and defaults to `s2.1-pro`, while npm `fish-audio` stays at 0.1.0 from 10 March 2026 (no newer tag in the repository on 3 November), defaulting to `s1`, and neither exposes the `language` field (10 of 15). The Python repository has CI, release-please, a lock file and Dependabot. The TypeScript repository has no workflow (6 of 10). 30+10+5+8+3+10+6 = 72.",
          "b": "Read as a model, as minimax-voice-cloning is. The newest dated change touching speech is the MCP servers' August update, `minimax-mcp-js` 0.0.18 on 21 August 2026, 77 days before 6 November, and Speech 2.8 dates from 23 January 2026 (20 of 30). No dated API entries in the last 90 days (0). Support by email and Discord, not tested (6 of 15). No official SDK for speech; the MCP servers expose `text_to_audio` and `list_voices` (8 of 15). The Python MCP server has tests and moved to version 2 of the MCP SDK in August, with no CI workflow (4 of 10). Total 38."
        },
        "scores": {
          "a": 72,
          "b": 38
        }
      },
      {
        "by": 11,
        "category": "ergonomics",
        "leads": "fish-audio-tts",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "API reading. MP3, WAV, PCM or Opus with selectable sample rate and bitrate, chunked HTTP output, an SSE stream with alignment and two WebSocket endpoints (21 of 25). `GET /model` pages the voice library with `page_size`, `page_number`, title, tag, language and `self` filters and three sort orders, per the 9 October check. No maximum text length per API request was found (14 of 20). Errors are JSON with `message` and `status`, a status table and typed SDK exceptions, with no error codes for TTS. An unrecognised `model` header falls back to `s2.1-pro` and an unresolved pronunciation dictionary is dropped, both without an error, and the Drama 3 guide repeats that warning. A `language` tag with no normalisation rules skips normalisation without an error, as documented (11 of 20). Retry guidance for 429 and 5xx. No idempotency key, and the pricing page still doesn't say whether a failed TTS request is billed, though it does for speech-to-text and voice design. The MCP page's refund of failed generations covers web app credits, not the API (9 of 20). Only `text` is required, and there are Python and JavaScript SDKs, though npm 0.1.0 defaults to the deprecated `s1`, Python 1.4.0 defaults to `s2.1-pro`, and neither exposes the `language` field (12 of 15). The MCP server, a second surface billed in web app credits, now documents 47 tools with no toolsets or read-only subset. It isn't the surface this reading scores. 21+14+11+9+12 = 67.",
          "b": "API reading of the checklist. Audio comes back hex-encoded inside JSON by default, with subtitles opt-in and format, bitrate and sample rate settable (15 of 25). Voices are listed by type through `POST /v1/get_voice`, which has no pagination and returns 300+ system voices for `all` (10 of 20). Errors come as numeric codes in `base_resp` with a short remedy for each, inside responses documented only as 200 (13 of 20). No idempotency key, and the MCP tools carry no read-only or destructive annotations (10 of 20). Two required fields. No official SDK for speech, with MCP servers in Python and JavaScript (8 of 15). Total 56."
        },
        "scores": {
          "a": 67,
          "b": 56
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "fish-audio-tts",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 in the docs, the OpenAPI file or the pricing page on 23 October (0). Per-unit prices published without a login and re-read on 23 October. $15 per million UTF-8 bytes for `s2.1-pro`, `s2-pro` and `s1`, and `drama-3`, which had no row on 17 October, now at $50 per million, billed at $10 until 12 November 2026 17:00 UTC as a launch promotion (20). `s2.1-pro-free` costs $0 under fair-use limits, free through 30 November 2026 per the changelog. Whether a card or a prepaid balance is needed is not stated (10 of 20). Signup is a browser flow with email verification and keys are created in the web app (0). 0+20+10+0 = 30.",
          "b": "No x402, MPP or L402 (0). Per-character prices for every speech model published without a login (20). No free allowance for synthesis is published (0). A person signs up in a browser and funds a balance (0). Total 20."
        },
        "scores": {
          "a": 30,
          "b": 20
        }
      }
    ],
    "facts": [
      {
        "a": "Model API",
        "b": "Model API",
        "name": "Kind"
      },
      {
        "a": "Fish Audio",
        "b": "MiniMax",
        "name": "Vendor"
      },
      {
        "a": "https://api.fish.audio",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, websocket",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 (Python SDK), MIT (JavaScript SDK)",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "47",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-30",
        "b": "2026-01-23",
        "name": "Last release"
      },
      {
        "a": "2024-08-18",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2024-08-28",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "5.2k npm/wk, 34k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.8/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Fish Audio TTS API scores 61.5 (C) on agent readiness against MiniMax Speech (T2A)'s 55.1 (C), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Fish Audio TTS API or MiniMax Speech (T2A)?"
      },
      {
        "answer": "Fish Audio TTS API takes an API key or an OAuth sign-in. MiniMax Speech (T2A) needs an API key.",
        "question": "Do Fish Audio TTS API and MiniMax Speech (T2A) need an API key?"
      },
      {
        "answer": "Fish Audio TTS API has a hosted endpoint at https://api.fish.audio. No hosted endpoint is listed for MiniMax Speech (T2A).",
        "question": "Can an agent call Fish Audio TTS API and MiniMax Speech (T2A) without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 67 against 56",
          "Payments \u0026 pricing, 30 against 20",
          "Maintenance \u0026 community, 72 against 38"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "Voice agents that stream LLM text into speech at a low per-byte price, multilingual output from one model, directed performances with Drama 3, and teams moving from OpenAI or ElevenLabs request shapes.",
        "slug": "fish-audio-tts",
        "watchFor": "The terms allow Usage Data and Content to train models, with no opt-out found"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Multilingual speech for narration and agents at mid-range prices, with strong Chinese voices by the vendor's account.",
        "slug": "minimax-speech",
        "watchFor": "No free allowance for synthesis and no official SDK"
      }
    ],
    "history": {
      "fish-audio-tts": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-03",
          "delta": 0.7,
          "from": 60.8,
          "fromGrade": "C",
          "to": 61.5,
          "toGrade": "C"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 60.7,
          "fromGrade": "C",
          "to": 60.8,
          "toGrade": "C"
        }
      ],
      "minimax-speech": null
    },
    "job": {
      "capability": "speech.tts",
      "name": "Text-to-speech"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-polly-vs-fish-audio-tts.json",
        "title": "Amazon Polly vs Fish Audio TTS API",
        "url": "https://www.anchorterminal.com/compare/amazon-polly-vs-fish-audio-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-polly-vs-minimax-speech.json",
        "title": "Amazon Polly vs MiniMax Speech (T2A)",
        "url": "https://www.anchorterminal.com/compare/amazon-polly-vs-minimax-speech"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-fish-audio-tts.json",
        "title": "Azure AI Speech text-to-speech vs Fish Audio TTS API",
        "url": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-fish-audio-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-minimax-speech.json",
        "title": "Azure AI Speech text-to-speech vs MiniMax Speech (T2A)",
        "url": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-minimax-speech"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-tts-vs-fish-audio-tts.json",
        "title": "Cartesia Sonic TTS API + MCP vs Fish Audio TTS API",
        "url": "https://www.anchorterminal.com/compare/cartesia-tts-vs-fish-audio-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-tts-vs-minimax-speech.json",
        "title": "Cartesia Sonic TTS API + MCP vs MiniMax Speech (T2A)",
        "url": "https://www.anchorterminal.com/compare/cartesia-tts-vs-minimax-speech"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepgram-tts-vs-fish-audio-tts.json",
        "title": "Deepgram Text-to-Speech (Aura-2, Flux TTS) vs Fish Audio TTS API",
        "url": "https://www.anchorterminal.com/compare/deepgram-tts-vs-fish-audio-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepgram-tts-vs-minimax-speech.json",
        "title": "Deepgram Text-to-Speech (Aura-2, Flux TTS) vs MiniMax Speech (T2A)",
        "url": "https://www.anchorterminal.com/compare/deepgram-tts-vs-minimax-speech"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elevenlabs-tts-vs-fish-audio-tts.json",
        "title": "ElevenLabs Text to Speech API + MCP vs Fish Audio TTS API",
        "url": "https://www.anchorterminal.com/compare/elevenlabs-tts-vs-fish-audio-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elevenlabs-tts-vs-minimax-speech.json",
        "title": "ElevenLabs Text to Speech API + MCP vs MiniMax Speech (T2A)",
        "url": "https://www.anchorterminal.com/compare/elevenlabs-tts-vs-minimax-speech"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-google-cloud-tts.json",
        "title": "Fish Audio TTS API vs Google Cloud Text-to-Speech",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-google-cloud-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-heygen-voice.json",
        "title": "Fish Audio TTS API vs HeyGen Voice",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-heygen-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-inworld-tts.json",
        "title": "Fish Audio TTS API vs Inworld Realtime TTS-2",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-inworld-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts.json",
        "title": "Fish Audio TTS API vs Murf TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-playht-tts.json",
        "title": "Fish Audio TTS API vs PlayHT Text-to-Speech API",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-playht-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-resemble-ai-tts.json",
        "title": "Fish Audio TTS API vs Resemble AI Text-to-Speech API",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-resemble-ai-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-rime-tts.json",
        "title": "Fish Audio TTS API vs Rime TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-rime-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts.json",
        "title": "Fish Audio TTS API vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-soniox-tts.json",
        "title": "Fish Audio TTS API vs Soniox Text-to-Speech",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-soniox-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-cloud-tts-vs-minimax-speech.json",
        "title": "Google Cloud Text-to-Speech vs MiniMax Speech (T2A)",
        "url": "https://www.anchorterminal.com/compare/google-cloud-tts-vs-minimax-speech"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heygen-voice-vs-minimax-speech.json",
        "title": "HeyGen Voice vs MiniMax Speech (T2A)",
        "url": "https://www.anchorterminal.com/compare/heygen-voice-vs-minimax-speech"
      },
      {
        "json": "https://www.anchorterminal.com/compare/inworld-tts-vs-minimax-speech.json",
        "title": "Inworld Realtime TTS-2 vs MiniMax Speech (T2A)",
        "url": "https://www.anchorterminal.com/compare/inworld-tts-vs-minimax-speech"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-speech-vs-murf-tts.json",
        "title": "MiniMax Speech (T2A) vs Murf TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/minimax-speech-vs-murf-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-speech-vs-playht-tts.json",
        "title": "MiniMax Speech (T2A) vs PlayHT Text-to-Speech API",
        "url": "https://www.anchorterminal.com/compare/minimax-speech-vs-playht-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-speech-vs-resemble-ai-tts.json",
        "title": "MiniMax Speech (T2A) vs Resemble AI Text-to-Speech API",
        "url": "https://www.anchorterminal.com/compare/minimax-speech-vs-resemble-ai-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-speech-vs-rime-tts.json",
        "title": "MiniMax Speech (T2A) vs Rime TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/minimax-speech-vs-rime-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-speech-vs-smallest-lightning-tts.json",
        "title": "MiniMax Speech (T2A) vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/minimax-speech-vs-smallest-lightning-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-speech-vs-soniox-tts.json",
        "title": "MiniMax Speech (T2A) vs Soniox Text-to-Speech",
        "url": "https://www.anchorterminal.com/compare/minimax-speech-vs-soniox-tts"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 2,
        "edge": "fish-audio-tts",
        "fish-audio-tts": 77,
        "key": "reliability",
        "minimax-speech": 75,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "fish-audio-tts",
        "fish-audio-tts": 84,
        "key": "schema",
        "minimax-speech": 81,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 11,
        "edge": "fish-audio-tts",
        "fish-audio-tts": 67,
        "key": "ergonomics",
        "minimax-speech": 56,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 1,
        "edge": "minimax-speech",
        "fish-audio-tts": 35,
        "key": "security",
        "minimax-speech": 36,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "edge": "fish-audio-tts",
        "fish-audio-tts": 30,
        "key": "payments",
        "minimax-speech": 20,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 34,
        "edge": "fish-audio-tts",
        "fish-audio-tts": 72,
        "key": "maintenance",
        "minimax-speech": 38,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 4,
        "edge": "minimax-speech",
        "fish-audio-tts": 61,
        "key": "transparency",
        "minimax-speech": 65,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Fish Audio TTS API scores 61.5 (C) on agent readiness against MiniMax Speech (T2A)'s 55.1 (C), and leads in 5 of 7 scored categories. Both do text-to-speech.",
    "tasks": [
      {
        "a": "$0.13 to $0.45",
        "b": "$0.54 to $0.90",
        "cheaper": "fish-audio-tts",
        "task": "Narrate a 9,000-character script",
        "what": "about 1,500 words"
      }
    ],
    "tutorials": [],
    "verdicts": {
      "fish-audio-tts": "The API accepts streamed text over a WebSocket, returns word timestamps, and prices speech at $15 per million UTF-8 bytes with a $0 model for development. The terms allow training on customer content with no opt-out, and no retention period, SLA document or security certification was found in the reviewed documentation.",
      "minimax-speech": "MiniMax's speech API covers sync, WebSocket, bidirectional and async synthesis with OpenAPI and AsyncAPI files and public prices of $60 to $100 per million characters. Text-to-Speech had only short incidents in 90 days. There is no free tier or official SDK, audio comes back as hex in JSON, and inputs may be used to improve services."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-minimax-speech",
    "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-minimax-speech.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-minimax-speech.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-minimax-speech.min.md"
  },
  "markdown": "Fish Audio TTS API scores 61.5 (C) on agent readiness against MiniMax Speech (T2A)'s 55.1 (C), and leads in 5 of 7 scored categories. Both do text-to-speech.\n\n- Fish Audio TTS API: grade C, 61.5/100, rank #601 of 1486. Markdown https://www.anchorterminal.com/tools/fish-audio-tts.md · JSON https://www.anchorterminal.com/api/v1/tools/fish-audio-tts.json\n- MiniMax Speech (T2A): grade C, 55.1/100, rank #879 of 1486. Markdown https://www.anchorterminal.com/tools/minimax-speech.md · JSON https://www.anchorterminal.com/api/v1/tools/minimax-speech.json\n- Best text-to-speech APIs for AI agents: https://www.anchorterminal.com/best/text-to-speech/index.md\n- All 148 tts comparisons: https://www.anchorterminal.com/compare/text-to-speech/index.md\n\n## Which one, for what\n\n### Fish Audio TTS API (C)\n\nGood for: Voice agents that stream LLM text into speech at a low per-byte price, multilingual output from one model, directed performances with Drama 3, and teams moving from OpenAI or ElevenLabs request shapes.\n\nAhead on:\n- Agent ergonomics, 67 against 56\n- Payments \u0026 pricing, 30 against 20\n- Maintenance \u0026 community, 72 against 38\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: The terms allow Usage Data and Content to train models, with no opt-out found\n\n### MiniMax Speech (T2A) (C)\n\nGood for: Multilingual speech for narration and agents at mid-range prices, with strong Chinese voices by the vendor's account.\n\nWatch for: No free allowance for synthesis and no official SDK\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Fish Audio TTS API +34\n\n- Fish Audio TTS API (72): Read as a model, on the lines cartesia-tts and soniox-tts use for hosted speech models (recency 30, dated releases 10, deprecation notice 10, support 15, issues 10, SDKs 15, health 10). Python SDK `fish-audio-sdk` 1.4.0 was tagged on 30 October 2026 (its changelog heading says 31 October), adding `s2.1-pro-free` and `drama-3` to the model type, and the changelog's newest TTS entry is 20 October (Turkish, Tagalog and `pt-BR` normalisation) (30). In the 90 days from 5 August, TTS changelog entries on 8 October (S1 retirement notice), 13 October (Drama 3), 16 October (`language` field) and 20 October, and SDK 1.4.0 (10). S1's retirement on 31 December 2026 was announced 84 days ahead with a migration guide and dates on the deprecations page, which states no minimum notice period, and `drama-3-preview` left the reference with no entry, as a preview, the same reading as cartesia-tts (5 of 10). Public changelog, Discord and a support address. We did not test how fast they answer (8 of 15). SDK issue pages weren't read, since GitHub's pages answer 403 in this session (3 of 10, as soniox-tts). Python 1.4.0 is current and defaults to `s2.1-pro`, while npm `fish-audio` stays at 0.1.0 from 10 March 2026 (no newer tag in the repository on 3 November), defaulting to `s1`, and neither exposes the `language` field (10 of 15). The Python repository has CI, release-please, a lock file and Dependabot. The TypeScript repository has no workflow (6 of 10). 30+10+5+8+3+10+6 = 72.\n- MiniMax Speech (T2A) (38): Read as a model, as minimax-voice-cloning is. The newest dated change touching speech is the MCP servers' August update, `minimax-mcp-js` 0.0.18 on 21 August 2026, 77 days before 6 November, and Speech 2.8 dates from 23 January 2026 (20 of 30). No dated API entries in the last 90 days (0). Support by email and Discord, not tested (6 of 15). No official SDK for speech; the MCP servers expose `text_to_audio` and `list_voices` (8 of 15). The Python MCP server has tests and moved to version 2 of the MCP SDK in August, with no CI workflow (4 of 10). Total 38.\n\n### Agent ergonomics: Fish Audio TTS API +11\n\n- Fish Audio TTS API (67): API reading. MP3, WAV, PCM or Opus with selectable sample rate and bitrate, chunked HTTP output, an SSE stream with alignment and two WebSocket endpoints (21 of 25). `GET /model` pages the voice library with `page_size`, `page_number`, title, tag, language and `self` filters and three sort orders, per the 9 October check. No maximum text length per API request was found (14 of 20). Errors are JSON with `message` and `status`, a status table and typed SDK exceptions, with no error codes for TTS. An unrecognised `model` header falls back to `s2.1-pro` and an unresolved pronunciation dictionary is dropped, both without an error, and the Drama 3 guide repeats that warning. A `language` tag with no normalisation rules skips normalisation without an error, as documented (11 of 20). Retry guidance for 429 and 5xx. No idempotency key, and the pricing page still doesn't say whether a failed TTS request is billed, though it does for speech-to-text and voice design. The MCP page's refund of failed generations covers web app credits, not the API (9 of 20). Only `text` is required, and there are Python and JavaScript SDKs, though npm 0.1.0 defaults to the deprecated `s1`, Python 1.4.0 defaults to `s2.1-pro`, and neither exposes the `language` field (12 of 15). The MCP server, a second surface billed in web app credits, now documents 47 tools with no toolsets or read-only subset. It isn't the surface this reading scores. 21+14+11+9+12 = 67.\n- MiniMax Speech (T2A) (56): API reading of the checklist. Audio comes back hex-encoded inside JSON by default, with subtitles opt-in and format, bitrate and sample rate settable (15 of 25). Voices are listed by type through `POST /v1/get_voice`, which has no pagination and returns 300+ system voices for `all` (10 of 20). Errors come as numeric codes in `base_resp` with a short remedy for each, inside responses documented only as 200 (13 of 20). No idempotency key, and the MCP tools carry no read-only or destructive annotations (10 of 20). Two required fields. No official SDK for speech, with MCP servers in Python and JavaScript (8 of 15). Total 56.\n\n### Payments \u0026 pricing: Fish Audio TTS API +10\n\n- Fish Audio TTS API (30): No x402, MPP or L402 in the docs, the OpenAPI file or the pricing page on 23 October (0). Per-unit prices published without a login and re-read on 23 October. $15 per million UTF-8 bytes for `s2.1-pro`, `s2-pro` and `s1`, and `drama-3`, which had no row on 17 October, now at $50 per million, billed at $10 until 12 November 2026 17:00 UTC as a launch promotion (20). `s2.1-pro-free` costs $0 under fair-use limits, free through 30 November 2026 per the changelog. Whether a card or a prepaid balance is needed is not stated (10 of 20). Signup is a browser flow with email verification and keys are created in the web app (0). 0+20+10+0 = 30.\n- MiniMax Speech (T2A) (20): No x402, MPP or L402 (0). Per-character prices for every speech model published without a login (20). No free allowance for synthesis is published (0). A person signs up in a browser and funds a balance (0). Total 20.\n\n## Score by category\n\n| Category | Weight | Fish Audio TTS API | MiniMax Speech (T2A) | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 77 | 75 | Fish Audio TTS API +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 81 | Fish Audio TTS API +3 |\n| Agent ergonomics | 13% (16.2 this run) | 67 | 56 | Fish Audio TTS API +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 35 | 36 | MiniMax Speech (T2A) +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | Fish Audio TTS API +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 38 | Fish Audio TTS API +34 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 65 | MiniMax Speech (T2A) +4 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **61.5 · C** | **55.1 · C** | |\n\n## Facts side by side\n\n| Fact | Fish Audio TTS API | MiniMax Speech (T2A) |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | Fish Audio | MiniMax |\n| Hosted endpoint | `https://api.fish.audio` | no (local only) |\n| Transports | HTTP, Streamable HTTP | HTTP, websocket |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | Apache-2.0 (Python SDK), MIT (JavaScript SDK) | none |\n| Tools exposed | 47 | 0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-30 | 2026-01-23 |\n| Terms last updated | 2024-08-18 | couldn't be read |\n| Privacy policy last updated | 2024-08-28 | couldn't be read |\n| Customer content may train models | yes | couldn't be read |\n| Terms restrict automated access | yes | couldn't be read |\n| Terms restrict benchmarking | yes | couldn't be read |\n| Terms or service can change without notice | not found in the text | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n| Popularity | 5.2k npm/wk, 34k PyPI/wk | none |\n| Agent reviews | 3.8/5 (4) | none |\n\n## What the same task costs\n\n| Task | Fish Audio TTS API | MiniMax Speech (T2A) |\n| --- | --- | --- |\n| Narrate a 9,000-character script | $0.13 to $0.45 | $0.54 to $0.90 |\n\n## How the scores have moved\n\n### Fish Audio TTS API\n\n- +0.7 on 3 November 2026: correction\n- +0.1 on 28 October 2026: new evidence\n\n### MiniMax Speech (T2A)\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Fish Audio TTS API.** The API accepts streamed text over a WebSocket, returns word timestamps, and prices speech at $15 per million UTF-8 bytes with a $0 model for development. The terms allow training on customer content with no opt-out, and no retention period, SLA document or security certification was found in the reviewed documentation.\n\n**MiniMax Speech (T2A).** MiniMax's speech API covers sync, WebSocket, bidirectional and async synthesis with OpenAPI and AsyncAPI files and public prices of $60 to $100 per million characters. Text-to-Speech had only short incidents in 90 days. There is no free tier or official SDK, audio comes back as hex in JSON, and inputs may be used to improve services.\n\n## Before you call either\n\n### Fish Audio TTS API\n\n1. Send the `model` header on every request and check its spelling. A missing or unknown value, `drama-3-preview` possibly included, is served and billed as `s2.1-pro`.\n2. Budget by UTF-8 bytes, not characters. Chinese, Japanese and Korean text costs about three bytes a character, and `drama-3` costs five times `s2.1-pro` after 12 November 2026.\n3. Retry 429 and 5xx with exponential backoff. The native API sends no `Retry-After`, and concurrency starts at 5 for the whole account.\n4. Use `[bracket]` cues on the S2 family and `drama-3`. `(parenthesis)` tags from `s1` are read aloud as text.\n5. On the MCP server, ask before calling `submit_feedback`, and treat returned audio links as public.\n\n### MiniMax Speech (T2A)\n\n1. Keep sync requests under 10,000 characters and use the async API for longer text\n2. Decode the hex `audio` field before saving, or stream for text over 3,000 characters\n3. Check `base_resp.status_code` on every response, since errors arrive inside a 200\n4. Stay under 60 requests a minute and back off on code 1002\n5. Use speech-2.8-turbo for agents and HD only where quality matters, since HD costs two thirds more\n\n## Questions\n\n### Which is better for AI agents, Fish Audio TTS API or MiniMax Speech (T2A)?\n\nFish Audio TTS API scores 61.5 (C) on agent readiness against MiniMax Speech (T2A)'s 55.1 (C), and leads in 5 of 7 scored categories.\n\n### Do Fish Audio TTS API and MiniMax Speech (T2A) need an API key?\n\nFish Audio TTS API takes an API key or an OAuth sign-in. MiniMax Speech (T2A) needs an API key.\n\n### Can an agent call Fish Audio TTS API and MiniMax Speech (T2A) without installing anything?\n\nFish Audio TTS API has a hosted endpoint at https://api.fish.audio. No hosted endpoint is listed for MiniMax Speech (T2A).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/fish-audio-tts-vs-minimax-speech.json, and with the fewest tokens: https://www.anchorterminal.com/compare/fish-audio-tts-vs-minimax-speech.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"fish-audio-tts\", \"b\": \"minimax-speech\"}`. From a terminal: `anchor compare fish-audio-tts minimax-speech`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/fish-audio-tts.json and https://www.anchorterminal.com/api/v1/tools/minimax-speech.json\n\n## Other comparisons with Fish Audio TTS API or MiniMax Speech (T2A)\n\n- [Amazon Polly vs Fish Audio TTS API](https://www.anchorterminal.com/compare/amazon-polly-vs-fish-audio-tts.md)\n- [Amazon Polly vs MiniMax Speech (T2A)](https://www.anchorterminal.com/compare/amazon-polly-vs-minimax-speech.md)\n- [Azure AI Speech text-to-speech vs Fish Audio TTS API](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-fish-audio-tts.md)\n- [Azure AI Speech text-to-speech vs MiniMax Speech (T2A)](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-minimax-speech.md)\n- [Cartesia Sonic TTS API + MCP vs Fish Audio TTS API](https://www.anchorterminal.com/compare/cartesia-tts-vs-fish-audio-tts.md)\n- [Cartesia Sonic TTS API + MCP vs MiniMax Speech (T2A)](https://www.anchorterminal.com/compare/cartesia-tts-vs-minimax-speech.md)\n- [Deepgram Text-to-Speech (Aura-2, Flux TTS) vs Fish Audio TTS API](https://www.anchorterminal.com/compare/deepgram-tts-vs-fish-audio-tts.md)\n- [Deepgram Text-to-Speech (Aura-2, Flux TTS) vs MiniMax Speech (T2A)](https://www.anchorterminal.com/compare/deepgram-tts-vs-minimax-speech.md)\n- [ElevenLabs Text to Speech API + MCP vs Fish Audio TTS API](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-fish-audio-tts.md)\n- [ElevenLabs Text to Speech API + MCP vs MiniMax Speech (T2A)](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-minimax-speech.md)\n- [Fish Audio TTS API vs Google Cloud Text-to-Speech](https://www.anchorterminal.com/compare/fish-audio-tts-vs-google-cloud-tts.md)\n- [Fish Audio TTS API vs HeyGen Voice](https://www.anchorterminal.com/compare/fish-audio-tts-vs-heygen-voice.md)\n- [Fish Audio TTS API vs Inworld Realtime TTS-2](https://www.anchorterminal.com/compare/fish-audio-tts-vs-inworld-tts.md)\n- [Fish Audio TTS API vs Murf TTS API + MCP](https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts.md)\n- [Fish Audio TTS API vs PlayHT Text-to-Speech API](https://www.anchorterminal.com/compare/fish-audio-tts-vs-playht-tts.md)\n- [Fish Audio TTS API vs Resemble AI Text-to-Speech API](https://www.anchorterminal.com/compare/fish-audio-tts-vs-resemble-ai-tts.md)\n- [Fish Audio TTS API vs Rime TTS API + MCP](https://www.anchorterminal.com/compare/fish-audio-tts-vs-rime-tts.md)\n- [Fish Audio TTS API vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts.md)\n- [Fish Audio TTS API vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/fish-audio-tts-vs-soniox-tts.md)\n- [Google Cloud Text-to-Speech vs MiniMax Speech (T2A)](https://www.anchorterminal.com/compare/google-cloud-tts-vs-minimax-speech.md)\n- [HeyGen Voice vs MiniMax Speech (T2A)](https://www.anchorterminal.com/compare/heygen-voice-vs-minimax-speech.md)\n- [Inworld Realtime TTS-2 vs MiniMax Speech (T2A)](https://www.anchorterminal.com/compare/inworld-tts-vs-minimax-speech.md)\n- [MiniMax Speech (T2A) vs Murf TTS API + MCP](https://www.anchorterminal.com/compare/minimax-speech-vs-murf-tts.md)\n- [MiniMax Speech (T2A) vs PlayHT Text-to-Speech API](https://www.anchorterminal.com/compare/minimax-speech-vs-playht-tts.md)\n- [MiniMax Speech (T2A) vs Resemble AI Text-to-Speech API](https://www.anchorterminal.com/compare/minimax-speech-vs-resemble-ai-tts.md)\n- [MiniMax Speech (T2A) vs Rime TTS API + MCP](https://www.anchorterminal.com/compare/minimax-speech-vs-rime-tts.md)\n- [MiniMax Speech (T2A) vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/minimax-speech-vs-smallest-lightning-tts.md)\n- [MiniMax Speech (T2A) vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/minimax-speech-vs-soniox-tts.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Fish Audio TTS API vs MiniMax Speech (T2A)",
        "url": ""
      }
    ],
    "description": "Fish Audio TTS scores 61.5 (C) to MiniMax Speech's 55.1 (C) for text-to-speech. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Fish Audio TTS API C 61.5",
      "MiniMax Speech (T2A) C 55.1",
      "scores"
    ],
    "h1": "Fish Audio TTS API vs MiniMax Speech (T2A)",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/fish-audio-tts-vs-minimax-speech",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Fish Audio TTS vs MiniMax Speech for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-minimax-speech"
  },
  "tokens": {
    "markdown": 4200,
    "slim": 2030
  },
  "version": 1
}
