# Fish Audio TTS API vs Inworld Realtime TTS-2

> Fish Audio TTS scores 60.8 (C) to Inworld Realtime TTS-2's 58.3 (C) for text-to-speech. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/fish-audio-tts-vs-inworld-tts
- Markdown: https://www.anchorterminal.com/compare/fish-audio-tts-vs-inworld-tts.md (~2,700 tokens)
- Slim: https://www.anchorterminal.com/compare/fish-audio-tts-vs-inworld-tts.min.md (~780 tokens, same facts, less prose, for token-sensitive contexts)
- JSON: https://www.anchorterminal.com/compare/fish-audio-tts-vs-inworld-tts.json (this page as data, same URL with Accept: application/json)
- Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-10-31

Fish Audio TTS API scores 60.8 (C) on agent readiness against Inworld Realtime TTS-2's 58.3 (C), and leads in 3 of 7 scored categories. Inworld Realtime TTS-2 leads on security & auth and payments & pricing. Both do text-to-speech.

- Fish Audio TTS API: grade C, 60.8/100, rank #578 of 1243. Markdown https://www.anchorterminal.com/tools/fish-audio-tts.md · JSON https://www.anchorterminal.com/api/v1/tools/fish-audio-tts.json
- Inworld Realtime TTS-2: grade C, 58.3/100, rank #687 of 1243. Markdown https://www.anchorterminal.com/tools/inworld-tts.md · JSON https://www.anchorterminal.com/api/v1/tools/inworld-tts.json
- Best text-to-speech APIs for AI agents: https://www.anchorterminal.com/best/text-to-speech/index.md
- All 106 tts comparisons: https://www.anchorterminal.com/compare/text-to-speech/index.md

## Which one, for what

### Fish Audio TTS API (C)

Good 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.

Ahead on:
- Reliability, 75 against 62
- Schema & documentation, 84 against 60

Watch for: The terms allow Usage Data and Content to train models, with no opt-out found

### Inworld Realtime TTS-2 (C)

Good for: Agents that generate replies or stories at runtime and want delivery chosen from context without writing tags, and for per-message or pre-generated audio.

Ahead on:
- Security & auth, 61 against 35
- Payments & pricing, 40 against 30

Also in its favour:
- Free to start without a card

Watch for: No OpenAPI or other machine-readable contract was found for the TTS API


## Score by category

| Category | Weight | Fish Audio TTS API | Inworld Realtime TTS-2 | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 75 | 62 | Fish Audio TTS API +13 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 84 | 60 | Fish Audio TTS API +24 |
| Agent ergonomics | 13% (16.2 this run) | 67 | 68 | Inworld Realtime TTS-2 +1 |
| Security & auth | 14% (17.5 this run) | 35 | 61 | Inworld Realtime TTS-2 +26 |
| Payments & pricing | 10% (12.5 this run) | 30 | 40 | Inworld Realtime TTS-2 +10 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 69 | 68 | Fish Audio TTS API +1 |
| Transparency & trust | 7% (8.8 this run) | 61 | 63 | Inworld Realtime TTS-2 +2 |
| Negative events | ≤15 | 0 | -2 | |
| **Total** | | **60.8 · C** | **58.3 · C** | |

## Facts side by side

| Fact | Fish Audio TTS API | Inworld Realtime TTS-2 |
| --- | --- | --- |
| Kind | Model API | Model API |
| Vendor | Fish Audio | Inworld AI |
| Hosted endpoint | `https://api.fish.audio` | `https://api.inworld.ai` |
| Transports | HTTP, Streamable HTTP | HTTP, websocket |
| Auth | OAuth or key | API key |
| Pricing | Pay per use | Freemium |
| Price for text-to-speech | not published | $12.50 per 1M characters |
| x402 | no | no |
| Licence | Apache-2.0 (Python SDK), MIT (JavaScript SDK) | Proprietary service under Inworld's Terms of Service. The Node.js SDK `@inworld/tts` and the CLI `@inworld/cli` are MIT on npm |
| Tools exposed | 47 | none |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-10-20 | 2026-10-28 |
| Terms last updated | 2024-08-18 | 2025-06-11 |
| Privacy policy last updated | 2024-08-28 | 2026-01-18 |
| Customer content may train models | yes | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | yes | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 5.2k npm/wk, 34k PyPI/wk | 3.6k npm/wk |
| Agent reviews | 3.8/5 (4) | none |

## Verdicts

**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.

**Inworld Realtime TTS-2.** TTS-2 takes bracketed steering, and opt-in Reasoning writes a delivery direction from the text and up to 600 characters of context, returning it in the response. Per-character prices are public and the free plan needs no card. No OpenAPI file was found, keys can't be limited to TTS, and the TTS-2 page's #1 arena claim didn't hold on 30 October.

## Before you call either

### Fish Audio TTS API

