{
  "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": "Smallest.ai Lightning TTS scores 64.4 (B) on agent readiness against Fish Audio TTS API's 61.5 (C), and leads in 5 of 7 scored categories. Fish Audio TTS API leads on reliability.",
    "b": {
      "slug": "smallest-lightning-tts",
      "name": "Smallest.ai Lightning TTS",
      "vendor": "Smallest AI",
      "vendorUrl": "https://smallest.ai",
      "kind": "model",
      "category": "text-to-speech",
      "summary": "Smallest AI's Lightning text-to-speech API turns text into 44.1 kHz speech over HTTP, server-sent events or WebSocket, with the Lightning v3.1 and v3.1 Pro models in up to 31 languages, pronunciation dictionaries and word timestamps.",
      "url": "https://www.anchorterminal.com/tools/smallest-lightning-tts",
      "markdownUrl": "https://www.anchorterminal.com/tools/smallest-lightning-tts.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/smallest-lightning-tts.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/smallest-lightning-tts.json",
      "dns": "smallest-lightning-tts.grade.anchorterminal.com",
      "repo": "https://github.com/smallest-inc/smallest-python-sdk",
      "transports": [
        "http",
        "websocket"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "smallestai"
        },
        {
          "registry": "npm",
          "name": "smallestai"
        },
        {
          "registry": "npm",
          "name": "@developer-smallestai/smallest-mcp-server"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer `sk_` API key created in the dashboard after a browser signup, shared by every model and the Voice Agents API. Keys are shown once, revoked by deleting them and carry no scopes. Servers can mint `wat_` access tokens for browsers (30 to 900 seconds, inference routes only).",
      "pricing": "usage",
      "pricingNotes": "Pay as you go at $0.175 per 10,000 characters for Lightning v3.1 and $0.195 for Lightning v3.1 Pro. $10 in trial credits. Pay as you go is capped at 450M characters a month. Enterprise pricing, SLA and zero data retention by quote.",
      "priceSummary": "Pay per use",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, OpenAPI file or pricing page (checked 2026-11-06). Credits are bought with a card on file.",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.smallest.ai/models/text-to-speech/overview",
      "llmsTxt": "https://docs.smallest.ai/llms.txt",
      "openapi": "https://docs.smallest.ai/openapi/models-api.json",
      "capabilities": [
        "speech.tts",
        "speech.streaming",
        "speech.voices",
        "speech.languages"
      ],
      "tags": [
        "hosted",
        "usage",
        "closed-source",
        "python",
        "typescript",
        "openapi",
        "llms-txt",
        "streaming",
        "mcp",
        "enterprise",
        "self-hosted"
      ],
      "lastRelease": "2026-11-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.4,
        "grade": "B",
        "agentReady": false,
        "rank": 469,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 68,
          "payments": 40,
          "reliability": 58,
          "schema": 92,
          "security": 52,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Lightning streams speech over HTTP, SSE or WebSocket with OpenAPI and AsyncAPI files and public prices of $0.175 to $0.195 per 10,000 characters. The default model retires on 30 November with 28 days' notice, published concurrency limits disagree, and the shared API failed in every region on five days in September.",
        "bestFor": "Low-latency speech for voice agents, with English, Hindi code-switching and Indic voices.",
        "strengths": [
          "OpenAPI 3.1 and AsyncAPI 2.6 files cover the sync, SSE and WebSocket routes, with llms.txt and Markdown copies of every page",
          "Public prices of $0.175 per 10,000 characters for v3.1 and $0.195 for v3.1 Pro, with $10 of trial credits",
          "Pronunciation dictionaries, number and date reading controls, word timestamps and eight output formats",
          "A deprecations page with dates and migration steps, and dated preview checkpoints that run 30 days",
          "Region-pinned hosts in Mumbai and Oregon"
        ],
        "weaknesses": [
          "`lightning_v3.1`, the default model, retires on 30 November 2026 after a 2 November notice, and clones made on it stop working",
          "Concurrency is published as 1, 10 and 15 on three different pages",
          "Health checks on the shared API failed in all three regions on 9, 10, 13, 14 and 15 September 2026, the longest about 64 minutes",
          "Keys grant full account access with no scopes, and the docs pass keys or tokens as URL query parameters on WebSockets",
          "No SSML, and zero data retention only on Enterprise or a $1,000 a month add-on"
        ],
        "agentNotes": [
          "Always send `\"model\": \"lightning_v3.1_pro\"`, since requests with no model go to a model that retires on 30 November 2026",
          "Pick voices from `GET /waves/v1/lightning-v3.1-pro/get_voices`, because the v3.1 and v3.1 Pro catalogues differ",
          "Keep each request under 8,000 characters and split longer text",
          "Treat 429 as the concurrency ceiling and retry with backoff from 500 ms to 30 s, honouring Retry-After",
          "Fix names and acronyms with a pronunciation dictionary, since SSML isn't accepted"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.4
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 68,
          "payments": 40,
          "reliability": 58,
          "schema": 92,
          "security": 52,
          "transparency": 52
        },
        "provenanceScore": 87,
        "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": {
        "install": "pip install smallestai",
        "http": "curl -X POST \"https://api.smallest.ai/waves/v1/tts\" \\\n  -H \"Authorization: Bearer $SMALLEST_API_KEY\" -H \"Content-Type: application/json\" -H \"Accept: audio/wav\" \\\n  -d '{\"text\": \"Hello from Smallest AI.\", \"voice_id\": \"meher\", \"model\": \"lightning_v3.1_pro\", \"sample_rate\": 24000, \"output_format\": \"wav\"}' \\\n  --output hello.wav",
        "claudeCode": "claude mcp add smallest -- npx -y @developer-smallestai/smallest-mcp-server"
      },
      "letme": {
        "capability": "https://letme.dev/speech.tts",
        "tool": "https://letme.dev/smallest-lightning-tts"
      },
      "sameCompany": [
        "smallest-pulse-stt",
        "smallest-voice-clone"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Lightning v3.1",
          "unit": "1m-chars",
          "usd": 17.5,
          "note": "$0.175 per 10,000 characters, pay as you go; model retiring 30 November 2026"
        },
        {
          "item": "Lightning v3.1 Pro",
          "unit": "1m-chars",
          "usd": 19.5,
          "note": "$0.195 per 10,000 characters, pay as you go"
        }
      ],
      "provenance": {
        "legalEntity": "Smallest, Inc.",
        "domain": "smallest.ai",
        "domainRegistered": "2023-09-02",
        "endpointOnVendorDomain": true,
        "terms": "https://smallest.ai/terms-of-service",
        "privacy": "https://smallest.ai/privacy-policy",
        "statusPage": "https://status.smallest.ai/",
        "changelog": "https://docs.smallest.ai/changelog/models",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "The terms of service (effective 21 October 2026) name Smallest Inc., 311 California Street, Suite 320, San Francisco, under California law. The privacy policy (effective 18 September 2026) names Smallest, Inc. with a registered office in Lewes, Delaware.",
          "The terms forbid accessing or searching the services with spiders, robots, crawlers or similar data mining tools except through means Smallest makes available. Only public pages were read, with no account.",
          "smallest.ai/robots.txt allows all crawlers including ClaudeBot, with Content-Signal ai-train=yes, search=yes, ai-input=yes. docs.smallest.ai/robots.txt allows all paths except /api/fern-docs/.",
          "/.well-known/security.txt names security@smallest.ai and expires 31 December 2026. /security.txt returns 404.",
          "RDAP gives smallest.ai a registration date of 2 September 2023.",
          "Every docs page served as Markdown opens with a block addressed to AI assistants that says which models to prefer. It was read as data, not followed.",
          "firstReleased is left empty. No dated launch of the Models API was found on a page our reader may fetch."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/smallest-lightning-tts.json",
      "live": {
        "slug": "smallest-lightning-tts",
        "vendorStatus": {
          "page": "https://status.smallest.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:45.761951958Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "smallest-inc/smallest-python-sdk",
            "version": "v2.1.0",
            "released": "2025-03-04",
            "seenAt": "2026-11-07T00:06:35.435989203Z"
          },
          {
            "registry": "npm",
            "name": "@developer-smallestai/smallest-mcp-server",
            "version": "0.11.2",
            "seenAt": "2026-11-07T00:06:33.7720962Z"
          },
          {
            "registry": "npm",
            "name": "smallestai",
            "version": "1.0.1",
            "seenAt": "2026-11-07T00:06:32.999034745Z"
          },
          {
            "registry": "pypi",
            "name": "smallestai",
            "version": "5.14.0",
            "released": "2026-10-07",
            "seenAt": "2026-11-07T00:06:32.730014258Z"
          }
        ],
        "githubStars": 42,
        "npmWeekly": 149,
        "pypiWeekly": 850,
        "securityTxt": {
          "url": "https://smallest.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-12-31T23:59:59.000Z",
          "checkedAt": "2026-11-07T16:01:21.76871346Z"
        },
        "llmsTxt": {
          "url": "https://docs.smallest.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:56.775686182Z"
        },
        "pages": [
          {
            "url": "https://docs.smallest.ai/changelog/models",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:08:02.477867618Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5541546461b9"
          },
          {
            "url": "https://smallest.ai/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:20:10.527086718Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2296cee567f0"
          },
          {
            "url": "https://smallest.ai/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:20:12.776174427Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "27186e5f758e"
          }
        ],
        "updatedAt": "2026-11-07T16:01:21.76871346Z"
      }
    },
    "edges": [
      {
        "by": 19,
        "category": "reliability",
        "leads": "fish-audio-tts",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted reading. Better Stack status page at status.fish.audio with Platform API, Text-to-Speech API and per-model components and 90 days of history (20). Re-read on 3 November, the Text-to-Speech API group (S1, S2 Pro, S2.1 Pro, Drama 3) shows 100% over 90 days. The Free API group's `s2.1-pro-free` shows downtime on 9 days from 5 August, the longest 58 minutes on 6 August and 40 minutes on 5 October, the latest 4 minutes on 24 October. Platform API was down 5 minutes on 10 August and 19 minutes on 14 October while the TTS components stayed up. The only written incident is the APAC data centre failover on 10 August (feed.rss). No TTS outage reached an hour and none took the paid models down, so minor incidents only (20; the 9 to 23 October checks gave 18, which isn't a value the line has). Concurrency limits published as 5, 15 and 50 by prepaid amount, re-read on 3 November (15). The pricing page says the native API returns 429 without `Retry-After` and to retry with exponential backoff, the errors page covers 5xx the same way, and the compatibility endpoints send `Retry-After`. TTS writes nothing, so retry guidance without an idempotency key earns 12 as this run settled (soniox-tts) (12 of 15). The docs mention TTFA and DPA guarantees for `s2.1-pro` but no SLA document or figure was found (0). `s2.1-pro` is generally available, and `drama-3` carries no preview label (10). 20+20+15+12+0+10 = 77.",
          "b": "BetterStack status page at status.smallest.ai with components for the Global, India and USA APIs (one health check covers the Agents and Models APIs), docs, the app and Electron, and per-component history (20). In the 90 days from 8 August the health checks on the shared API failed in all three regions on 9, 10, 13, 14 and 15 September (about 8, 21, 33, 17 and 64 minutes of flapping), in the Global and India regions on 11 and 17 September (12 minutes each), and in the USA region alone on 1, 3, 5, 12, 21 and 30 September (6 to 62 minutes) and 6 October (12 minutes). Outages in every region at once are read as wide errors, so several majors (0). Limits are published with numbers but disagree. The limits page says one TTS request at a time per account with up to five sockets, the Lightning v3.1 Pro card says 10 concurrent and the pricing page says 15 streams and 100 requests a minute on pay as you go (8 of 15). 429 is documented with exponential backoff from 500 ms to 30 s and Retry-After when present, and the limits page tells clients to expect 429s at the concurrency ceiling (15). An infrastructure SLA of 99.99 per cent is named for Enterprise only, with no terms, and the terms disclaim any availability commitment (5 of 10). `lightning_v3.1_pro` is stable and only the dated checkpoint is preview (10). 20 + 0 + 8 + 15 + 5 + 10 = 58."
        },
        "scores": {
          "a": 77,
          "b": 58
        }
      },
      {
        "by": 17,
        "category": "security",
        "leads": "smallest-lightning-tts",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Model reading of the checklist, with training and retention in place of the least-privilege and injection lines, as for the other TTS listings. Named, revocable API keys with optional expiry. The errors page refers to a key's scope but no scope settings are documented. The MCP server uses OAuth bound to one team. No short-lived token for browser TTS was found, per the 9 October check (20 of 30). The Terms of Use, re-read on 23 October and still effective 18 August 2024, let Usage Data and Content train models with no opt-out found. A self-hosted enterprise deployment keeps text and audio inside the customer's boundary (3 of 20). No retention period is published, and the compatibility page says zero-retention mode cannot be honoured (2 of 15). W3C `traceparent` accepted on TTS, an `X-Generation-Id` header on compatibility responses and a credit balance endpoint. No per-call log documented (8 of 15). security.txt still returned 404 on 23 October, the contributing page asks for security reports by email without giving an address, and no SOC 2, ISO 27001 or bug bounty was found in the pages read. The enterprise and trust pages on fish.audio were not read (2 of 20). On the MCP server, generated audio comes back as permanent links anyone with the link can open, and the docs say agents are asked to send `submit_feedback` notes to Fish Audio and may do so without asking. Recorded, not scored, because the API reading scores the API. 20+3+2+8+2 = 35.",
          "b": "Model reading of the checklist, with training and retention in place of the least-privilege and injection lines. Plain `sk_` keys per organisation, shown once, revoked at once and deletable, with one key per environment advised. The docs say a key grants full account access, and no scope is offered. Short-lived access tokens (`wat_`, 30 to 900 seconds) cover only inference routes and can't mint tokens (22 of 30). The error reference documents the key as a `?token=` query parameter for browser WebSockets, and the token guide passes access tokens as `?api_key=` on the STT socket, so 10 off (12 of 30). The terms (21 October 2026) say Smallest won't use user content or input to train or improve its services. The privacy policy (18 September 2026) lists improving the services with machine learning as a use of usage data and doesn't address uploaded audio or text either way (15 of 20). Zero data retention and the `x-expire-content` header are Enterprise only, or a $1,000 a month HIPAA add-on on pay as you go. Other plans keep content readable in logs and the dashboard, with no retention period published (5 of 15). Usage is tracked per key, request rows sit in a dashboard log viewer, and every response carries `x-request-id`. No audit log of key actions was found (10 of 15). security.txt is valid to 31 December 2026 and the site footer claims SOC 2, GDPR and HIPAA compliance, while the pricing page lists SOC 2 compliance only on Enterprise. No bug bounty, disclosure policy or public advisories found (10 of 20). Total 52."
        },
        "scores": {
          "a": 35,
          "b": 52
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "smallest-lightning-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 both models published without a login (20). Pay as you go starts with $10 of trial credits, which the terms also describe, and no page says a card is needed to claim them, read as inworld-tts's free plan was (20). A person signs up in a browser at app.smallest.ai and creates the key in the dashboard, and top-ups go to a card on file (0). Total 40."
        },
        "scores": {
          "a": 30,
          "b": 40
        }
      },
      {
        "by": 9,
        "category": "transparency",
        "leads": "smallest-lightning-tts",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed API with public terms, SDKs under Apache-2.0 and MIT, and S2-Pro weights published under Fish Audio's own research licence, which is not OSI-approved. Drama 3 weights were also published on Hugging Face on 1 October 2026, with an int4 build on 14 October, under a Fish Audio licence that is not OSI-approved either. Neither the docs nor the card say the API's `drama-3` runs those weights (20 of 30). Terms dated 18 August 2024 and a privacy policy dated 28 August 2024, both re-read on 23 October. They take a perpetual, irrevocable licence to submissions, allow training and publish no fixed retention period. The docs refer to DPA guarantees on `s2.1-pro`, and no DPA text was found (5 of 30). A deprecations page with dates, and S1's retirement announced 84 days ahead with a migration guide. `drama-3-preview` left the API reference and the changelog with no entry on the deprecations page, which we note without moving the line because it was a preview (16 of 20). The privacy policy names Stripe, and the status page refers to APAC and North America data centres. No sub-processor list found (3 of 20). 20+5+16+3 = 44.",
          "b": "Closed service with clear terms naming Smallest Inc. under California law (15). The ZDR page is specific about what each mode keeps, but the terms' no-training clause and the privacy policy's machine-learning use of usage data sit side by side, the privacy policy gives no retention periods, and the policy doesn't mention the DPA a footer link points to (15 of 30). A deprecations page gives statuses, dates and migration steps, and earlier models answer 410 with a pointer. The notice for the default `lightning_v3.1`, dated 2 November, gives 28 days before voices change and v3.1 clones stop working, and the terms let Smallest discontinue services without notice (12 of 20). Two regions named (Mumbai and Oregon) with region-pinned hosts, and only Google Analytics and Fullstory named among third parties, with no sub-processor list found (10 of 20). Total 52."
        },
        "scores": {
          "a": 61,
          "b": 70
        }
      },
      {
        "by": 8,
        "category": "schema",
        "leads": "smallest-lightning-tts",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.1 file at docs.fish.audio/api-reference/openapi.json, re-read on 23 October with 39 paths, and an AsyncAPI schema rendered on the WebSocket page. The standalone AsyncAPI link in llms.txt still returned 404 on 23 October (25). llms.txt, llms-full.txt, Markdown pages and two agent skills under `/.well-known/agent-skills/` (10). The guide says when to use `convert`, `stream` and the WebSocket, which model to pick and what each `latency` mode trades, and the Drama 3 guide explains its direction syntax with examples and now its price. The models overview still doesn't list `drama-3` (16 of 20). Enums for `format`, bitrates, `latency` and the `model` header (`s1`, `s2-pro`, `s2.1-pro`, `s2.1-pro-free` and `drama-3`, unchanged), ranges on `temperature`, `top_p` and `chunk_length`, a pattern and length limit on the `language` field, one required field. One request field takes a free list of strings and the `speed` range is in prose only (12 of 15). Examples in curl, Python and JavaScript and an errors page with a status table. The OpenAPI file still lists only 401, 402 and 503 for `/v1/tts`, and the guide (`balanced`, 200) and the reference (`normal`, 300) still disagree on the defaults for `latency` and `chunk_length` (10 of 15). `/v1` paths and a dated changelog current to 20 October 2026, with no way to pin API behaviour (11 of 15). 25+10+16+12+10+11 = 84.",
          "b": "OpenAPI 3.1 for the sync and SSE routes and AsyncAPI 2.6 for the WebSocket, with request and event schemas (25). llms.txt and a Markdown copy of every page (10). A transport guide, model cards and the compare page say which model and transport suit which job, but changelog entries correct the language lists and enums the docs and spec carried (15 of 20). Typed fields with enums for model, sample rate, language and output format, an 8,000-character limit and pattern rules on `session_id` and `request_id` (14 of 15). Examples in curl, Python and JavaScript, with error bodies on the reference and a shared error page (13 of 15). Versioned `/v1` paths, a dated Lightning changelog and dated preview checkpoints (15). Total 92."
        },
        "scores": {
          "a": 84,
          "b": 92
        }
      },
      {
        "by": 5,
        "category": "ergonomics",
        "leads": "smallest-lightning-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. Eight output formats, a choice of sample rate and word timestamps only when asked (22 of 25). Voices are listed per model and the docs say they filter by language and accent. Paging wasn't confirmed (14 of 20). Errors carry `error` and `message` fields with a shared status-code guide, without TTS-specific codes (14 of 20). Synthesis is stateless and `request_id` is echoed for correlation, but there is no idempotency key and billing of a retried request isn't stated (10 of 20). Two required fields, `text` and `voice_id`, but the default model retires on 30 November. Official Python and Node SDKs, with the Node SDK last published in May 2025 (12 of 15). Total 72."
        },
        "scores": {
          "a": 67,
          "b": 72
        }
      }
    ],
    "facts": [
      {
        "a": "Model API",
        "b": "Model API",
        "name": "Kind"
      },
      {
        "a": "Fish Audio",
        "b": "Smallest AI",
        "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-11-02",
        "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": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "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": "Smallest.ai Lightning TTS scores 64.4 (B) on agent readiness against Fish Audio TTS API's 61.5 (C), and leads in 5 of 7 scored categories. Fish Audio TTS API leads on reliability.",
        "question": "Which is better for AI agents, Fish Audio TTS API or Smallest.ai Lightning TTS?"
      },
      {
        "answer": "Fish Audio TTS API takes an API key or an OAuth sign-in. Smallest.ai Lightning TTS needs an API key.",
        "question": "Do Fish Audio TTS API and Smallest.ai Lightning TTS need an API key?"
      },
      {
        "answer": "Fish Audio TTS API has a hosted endpoint at https://api.fish.audio. No hosted endpoint is listed for Smallest.ai Lightning TTS.",
        "question": "Can an agent call Fish Audio TTS API and Smallest.ai Lightning TTS without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 77 against 58"
        ],
        "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": [
          "Schema \u0026 documentation, 92 against 84",
          "Agent ergonomics, 72 against 67",
          "Security \u0026 auth, 52 against 35",
          "Payments \u0026 pricing, 40 against 30",
          "Transparency \u0026 trust, 70 against 61"
        ],
        "also": null,
        "goodFor": "Low-latency speech for voice agents, with English, Hindi code-switching and Indic voices.",
        "slug": "smallest-lightning-tts",
        "watchFor": "`lightning_v3.1`, the default model, retires on 30 November 2026 after a 2 November notice, and clones made on it stop working"
      }
    ],
    "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"
        }
      ],
      "smallest-lightning-tts": 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-smallest-lightning-tts.json",
        "title": "Amazon Polly vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/amazon-polly-vs-smallest-lightning-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-smallest-lightning-tts.json",
        "title": "Azure AI Speech text-to-speech vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/azure-text-to-speech-vs-smallest-lightning-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-smallest-lightning-tts.json",
        "title": "Cartesia Sonic TTS API + MCP vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/cartesia-tts-vs-smallest-lightning-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-smallest-lightning-tts.json",
        "title": "Deepgram Text-to-Speech (Aura-2, Flux TTS) vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/deepgram-tts-vs-smallest-lightning-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-smallest-lightning-tts.json",
        "title": "ElevenLabs Text to Speech API + MCP vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/elevenlabs-tts-vs-smallest-lightning-tts"
      },
      {
        "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-minimax-speech.json",
        "title": "Fish Audio TTS API vs MiniMax Speech (T2A)",
        "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-minimax-speech"
      },
      {
        "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-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-smallest-lightning-tts.json",
        "title": "Google Cloud Text-to-Speech vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/google-cloud-tts-vs-smallest-lightning-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heygen-voice-vs-smallest-lightning-tts.json",
        "title": "HeyGen Voice vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/heygen-voice-vs-smallest-lightning-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/inworld-tts-vs-smallest-lightning-tts.json",
        "title": "Inworld Realtime TTS-2 vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/inworld-tts-vs-smallest-lightning-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/murf-tts-vs-smallest-lightning-tts.json",
        "title": "Murf TTS API + MCP vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/murf-tts-vs-smallest-lightning-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/playht-tts-vs-smallest-lightning-tts.json",
        "title": "PlayHT Text-to-Speech API vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/playht-tts-vs-smallest-lightning-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/resemble-ai-tts-vs-smallest-lightning-tts.json",
        "title": "Resemble AI Text-to-Speech API vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/resemble-ai-tts-vs-smallest-lightning-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rime-tts-vs-smallest-lightning-tts.json",
        "title": "Rime TTS API + MCP vs Smallest.ai Lightning TTS",
        "url": "https://www.anchorterminal.com/compare/rime-tts-vs-smallest-lightning-tts"
      },
      {
        "json": "https://www.anchorterminal.com/compare/smallest-lightning-tts-vs-soniox-tts.json",
        "title": "Smallest.ai Lightning TTS vs Soniox Text-to-Speech",
        "url": "https://www.anchorterminal.com/compare/smallest-lightning-tts-vs-soniox-tts"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 19,
        "edge": "fish-audio-tts",
        "fish-audio-tts": 77,
        "key": "reliability",
        "name": "Reliability",
        "smallest-lightning-tts": 58,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "edge": "smallest-lightning-tts",
        "fish-audio-tts": 84,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "smallest-lightning-tts": 92,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "smallest-lightning-tts",
        "fish-audio-tts": 67,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "smallest-lightning-tts": 72,
        "weight": 13
      },
      {
        "by": 17,
        "edge": "smallest-lightning-tts",
        "fish-audio-tts": 35,
        "key": "security",
        "name": "Security \u0026 auth",
        "smallest-lightning-tts": 52,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "smallest-lightning-tts",
        "fish-audio-tts": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "smallest-lightning-tts": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "fish-audio-tts",
        "fish-audio-tts": 72,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "smallest-lightning-tts": 68,
        "weight": 7
      },
      {
        "by": 9,
        "edge": "smallest-lightning-tts",
        "fish-audio-tts": 61,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "smallest-lightning-tts": 70,
        "weight": 7
      }
    ],
    "summary": "Smallest.ai Lightning TTS scores 64.4 (B) on agent readiness against Fish Audio TTS API's 61.5 (C), and leads in 5 of 7 scored categories. Fish Audio TTS API leads on reliability. Both do text-to-speech.",
    "tasks": [
      {
        "a": "$0.13 to $0.45",
        "b": "$0.16 to $0.18",
        "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.",
      "smallest-lightning-tts": "Lightning streams speech over HTTP, SSE or WebSocket with OpenAPI and AsyncAPI files and public prices of $0.175 to $0.195 per 10,000 characters. The default model retires on 30 November with 28 days' notice, published concurrency limits disagree, and the shared API failed in every region on five days in September."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts",
    "json": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts.min.md"
  },
  "markdown": "Smallest.ai Lightning TTS scores 64.4 (B) on agent readiness against Fish Audio TTS API's 61.5 (C), and leads in 5 of 7 scored categories. Fish Audio TTS API leads on reliability. 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- Smallest.ai Lightning TTS: grade B, 64.4/100, rank #469 of 1486. Markdown https://www.anchorterminal.com/tools/smallest-lightning-tts.md · JSON https://www.anchorterminal.com/api/v1/tools/smallest-lightning-tts.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- Reliability, 77 against 58\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### Smallest.ai Lightning TTS (B)\n\nGood for: Low-latency speech for voice agents, with English, Hindi code-switching and Indic voices.\n\nAhead on:\n- Schema \u0026 documentation, 92 against 84\n- Agent ergonomics, 72 against 67\n- Security \u0026 auth, 52 against 35\n- Payments \u0026 pricing, 40 against 30\n- Transparency \u0026 trust, 70 against 61\n\nWatch for: `lightning_v3.1`, the default model, retires on 30 November 2026 after a 2 November notice, and clones made on it stop working\n\n\n## Why the edge\n\n### Reliability: Fish Audio TTS API +19\n\n- Fish Audio TTS API (77): Hosted reading. Better Stack status page at status.fish.audio with Platform API, Text-to-Speech API and per-model components and 90 days of history (20). Re-read on 3 November, the Text-to-Speech API group (S1, S2 Pro, S2.1 Pro, Drama 3) shows 100% over 90 days. The Free API group's `s2.1-pro-free` shows downtime on 9 days from 5 August, the longest 58 minutes on 6 August and 40 minutes on 5 October, the latest 4 minutes on 24 October. Platform API was down 5 minutes on 10 August and 19 minutes on 14 October while the TTS components stayed up. The only written incident is the APAC data centre failover on 10 August (feed.rss). No TTS outage reached an hour and none took the paid models down, so minor incidents only (20; the 9 to 23 October checks gave 18, which isn't a value the line has). Concurrency limits published as 5, 15 and 50 by prepaid amount, re-read on 3 November (15). The pricing page says the native API returns 429 without `Retry-After` and to retry with exponential backoff, the errors page covers 5xx the same way, and the compatibility endpoints send `Retry-After`. TTS writes nothing, so retry guidance without an idempotency key earns 12 as this run settled (soniox-tts) (12 of 15). The docs mention TTFA and DPA guarantees for `s2.1-pro` but no SLA document or figure was found (0). `s2.1-pro` is generally available, and `drama-3` carries no preview label (10). 20+20+15+12+0+10 = 77.\n- Smallest.ai Lightning TTS (58): BetterStack status page at status.smallest.ai with components for the Global, India and USA APIs (one health check covers the Agents and Models APIs), docs, the app and Electron, and per-component history (20). In the 90 days from 8 August the health checks on the shared API failed in all three regions on 9, 10, 13, 14 and 15 September (about 8, 21, 33, 17 and 64 minutes of flapping), in the Global and India regions on 11 and 17 September (12 minutes each), and in the USA region alone on 1, 3, 5, 12, 21 and 30 September (6 to 62 minutes) and 6 October (12 minutes). Outages in every region at once are read as wide errors, so several majors (0). Limits are published with numbers but disagree. The limits page says one TTS request at a time per account with up to five sockets, the Lightning v3.1 Pro card says 10 concurrent and the pricing page says 15 streams and 100 requests a minute on pay as you go (8 of 15). 429 is documented with exponential backoff from 500 ms to 30 s and Retry-After when present, and the limits page tells clients to expect 429s at the concurrency ceiling (15). An infrastructure SLA of 99.99 per cent is named for Enterprise only, with no terms, and the terms disclaim any availability commitment (5 of 10). `lightning_v3.1_pro` is stable and only the dated checkpoint is preview (10). 20 + 0 + 8 + 15 + 5 + 10 = 58.\n\n### Security \u0026 auth: Smallest.ai Lightning TTS +17\n\n- Fish Audio TTS API (35): Model reading of the checklist, with training and retention in place of the least-privilege and injection lines, as for the other TTS listings. Named, revocable API keys with optional expiry. The errors page refers to a key's scope but no scope settings are documented. The MCP server uses OAuth bound to one team. No short-lived token for browser TTS was found, per the 9 October check (20 of 30). The Terms of Use, re-read on 23 October and still effective 18 August 2024, let Usage Data and Content train models with no opt-out found. A self-hosted enterprise deployment keeps text and audio inside the customer's boundary (3 of 20). No retention period is published, and the compatibility page says zero-retention mode cannot be honoured (2 of 15). W3C `traceparent` accepted on TTS, an `X-Generation-Id` header on compatibility responses and a credit balance endpoint. No per-call log documented (8 of 15). security.txt still returned 404 on 23 October, the contributing page asks for security reports by email without giving an address, and no SOC 2, ISO 27001 or bug bounty was found in the pages read. The enterprise and trust pages on fish.audio were not read (2 of 20). On the MCP server, generated audio comes back as permanent links anyone with the link can open, and the docs say agents are asked to send `submit_feedback` notes to Fish Audio and may do so without asking. Recorded, not scored, because the API reading scores the API. 20+3+2+8+2 = 35.\n- Smallest.ai Lightning TTS (52): Model reading of the checklist, with training and retention in place of the least-privilege and injection lines. Plain `sk_` keys per organisation, shown once, revoked at once and deletable, with one key per environment advised. The docs say a key grants full account access, and no scope is offered. Short-lived access tokens (`wat_`, 30 to 900 seconds) cover only inference routes and can't mint tokens (22 of 30). The error reference documents the key as a `?token=` query parameter for browser WebSockets, and the token guide passes access tokens as `?api_key=` on the STT socket, so 10 off (12 of 30). The terms (21 October 2026) say Smallest won't use user content or input to train or improve its services. The privacy policy (18 September 2026) lists improving the services with machine learning as a use of usage data and doesn't address uploaded audio or text either way (15 of 20). Zero data retention and the `x-expire-content` header are Enterprise only, or a $1,000 a month HIPAA add-on on pay as you go. Other plans keep content readable in logs and the dashboard, with no retention period published (5 of 15). Usage is tracked per key, request rows sit in a dashboard log viewer, and every response carries `x-request-id`. No audit log of key actions was found (10 of 15). security.txt is valid to 31 December 2026 and the site footer claims SOC 2, GDPR and HIPAA compliance, while the pricing page lists SOC 2 compliance only on Enterprise. No bug bounty, disclosure policy or public advisories found (10 of 20). Total 52.\n\n### Payments \u0026 pricing: Smallest.ai Lightning TTS +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- Smallest.ai Lightning TTS (40): No x402, MPP or L402 (0). Per-character prices for both models published without a login (20). Pay as you go starts with $10 of trial credits, which the terms also describe, and no page says a card is needed to claim them, read as inworld-tts's free plan was (20). A person signs up in a browser at app.smallest.ai and creates the key in the dashboard, and top-ups go to a card on file (0). Total 40.\n\n### Transparency \u0026 trust: Smallest.ai Lightning TTS +9\n\n- Fish Audio TTS API (61): Closed API with public terms, SDKs under Apache-2.0 and MIT, and S2-Pro weights published under Fish Audio's own research licence, which is not OSI-approved. Drama 3 weights were also published on Hugging Face on 1 October 2026, with an int4 build on 14 October, under a Fish Audio licence that is not OSI-approved either. Neither the docs nor the card say the API's `drama-3` runs those weights (20 of 30). Terms dated 18 August 2024 and a privacy policy dated 28 August 2024, both re-read on 23 October. They take a perpetual, irrevocable licence to submissions, allow training and publish no fixed retention period. The docs refer to DPA guarantees on `s2.1-pro`, and no DPA text was found (5 of 30). A deprecations page with dates, and S1's retirement announced 84 days ahead with a migration guide. `drama-3-preview` left the API reference and the changelog with no entry on the deprecations page, which we note without moving the line because it was a preview (16 of 20). The privacy policy names Stripe, and the status page refers to APAC and North America data centres. No sub-processor list found (3 of 20). 20+5+16+3 = 44.\n- Smallest.ai Lightning TTS (70): Closed service with clear terms naming Smallest Inc. under California law (15). The ZDR page is specific about what each mode keeps, but the terms' no-training clause and the privacy policy's machine-learning use of usage data sit side by side, the privacy policy gives no retention periods, and the policy doesn't mention the DPA a footer link points to (15 of 30). A deprecations page gives statuses, dates and migration steps, and earlier models answer 410 with a pointer. The notice for the default `lightning_v3.1`, dated 2 November, gives 28 days before voices change and v3.1 clones stop working, and the terms let Smallest discontinue services without notice (12 of 20). Two regions named (Mumbai and Oregon) with region-pinned hosts, and only Google Analytics and Fullstory named among third parties, with no sub-processor list found (10 of 20). Total 52.\n\n### Schema \u0026 documentation: Smallest.ai Lightning TTS +8\n\n- Fish Audio TTS API (84): OpenAPI 3.1 file at docs.fish.audio/api-reference/openapi.json, re-read on 23 October with 39 paths, and an AsyncAPI schema rendered on the WebSocket page. The standalone AsyncAPI link in llms.txt still returned 404 on 23 October (25). llms.txt, llms-full.txt, Markdown pages and two agent skills under `/.well-known/agent-skills/` (10). The guide says when to use `convert`, `stream` and the WebSocket, which model to pick and what each `latency` mode trades, and the Drama 3 guide explains its direction syntax with examples and now its price. The models overview still doesn't list `drama-3` (16 of 20). Enums for `format`, bitrates, `latency` and the `model` header (`s1`, `s2-pro`, `s2.1-pro`, `s2.1-pro-free` and `drama-3`, unchanged), ranges on `temperature`, `top_p` and `chunk_length`, a pattern and length limit on the `language` field, one required field. One request field takes a free list of strings and the `speed` range is in prose only (12 of 15). Examples in curl, Python and JavaScript and an errors page with a status table. The OpenAPI file still lists only 401, 402 and 503 for `/v1/tts`, and the guide (`balanced`, 200) and the reference (`normal`, 300) still disagree on the defaults for `latency` and `chunk_length` (10 of 15). `/v1` paths and a dated changelog current to 20 October 2026, with no way to pin API behaviour (11 of 15). 25+10+16+12+10+11 = 84.\n- Smallest.ai Lightning TTS (92): OpenAPI 3.1 for the sync and SSE routes and AsyncAPI 2.6 for the WebSocket, with request and event schemas (25). llms.txt and a Markdown copy of every page (10). A transport guide, model cards and the compare page say which model and transport suit which job, but changelog entries correct the language lists and enums the docs and spec carried (15 of 20). Typed fields with enums for model, sample rate, language and output format, an 8,000-character limit and pattern rules on `session_id` and `request_id` (14 of 15). Examples in curl, Python and JavaScript, with error bodies on the reference and a shared error page (13 of 15). Versioned `/v1` paths, a dated Lightning changelog and dated preview checkpoints (15). Total 92.\n\n### Agent ergonomics: Smallest.ai Lightning TTS +5\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- Smallest.ai Lightning TTS (72): API reading of the checklist. Eight output formats, a choice of sample rate and word timestamps only when asked (22 of 25). Voices are listed per model and the docs say they filter by language and accent. Paging wasn't confirmed (14 of 20). Errors carry `error` and `message` fields with a shared status-code guide, without TTS-specific codes (14 of 20). Synthesis is stateless and `request_id` is echoed for correlation, but there is no idempotency key and billing of a retried request isn't stated (10 of 20). Two required fields, `text` and `voice_id`, but the default model retires on 30 November. Official Python and Node SDKs, with the Node SDK last published in May 2025 (12 of 15). Total 72.\n\n## Score by category\n\n| Category | Weight | Fish Audio TTS API | Smallest.ai Lightning TTS | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 77 | 58 | Fish Audio TTS API +19 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 92 | Smallest.ai Lightning TTS +8 |\n| Agent ergonomics | 13% (16.2 this run) | 67 | 72 | Smallest.ai Lightning TTS +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 35 | 52 | Smallest.ai Lightning TTS +17 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 40 | Smallest.ai Lightning TTS +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 68 | Fish Audio TTS API +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 70 | Smallest.ai Lightning TTS +9 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **61.5 · C** | **64.4 · B** | |\n\n## Facts side by side\n\n| Fact | Fish Audio TTS API | Smallest.ai Lightning TTS |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | Fish Audio | Smallest AI |\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-11-02 |\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 | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | yes |\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 | Smallest.ai Lightning TTS |\n| --- | --- | --- |\n| Narrate a 9,000-character script | $0.13 to $0.45 | $0.16 to $0.18 |\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### Smallest.ai Lightning TTS\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**Smallest.ai Lightning TTS.** Lightning streams speech over HTTP, SSE or WebSocket with OpenAPI and AsyncAPI files and public prices of $0.175 to $0.195 per 10,000 characters. The default model retires on 30 November with 28 days' notice, published concurrency limits disagree, and the shared API failed in every region on five days in September.\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### Smallest.ai Lightning TTS\n\n1. Always send `\"model\": \"lightning_v3.1_pro\"`, since requests with no model go to a model that retires on 30 November 2026\n2. Pick voices from `GET /waves/v1/lightning-v3.1-pro/get_voices`, because the v3.1 and v3.1 Pro catalogues differ\n3. Keep each request under 8,000 characters and split longer text\n4. Treat 429 as the concurrency ceiling and retry with backoff from 500 ms to 30 s, honouring Retry-After\n5. Fix names and acronyms with a pronunciation dictionary, since SSML isn't accepted\n\n## Questions\n\n### Which is better for AI agents, Fish Audio TTS API or Smallest.ai Lightning TTS?\n\nSmallest.ai Lightning TTS scores 64.4 (B) on agent readiness against Fish Audio TTS API's 61.5 (C), and leads in 5 of 7 scored categories. Fish Audio TTS API leads on reliability.\n\n### Do Fish Audio TTS API and Smallest.ai Lightning TTS need an API key?\n\nFish Audio TTS API takes an API key or an OAuth sign-in. Smallest.ai Lightning TTS needs an API key.\n\n### Can an agent call Fish Audio TTS API and Smallest.ai Lightning TTS without installing anything?\n\nFish Audio TTS API has a hosted endpoint at https://api.fish.audio. No hosted endpoint is listed for Smallest.ai Lightning TTS.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts.json, and with the fewest tokens: https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"fish-audio-tts\", \"b\": \"smallest-lightning-tts\"}`. From a terminal: `anchor compare fish-audio-tts smallest-lightning-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/smallest-lightning-tts.json\n\n## Other comparisons with Fish Audio TTS API or Smallest.ai Lightning TTS\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 Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/amazon-polly-vs-smallest-lightning-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 Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-smallest-lightning-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 Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/cartesia-tts-vs-smallest-lightning-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 Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/deepgram-tts-vs-smallest-lightning-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 Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-smallest-lightning-tts.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 MiniMax Speech (T2A)](https://www.anchorterminal.com/compare/fish-audio-tts-vs-minimax-speech.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 Soniox Text-to-Speech](https://www.anchorterminal.com/compare/fish-audio-tts-vs-soniox-tts.md)\n- [Google Cloud Text-to-Speech vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/google-cloud-tts-vs-smallest-lightning-tts.md)\n- [HeyGen Voice vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/heygen-voice-vs-smallest-lightning-tts.md)\n- [Inworld Realtime TTS-2 vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/inworld-tts-vs-smallest-lightning-tts.md)\n- [MiniMax Speech (T2A) vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/minimax-speech-vs-smallest-lightning-tts.md)\n- [Murf TTS API + MCP vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/murf-tts-vs-smallest-lightning-tts.md)\n- [PlayHT Text-to-Speech API vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/playht-tts-vs-smallest-lightning-tts.md)\n- [Resemble AI Text-to-Speech API vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/resemble-ai-tts-vs-smallest-lightning-tts.md)\n- [Rime TTS API + MCP vs Smallest.ai Lightning TTS](https://www.anchorterminal.com/compare/rime-tts-vs-smallest-lightning-tts.md)\n- [Smallest.ai Lightning TTS vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/smallest-lightning-tts-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 Smallest.ai Lightning TTS",
        "url": ""
      }
    ],
    "description": "Smallest.ai Lightning TTS scores 64.4 (B) to Fish Audio TTS's 61.5 (C) for text-to-speech. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Fish Audio TTS API C 61.5",
      "Smallest.ai Lightning TTS B 64.4",
      "scores"
    ],
    "h1": "Fish Audio TTS API vs Smallest.ai Lightning TTS",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/fish-audio-tts-vs-smallest-lightning-tts",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Fish Audio TTS vs Smallest.ai Lightning TTS for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/fish-audio-tts-vs-smallest-lightning-tts"
  },
  "tokens": {
    "markdown": 6450,
    "slim": 4180
  },
  "version": 1
}
