{
  "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",
      "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`, 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": null,
      "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-09-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.7,
        "grade": "C",
        "agentReady": false,
        "rank": 453,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 69,
          "payments": 30,
          "reliability": 75,
          "schema": 84,
          "security": 35,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "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, 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",
          "OpenAI-compatible and ElevenLabs-compatible endpoints refuse unsupported options with a 4xx and send `Retry-After` on a 429",
          "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 Text-to-Speech API status component shows downtime on 11 days in 90, the longest 58 minutes on 6 August 2026, mostly on the free model",
          "The published SDKs date from March 2026. `fish-audio` 0.1.0 on npm defaults to the deprecated `s1`",
          "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 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.",
          "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. `(parenthesis)` tags from `s1` are read aloud as text.",
          "Pass the model explicitly in the JavaScript SDK, because npm release 0.1.0 defaults to `s1`."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.7
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 69,
          "payments": 30,
          "reliability": 75,
          "schema": 84,
          "security": 35,
          "transparency": 44
        },
        "provenanceScore": 75
      },
      "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-voice-cloning"
      ],
      "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"
        }
      ],
      "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-10-09",
        "notes": [
          "The Terms of Use (effective 18 August 2024) 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.",
          "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 disallows only `/auth` and `/text-to-speech`, and the docs host signals `ai-input=yes`. We read the terms, the privacy policy and the docs host, and no other fish.audio page."
        ],
        "score": 75
      },
      "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-10-09T10:42:43.432017939Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 150,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 158,
          "p95ms24h": 224,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.fish.audio",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:57:55.361055093Z"
        },
        "updatedAt": "2026-10-09T10:42:43.432017939Z"
      }
    },
    "answer": "Murf TTS API + MCP scores 70.6 (BB) on agent readiness against Fish Audio TTS API's 60.7 (C), and leads in 6 of 7 scored categories. Fish Audio TTS API leads on maintenance \u0026 community.",
    "b": {
      "slug": "murf-tts",
      "name": "Murf TTS API + MCP",
      "vendor": "Murf",
      "vendorUrl": "https://murf.ai",
      "kind": "model",
      "category": "text-to-speech",
      "summary": "Murf's API for generating speech from text.",
      "url": "https://www.anchorterminal.com/tools/murf-tts",
      "markdownUrl": "https://www.anchorterminal.com/tools/murf-tts.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/murf-tts.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/murf-tts.json",
      "repo": "https://github.com/murf-ai/murf-python-sdk",
      "license": "MIT (SDK and MCP server)",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.murf.ai/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "murf"
        },
        {
          "registry": "pypi",
          "name": "murf-mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "`api-key` header. A generate-token endpoint issues short-lived tokens (sent as `token`) for client-side use. The MCP server reads `MURF_API_KEY`. Streaming runs on regional hosts such as `global.api.murf.ai`, non-streaming on `api.murf.ai`.",
      "pricing": "freemium",
      "pricingNotes": "Free trial of 100,000 characters with no time limit. Pay as you go with a $2 minimum purchase. Falcon 2 is 1 cent per 1,000 characters (marketed as 1 cent a minute), Gen2 $0.03 per 1,000 characters. Enterprise contracts add volume discounts, reserved concurrency and data residency. Startups under 100 staff can apply for 50M free characters over 3 months (https://murf.ai/pricing?product=api).",
      "priceSummary": "Freemium",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 or machine payment in the docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 108,
        "npmWeekly": null,
        "pypiWeekly": 669,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://murf.ai/api/docs/introduction/overview",
      "llmsTxt": "https://murf.ai/api/docs/llms.txt",
      "openapi": "https://murf.ai/api/docs/openapi.json",
      "capabilities": [
        "speech.tts",
        "speech.streaming",
        "speech.voices",
        "speech.languages"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "closed-source",
        "python",
        "openapi",
        "llms-txt",
        "mcp",
        "streaming",
        "enterprise"
      ],
      "lastRelease": "2026-08-20",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.6,
        "grade": "BB",
        "agentReady": true,
        "rank": 145,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 53,
          "payments": 40,
          "reliability": 90,
          "schema": 85,
          "security": 68,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Falcon 2 costs 1 cent per 1,000 characters on pay as you go, with a $2 minimum purchase. Falcon 2 concurrency is 2 outside US-East on free and pay as you go, 5 on US-East.",
        "bestFor": "Budget voice-agent output where 2 to 5 concurrent streams are enough, or for studio-style renders on Gen2.",
        "strengths": [
          "Falcon 2 costs 1 cent per 1,000 characters on pay as you go, with a $2 minimum purchase",
          "OpenAPI and AsyncAPI specs, llms.txt and Markdown twins of every docs page",
          "Errors page lists 7 HTTP codes, 4 WebSocket errors and 8 warnings, each with cause and fix, and tells you to back off on 429",
          "`encodedAsBase64` returns audio inline and Murf says nothing is stored",
          "SOC 2 Type II, ISO 27001 and ISO 42001 listed on the security page"
        ],
        "weaknesses": [
          "Falcon 2 concurrency is 2 outside US-East on free and pay as you go, 5 on US-East",
          "Gen2 streaming was deprecated on 2026-08-16 with 27 days' notice",
          "The security page says all data stays in AWS us-east-2, while Falcon 2 runs in 12 regions and the subprocessor list names four other clouds",
          "Download links last 72 hours per the TTS overview and 24 hours per the Enterprise FAQ",
          "Official SDK in Python only, last released 2026-03-05"
        ],
        "agentNotes": [
          "Send `locale` on every request, since `multiNativeLocale` was replaced on 2026-03-05.",
          "Split text into chunks under 3,000 characters per request.",
          "Use the US-East host for 5 concurrent Falcon 2 calls instead of 2.",
          "Set `encodedAsBase64` to get audio inline and skip the expiring download link.",
          "Back off on 429 and close WebSocket contexts with `end: true` to free slots."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.6
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 53,
          "payments": 40,
          "reliability": 90,
          "schema": 85,
          "security": 68,
          "transparency": 52
        },
        "provenanceScore": 78
      },
      "connect": {
        "http": "curl -X POST https://global.api.murf.ai/v1/speech/stream -H \"api-key: $MURF_API_KEY\" \\\n  -H \"content-type: application/json\" -o hello.wav \\\n  -d '{\"text\":\"Hi, how are you doing today?\",\"voiceId\":\"Gordon\",\"locale\":\"en-US\",\"model\":\"falcon-2\"}'",
        "claudeCode": "claude mcp add murf -e MURF_API_KEY=$MURF_API_KEY -- uvx murf-mcp",
        "config": {
          "mcpServers": {
            "murf": {
              "args": [
                "murf-mcp"
              ],
              "command": "uvx",
              "env": {
                "MURF_API_KEY": "${MURF_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/speech.tts",
        "tool": "https://letme.dev/murf-tts"
      },
      "sameCompany": [
        "murf-voice-cloning"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Falcon 2",
          "unit": "1m-chars",
          "usd": 10,
          "note": "1 cent per 1,000 characters, pay as you go"
        },
        {
          "item": "Gen2",
          "unit": "1m-chars",
          "usd": 30,
          "note": "$0.03 per 1,000 characters, pay as you go"
        }
      ],
      "provenance": {
        "legalEntity": "Murf Inc.",
        "domain": "murf.ai",
        "domainRegistered": "2020-07-17",
        "endpointOnVendorDomain": true,
        "terms": "https://murf.ai/resources/terms_of_service/",
        "privacy": "https://murf.ai/resources/privacy_policy/",
        "statusPage": "https://murf.statuspage.io",
        "changelog": "https://murf.ai/api/docs/changelog",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "Impressum at https://murf.ai/legal/impressum names Murf Inc., 535 Mission Street, San Francisco",
          "The status page is on Atlassian's domain, linked from https://murf.ai/api/docs/resources/rate-limits"
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/murf-tts.json",
      "live": {
        "slug": "murf-tts",
        "probe": {
          "target": "https://api.murf.ai/v1",
          "method": "get",
          "lastAt": "2026-10-09T10:42:50.123943925Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 296,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 279,
          "p95ms24h": 308,
          "samples24h": 260,
          "samples30d": 2300,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 114,
              "ok": 114
            }
          ]
        },
        "vendorStatus": {
          "page": "https://murf.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T10:41:49.374181931Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "murf-ai/murf-python-sdk",
            "version": "2.3.0",
            "released": "2026-03-05",
            "seenAt": "2026-10-08T16:22:08.192148729Z"
          },
          {
            "registry": "pypi",
            "name": "murf",
            "version": "2.3.0",
            "released": "2026-03-05",
            "seenAt": "2026-10-08T16:22:06.108283745Z"
          },
          {
            "registry": "pypi",
            "name": "murf-mcp",
            "version": "0.1.14",
            "released": "2026-08-20",
            "seenAt": "2026-10-08T16:22:06.298829297Z"
          }
        ],
        "githubStars": 109,
        "pypiWeekly": 695,
        "securityTxt": {
          "url": "https://murf.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:55.800736105Z"
        },
        "llmsTxt": {
          "url": "https://murf.ai/api/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:40.771396491Z"
        },
        "domain": {
          "domain": "murf.ai",
          "registered": "2020-07-17",
          "source": "https://rdap.identitydigital.services/rdap/domain/murf.ai",
          "checkedAt": "2026-10-04T13:09:09.691163163Z"
        },
        "pages": [
          {
            "url": "https://murf.ai/api/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:15.152459513Z",
            "changedAt": "2026-10-08T18:22:15.152459513Z",
            "fingerprint": "b5837dfbe72d"
          },
          {
            "url": "https://murf.ai/api/docs/changelog/2026/3/5",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:17.608400369Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "403585e8bd1c"
          },
          {
            "url": "https://murf.ai/api/docs/changelog/2026/7/20",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:19.842633084Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9f07d2b4b9f3"
          },
          {
            "url": "https://murf.ai/pricing?product=api",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-08T18:22:21.658977243Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          },
          {
            "url": "https://murf.ai/resources/privacy_policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:23.768948779Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fd6127aff3f7"
          },
          {
            "url": "https://murf.ai/resources/terms_of_service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:25.713103955Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "38c0780bf0e6"
          }
        ],
        "updatedAt": "2026-10-09T10:42:50.123943925Z"
      }
    },
    "facts": [
      {
        "a": "Model API",
        "b": "Model API",
        "name": "Kind"
      },
      {
        "a": "Fish Audio",
        "b": "Murf",
        "name": "Vendor"
      },
      {
        "a": "https://api.fish.audio",
        "b": "https://api.murf.ai/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 (Python SDK), MIT (JavaScript SDK)",
        "b": "MIT (SDK and MCP server)",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-23",
        "b": "2026-08-20",
        "name": "Last release"
      },
      {
        "a": "2024-08-18",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2024-08-28",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "5.2k npm/wk, 34k PyPI/wk",
        "b": "108 stars, 669 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Murf TTS API + MCP scores 70.6 (BB) on agent readiness against Fish Audio TTS API's 60.7 (C), and leads in 6 of 7 scored categories. Fish Audio TTS API leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, Fish Audio TTS API or Murf TTS API + MCP?"
      },
      {
        "answer": "Fish Audio TTS API takes an API key or an OAuth sign-in. Murf TTS API + MCP needs an API key.",
        "question": "Do Fish Audio TTS API and Murf TTS API + MCP need an API key?"
      },
      {
        "answer": "Yes. Fish Audio TTS API has a hosted endpoint at https://api.fish.audio and Murf TTS API + MCP at https://api.murf.ai/v1.",
        "question": "Can an agent call Fish Audio TTS API and Murf TTS API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Maintenance \u0026 community, 69 against 53"
        ],
        "also": null,
        "goodFor": "Voice agents that stream LLM text into speech at a low per-byte price, multilingual output from one model, 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": [
          "Reliability, 90 against 75",
          "Security \u0026 auth, 68 against 35",
          "Payments \u0026 pricing, 40 against 30",
          "Transparency \u0026 trust, 65 against 60"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine"
        ],
        "goodFor": "Budget voice-agent output where 2 to 5 concurrent streams are enough, or for studio-style renders on Gen2.",
        "slug": "murf-tts",
        "watchFor": "Falcon 2 concurrency is 2 outside US-East on free and pay as you go, 5 on US-East"
      }
    ],
    "job": {
      "capability": "speech.tts",
      "name": "Speech tts"
    },
    "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-murf-tts.json",
        "title": "Amazon Polly vs Murf TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/amazon-polly-vs-murf-tts"
      },
      {
        "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-murf-tts.json",
        "title": "Azure AI Speech text-to-speech vs Murf TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-murf-tts"
      },
      {
        "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-murf-tts.json",
        "title": "Cartesia Sonic TTS API + MCP vs Murf TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/cartesia-tts-vs-murf-tts"
      },
      {
        "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-murf-tts.json",
        "title": "Deepgram Text-to-Speech (Aura-2, Flux TTS) vs Murf TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/deepgram-tts-vs-murf-tts"
      },
      {
        "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-murf-tts.json",
        "title": "ElevenLabs Text to Speech API + MCP vs Murf TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/elevenlabs-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-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/murf-tts-vs-playht-tts.json",
        "title": "Murf TTS API + MCP vs PlayHT Text-to-Speech API",
        "url": "https://www.anchorterminal.com/compare/murf-tts-vs-playht-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/murf-tts-vs-resemble-ai-tts.json",
        "title": "Murf TTS API + MCP vs Resemble AI Text-to-Speech API",
        "url": "https://www.anchorterminal.com/compare/murf-tts-vs-resemble-ai-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/murf-tts-vs-rime-tts.json",
        "title": "Murf TTS API + MCP vs Rime TTS API + MCP",
        "url": "https://www.anchorterminal.com/compare/murf-tts-vs-rime-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/murf-tts-vs-soniox-tts.json",
        "title": "Murf TTS API + MCP vs Soniox Text-to-Speech",
        "url": "https://www.anchorterminal.com/compare/murf-tts-vs-soniox-tts"
      }
    ],
    "scores": [
      {
        "by": 15,
        "edge": "murf-tts",
        "fish-audio-tts": 75,
        "key": "reliability",
        "murf-tts": 90,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "murf-tts",
        "fish-audio-tts": 84,
        "key": "schema",
        "murf-tts": 85,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 4,
        "edge": "murf-tts",
        "fish-audio-tts": 67,
        "key": "ergonomics",
        "murf-tts": 71,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 33,
        "edge": "murf-tts",
        "fish-audio-tts": 35,
        "key": "security",
        "murf-tts": 68,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "edge": "murf-tts",
        "fish-audio-tts": 30,
        "key": "payments",
        "murf-tts": 40,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 16,
        "edge": "fish-audio-tts",
        "fish-audio-tts": 69,
        "key": "maintenance",
        "murf-tts": 53,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 5,
        "edge": "murf-tts",
        "fish-audio-tts": 60,
        "key": "transparency",
        "murf-tts": 65,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Murf TTS API + MCP scores 70.6 (BB) on agent readiness against Fish Audio TTS API's 60.7 (C), and leads in 6 of 7 scored categories. Fish Audio TTS API leads on maintenance \u0026 community. Both do speech tts.",
    "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.",
      "murf-tts": "Falcon 2 costs 1 cent per 1,000 characters on pay as you go, with a $2 minimum purchase. Falcon 2 concurrency is 2 outside US-East on free and pay as you go, 5 on US-East."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts",
    "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts.md",
    "slim": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts.min.md"
  },
  "markdown": "Murf TTS API + MCP scores 70.6 (BB) on agent readiness against Fish Audio TTS API's 60.7 (C), and leads in 6 of 7 scored categories. Fish Audio TTS API leads on maintenance \u0026 community. Both do speech tts.\n\n- Fish Audio TTS API: grade C, 60.7/100, rank #453 of 842. Markdown https://www.anchorterminal.com/tools/fish-audio-tts.md · JSON https://www.anchorterminal.com/api/v1/tools/fish-audio-tts.json\n- Murf TTS API + MCP: grade BB, 70.6/100, rank #145 of 842. Markdown https://www.anchorterminal.com/tools/murf-tts.md · JSON https://www.anchorterminal.com/api/v1/tools/murf-tts.json\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, and teams moving from OpenAI or ElevenLabs request shapes.\n\nAhead on:\n- Maintenance \u0026 community, 69 against 53\n\nWatch for: The terms allow Usage Data and Content to train models, with no opt-out found\n\n### Murf TTS API + MCP (BB)\n\nGood for: Budget voice-agent output where 2 to 5 concurrent streams are enough, or for studio-style renders on Gen2.\n\nAhead on:\n- Reliability, 90 against 75\n- Security \u0026 auth, 68 against 35\n- Payments \u0026 pricing, 40 against 30\n- Transparency \u0026 trust, 65 against 60\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n\nWatch for: Falcon 2 concurrency is 2 outside US-East on free and pay as you go, 5 on US-East\n\n\n## Score by category\n\n| Category | Weight | Fish Audio TTS API | Murf TTS API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 90 | Murf TTS API + MCP +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 85 | Murf TTS API + MCP +1 |\n| Agent ergonomics | 13% (16.2 this run) | 67 | 71 | Murf TTS API + MCP +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 35 | 68 | Murf TTS API + MCP +33 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 40 | Murf TTS API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 69 | 53 | Fish Audio TTS API +16 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 65 | Murf TTS API + MCP +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **60.7 · C** | **70.6 · BB** | |\n\n## Facts side by side\n\n| Fact | Fish Audio TTS API | Murf TTS API + MCP |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | Fish Audio | Murf |\n| Hosted endpoint | `https://api.fish.audio` | `https://api.murf.ai/v1` |\n| Transports | HTTP, Streamable HTTP | HTTP, stdio |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 (Python SDK), MIT (JavaScript SDK) | MIT (SDK and MCP server) |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-23 | 2026-08-20 |\n| Terms last updated | 2024-08-18 | no date given |\n| Privacy policy last updated | 2024-08-28 | no date given |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 5.2k npm/wk, 34k PyPI/wk | 108 stars, 669 PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\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**Murf TTS API + MCP.** Falcon 2 costs 1 cent per 1,000 characters on pay as you go, with a $2 minimum purchase. Falcon 2 concurrency is 2 outside US-East on free and pay as you go, 5 on US-East.\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 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.\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. `(parenthesis)` tags from `s1` are read aloud as text.\n5. Pass the model explicitly in the JavaScript SDK, because npm release 0.1.0 defaults to `s1`.\n\n### Murf TTS API + MCP\n\n1. Send `locale` on every request, since `multiNativeLocale` was replaced on 2026-03-05.\n2. Split text into chunks under 3,000 characters per request.\n3. Use the US-East host for 5 concurrent Falcon 2 calls instead of 2.\n4. Set `encodedAsBase64` to get audio inline and skip the expiring download link.\n5. Back off on 429 and close WebSocket contexts with `end: true` to free slots.\n\n## Questions\n\n### Which is better for AI agents, Fish Audio TTS API or Murf TTS API + MCP?\n\nMurf TTS API + MCP scores 70.6 (BB) on agent readiness against Fish Audio TTS API's 60.7 (C), and leads in 6 of 7 scored categories. Fish Audio TTS API leads on maintenance \u0026 community.\n\n### Do Fish Audio TTS API and Murf TTS API + MCP need an API key?\n\nFish Audio TTS API takes an API key or an OAuth sign-in. Murf TTS API + MCP needs an API key.\n\n### Can an agent call Fish Audio TTS API and Murf TTS API + MCP without installing anything?\n\nYes. Fish Audio TTS API has a hosted endpoint at https://api.fish.audio and Murf TTS API + MCP at https://api.murf.ai/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts.json, and with the fewest tokens: https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"fish-audio-tts\", \"b\": \"murf-tts\"}`. From a terminal: `anchor compare fish-audio-tts murf-tts`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/fish-audio-tts.json and https://www.anchorterminal.com/api/v1/tools/murf-tts.json\n\n## Other comparisons with Fish Audio TTS API or Murf TTS API + MCP\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 Murf TTS API + MCP](https://www.anchorterminal.com/compare/amazon-polly-vs-murf-tts.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 Murf TTS API + MCP](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-murf-tts.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 Murf TTS API + MCP](https://www.anchorterminal.com/compare/cartesia-tts-vs-murf-tts.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 Murf TTS API + MCP](https://www.anchorterminal.com/compare/deepgram-tts-vs-murf-tts.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 Murf TTS API + MCP](https://www.anchorterminal.com/compare/elevenlabs-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 Soniox Text-to-Speech](https://www.anchorterminal.com/compare/fish-audio-tts-vs-soniox-tts.md)\n- [Murf TTS API + MCP vs PlayHT Text-to-Speech API](https://www.anchorterminal.com/compare/murf-tts-vs-playht-tts.md)\n- [Murf TTS API + MCP vs Resemble AI Text-to-Speech API](https://www.anchorterminal.com/compare/murf-tts-vs-resemble-ai-tts.md)\n- [Murf TTS API + MCP vs Rime TTS API + MCP](https://www.anchorterminal.com/compare/murf-tts-vs-rime-tts.md)\n- [Murf TTS API + MCP vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/murf-tts-vs-soniox-tts.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Fish Audio TTS API vs Murf TTS API + MCP",
        "url": ""
      }
    ],
    "description": "Murf TTS API + MCP scores 70.6 (BB) on agent readiness against Fish Audio TTS API's 60.7 (C), and leads in 6 of 7 scored categories. Fish Audio TTS API leads on maintenance \u0026 community. Both do speech tts. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Fish Audio TTS API C 60.7",
      "Murf TTS API + MCP BB 70.6",
      "scores"
    ],
    "h1": "Fish Audio TTS API vs Murf TTS API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-fish-audio-tts-vs-murf-tts.png",
    "path": "/compare/fish-audio-tts-vs-murf-tts",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Fish Audio TTS API vs Murf TTS API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 680
  },
  "version": 1
}