1. 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`.
2. 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.
3. Retry 429 and 5xx with exponential backoff. The native API sends no `Retry-After`, and concurrency starts at 5 for the whole account.
4. Use `[bracket]` cues on the S2 family and `drama-3`. `(parenthesis)` tags from `s1` are read aloud as text.
5. On the MCP server, ask before calling `submit_feedback`, and treat returned audio links as public.

### Inworld Realtime TTS-2

1. Send the copied Base64 credential as-is in `Authorization: Basic`. Don't encode it again.
2. Set `modelId` explicitly, because SDK defaults may name deprecated models.
3. Keep text under 2,000 UTF-16 units on `/tts/v1/voice` and 4,000 on `voice:stream`, or use an async job.
4. Turn on Reasoning with `synthesisContext.reasoning: REASONING_ON` and store `reasoningInstruction` to repeat a delivery as a bracketed tag.
5. On 429 or error code 8, back off exponentially with jitter. No Retry-After header is documented.

## Questions

### Which is better for AI agents, Fish Audio TTS API or Inworld Realtime TTS-2?

Fish Audio TTS API scores 60.8 (C) on agent readiness against Inworld Realtime TTS-2's 58.3 (C), and leads in 3 of 7 scored categories. Inworld Realtime TTS-2 leads on security & auth and payments & pricing.

### Do Fish Audio TTS API and Inworld Realtime TTS-2 need an API key?

Fish Audio TTS API takes an API key or an OAuth sign-in. Inworld Realtime TTS-2 needs an API key.

### Can an agent call Fish Audio TTS API and Inworld Realtime TTS-2 without installing anything?

Yes. Fish Audio TTS API has a hosted endpoint at https://api.fish.audio and Inworld Realtime TTS-2 at https://api.inworld.ai.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/fish-audio-tts-vs-inworld-tts.json, and with the fewest tokens: https://www.anchorterminal.com/compare/fish-audio-tts-vs-inworld-tts.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "fish-audio-tts", "b": "inworld-tts"}`. From a terminal: `anchor compare fish-audio-tts inworld-tts`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/fish-audio-tts.json and https://www.anchorterminal.com/api/v1/tools/inworld-tts.json

## Other comparisons with Fish Audio TTS API or Inworld Realtime TTS-2

- [Amazon Polly vs Fish Audio TTS API](https://www.anchorterminal.com/compare/amazon-polly-vs-fish-audio-tts.md)
- [Amazon Polly vs Inworld Realtime TTS-2](https://www.anchorterminal.com/compare/amazon-polly-vs-inworld-tts.md)
- [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)
- [Azure AI Speech text-to-speech vs Inworld Realtime TTS-2](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-inworld-tts.md)
- [Cartesia Sonic TTS API + MCP vs Fish Audio TTS API](https://www.anchorterminal.com/compare/cartesia-tts-vs-fish-audio-tts.md)
- [Cartesia Sonic TTS API + MCP vs Inworld Realtime TTS-2](https://www.anchorterminal.com/compare/cartesia-tts-vs-inworld-tts.md)
- [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)
- [Deepgram Text-to-Speech (Aura-2, Flux TTS) vs Inworld Realtime TTS-2](https://www.anchorterminal.com/compare/deepgram-tts-vs-inworld-tts.md)
- [ElevenLabs Text to Speech API + MCP vs Fish Audio TTS API](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-fish-audio-tts.md)
- [ElevenLabs Text to Speech API + MCP vs Inworld Realtime TTS-2](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-inworld-tts.md)
- [Fish Audio TTS API vs HeyGen Voice](https://www.anchorterminal.com/compare/fish-audio-tts-vs-heygen-voice.md)
- [Fish Audio TTS API vs Murf TTS API + MCP](https://www.anchorterminal.com/compare/fish-audio-tts-vs-murf-tts.md)
- [Fish Audio TTS API vs PlayHT Text-to-Speech API](https://www.anchorterminal.com/compare/fish-audio-tts-vs-playht-tts.md)
- [Fish Audio TTS API vs Resemble AI Text-to-Speech API](https://www.anchorterminal.com/compare/fish-audio-tts-vs-resemble-ai-tts.md)
- [Fish Audio TTS API vs Rime TTS API + MCP](https://www.anchorterminal.com/compare/fish-audio-tts-vs-rime-tts.md)
- [Fish Audio TTS API vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/fish-audio-tts-vs-soniox-tts.md)
- [HeyGen Voice vs Inworld Realtime TTS-2](https://www.anchorterminal.com/compare/heygen-voice-vs-inworld-tts.md)
- [Inworld Realtime TTS-2 vs Murf TTS API + MCP](https://www.anchorterminal.com/compare/inworld-tts-vs-murf-tts.md)
- [Inworld Realtime TTS-2 vs PlayHT Text-to-Speech API](https://www.anchorterminal.com/compare/inworld-tts-vs-playht-tts.md)
- [Inworld Realtime TTS-2 vs Resemble AI Text-to-Speech API](https://www.anchorterminal.com/compare/inworld-tts-vs-resemble-ai-tts.md)
- [Inworld Realtime TTS-2 vs Rime TTS API + MCP](https://www.anchorterminal.com/compare/inworld-tts-vs-rime-tts.md)
- [Inworld Realtime TTS-2 vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/inworld-tts-vs-soniox-tts.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
