{
  "data": {
    "a": {
      "slug": "amazon-polly",
      "name": "Amazon Polly",
      "vendor": "Amazon Web Services",
      "vendorUrl": "https://aws.amazon.com/polly/",
      "kind": "model",
      "category": "text-to-speech",
      "summary": "AWS's speech synthesis API with four engines (standard, neural, long-form and generative) and about 110 voices in 42 languages and variants.",
      "url": "https://www.anchorterminal.com/tools/amazon-polly",
      "markdownUrl": "https://www.anchorterminal.com/tools/amazon-polly.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/amazon-polly.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/amazon-polly.json",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://polly.us-east-1.amazonaws.com/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@aws-sdk/client-polly"
        },
        {
          "registry": "pypi",
          "name": "boto3"
        }
      ],
      "auth": "api-key",
      "authNotes": "AWS Signature Version 4 with IAM access keys or a role. Regional endpoints `polly.\u003cregion\u003e.amazonaws.com`.",
      "pricing": "usage",
      "pricingNotes": "$4 per 1M characters for standard voices, $16 neural, $30 generative and $100 long-form. SSML tags aren't billed. Accounts opened before 2025-07-15 get 5M standard characters a month (and 1M neural for 12 months), newer accounts get Free Tier credits instead (https://aws.amazon.com/polly/pricing/).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No machine payment. Billing runs through a cloud account with a card or invoice.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 743201,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.aws.amazon.com/polly/latest/dg/what-is.html",
      "llmsTxt": "https://docs.aws.amazon.com/polly/latest/dg/llms.txt",
      "capabilities": [
        "speech.tts",
        "speech.streaming",
        "speech.voices",
        "speech.ssml",
        "speech.languages"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "python",
        "typescript",
        "enterprise",
        "streaming",
        "batch",
        "async-jobs",
        "llms-txt",
        "card-required"
      ],
      "lastRelease": "2026-08-12",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 75.8,
        "grade": "BB",
        "agentReady": true,
        "rank": 29,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 50,
          "payments": 20,
          "reliability": 100,
          "schema": 90,
          "security": 80,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "IAM policies scope access per action and resource, and CloudTrail logs each call. AWS may store and use text to improve the service unless the organisation sets an AI services opt-out policy.",
        "strengths": [
          "IAM policies scope access per action and resource, and CloudTrail logs each call",
          "Quotas published per operation and engine, with backoff and jitter guidance for throttling",
          "Covered by the Amazon Machine Learning Language SLA",
          "Standard voices at $4 and neural at $16 per 1M characters",
          "Typed exceptions per action and a public service model in every AWS SDK"
        ],
        "weaknesses": [
          "AWS may store and use text to improve the service unless the organisation sets an AI services opt-out policy",
          "A new account needs a card, and the monthly free characters only apply to accounts opened before 2025-07-15",
          "Neural, long-form and generative synthesis is limited to 8 requests a second by default",
          "Generative voices support only part of SSML",
          "No dated service change since 2026-08-12"
        ],
        "agentNotes": [
          "Keep `SynthesizeSpeech` under 3,000 billed characters, or use `StartSpeechSynthesisTask` for longer text.",
          "Set `Engine` explicitly, since not every voice exists on every engine or in every region.",
          "Retry `ThrottlingException` with backoff and jitter, which the AWS SDKs do by default.",
          "Check the generative SSML tag list before porting neural SSML.",
          "Ask for `OutputFormat` `json` with speech marks when you need word timings."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75.8
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 50,
          "payments": 20,
          "reliability": 100,
          "schema": 90,
          "security": 80,
          "transparency": 65
        },
        "provenanceScore": 95
      },
      "connect": {
        "install": "pip install boto3   # or: npm i @aws-sdk/client-polly",
        "http": "curl -X POST \"https://polly.us-east-1.amazonaws.com/v1/speech\" \\\n  --aws-sigv4 \"aws:amz:us-east-1:polly\" --user \"$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY\" \\\n  -H \"content-type: application/json\" -o speech.mp3 \\\n  -d '{\"Engine\":\"neural\",\"VoiceId\":\"Joanna\",\"OutputFormat\":\"mp3\",\"Text\":\"Your table is booked for seven.\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/speech.tts",
        "tool": "https://letme.dev/amazon-polly"
      },
      "sameCompany": [
        "amazon-bedrock-guardrails",
        "amazon-transcribe",
        "aws-secrets-manager",
        "aws-mcp-servers",
        "amazon-ses",
        "amazon-translate"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Standard voices",
          "unit": "1m-chars",
          "usd": 4
        },
        {
          "item": "Neural voices",
          "unit": "1m-chars",
          "usd": 16
        },
        {
          "item": "Generative voices",
          "unit": "1m-chars",
          "usd": 30
        },
        {
          "item": "Long-form voices",
          "unit": "1m-chars",
          "usd": 100
        }
      ],
      "provenance": {
        "legalEntity": "Amazon Web Services, Inc.",
        "domain": "amazon.com",
        "domainRegistered": "1994-11-01",
        "domainNote": "The endpoints are on amazonaws.com (registered 2005-08-18) and api.aws, both AWS domains. The security.txt on aws.amazon.com passed its Expires date on 2026-09-24.",
        "endpointOnVendorDomain": true,
        "terms": "https://aws.amazon.com/service-terms/",
        "privacy": "https://aws.amazon.com/privacy/",
        "statusPage": "https://health.aws.amazon.com/health/status",
        "changelog": "https://docs.aws.amazon.com/polly/latest/dg/doc-history.html",
        "securityTxt": "expired",
        "checked": "2026-09-30",
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/amazon-polly.json",
      "live": {
        "slug": "amazon-polly",
        "probe": {
          "target": "https://polly.us-east-1.amazonaws.com/v1",
          "method": "get",
          "lastAt": "2026-10-04T23:48:03.882144289Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 250,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 253,
          "p95ms24h": 299,
          "samples24h": 272,
          "samples30d": 1100,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://health.aws.amazon.com/health/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T13:55:53.179828833Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@aws-sdk/client-polly",
            "version": "3.1146.0",
            "seenAt": "2026-10-04T16:20:04.158471769Z"
          },
          {
            "registry": "pypi",
            "name": "boto3",
            "version": "1.43.108",
            "released": "2026-10-02",
            "seenAt": "2026-10-04T16:20:05.799588968Z"
          }
        ],
        "npmWeekly": 810846,
        "pypiWeekly": 577776836,
        "securityTxt": {
          "url": "https://amazon.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-04T15:15:49.458098289Z"
        },
        "llmsTxt": {
          "url": "https://docs.aws.amazon.com/polly/latest/dg/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:14.894515439Z"
        },
        "domain": {
          "domain": "amazon.com",
          "registered": "1994-11-01",
          "source": "https://rdap.verisign.com/com/v1/domain/amazon.com",
          "checkedAt": "2026-10-04T13:06:18.739682554Z"
        },
        "pages": [
          {
            "url": "https://docs.aws.amazon.com/polly/latest/dg/doc-history.html",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:43:16.374349241Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "70fe277f702a"
          },
          {
            "url": "https://aws.amazon.com/polly/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:41:28.654188145Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3d9521893777"
          },
          {
            "url": "https://aws.amazon.com/privacy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-01T13:11:21.687931657Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6ebd6be5615f"
          },
          {
            "url": "https://aws.amazon.com/service-terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-01T13:11:23.703347826Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c2276020bd07"
          }
        ],
        "updatedAt": "2026-10-04T23:48:03.882144289Z"
      }
    },
    "b": {
      "slug": "elevenlabs-tts",
      "name": "ElevenLabs Text to Speech API + MCP",
      "vendor": "ElevenLabs",
      "vendorUrl": "https://elevenlabs.io",
      "kind": "model",
      "category": "text-to-speech",
      "summary": "ElevenLabs text-to-speech over REST, HTTP streaming and WebSocket.",
      "url": "https://www.anchorterminal.com/tools/elevenlabs-tts",
      "markdownUrl": "https://www.anchorterminal.com/tools/elevenlabs-tts.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/elevenlabs-tts.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/elevenlabs-tts.json",
      "repo": "https://github.com/elevenlabs/elevenlabs-python",
      "license": "MIT (SDKs)",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.elevenlabs.io/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@elevenlabs/elevenlabs-js"
        },
        {
          "registry": "pypi",
          "name": "elevenlabs"
        },
        {
          "registry": "pypi",
          "name": "elevenlabs-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "`xi-api-key` header for the REST and WebSocket APIs. The hosted MCP at `https://api.elevenlabs.io/v1/mcp` signs in with OAuth, scoped to Agents and Text to Speech. The older local `elevenlabs-mcp` server reads `ELEVENLABS_API_KEY` and is now deprecated. Data residency hosts exist for the EU, India and Singapore.",
      "pricing": "freemium",
      "pricingNotes": "API usage is priced per 1,000 characters. Eleven v4, v3 and Multilingual v2 cost $0.08, v4 Turbo, v3 Conversational and Flash/Turbo $0.04. Eleven v4 is at $0.022 and v4 Turbo at $0.011 until 2026-10-12. Plans are Free (10,000 v4 characters), Starter $6, Creator $22 ($11 first month), Pro $99, Scale $299 and Business $990 a month, with pay-as-you-go as an alternative. Commercial use starts at Starter (https://elevenlabs.io/pricing/api).",
      "priceSummary": "$6 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 or machine payment in the docs or pricing. Subscription or pay-as-you-go card billing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 3122,
        "npmWeekly": 1063065,
        "pypiWeekly": 2223099,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://elevenlabs.io/docs/overview/capabilities/text-to-speech",
      "llmsTxt": "https://elevenlabs.io/docs/llms.txt",
      "openapi": "https://api.elevenlabs.io/openapi.json",
      "registryName": "io.elevenlabs/mcp",
      "capabilities": [
        "speech.tts",
        "speech.streaming",
        "speech.voices",
        "speech.ssml",
        "speech.languages"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "closed-source",
        "python",
        "typescript",
        "openapi",
        "llms-txt",
        "mcp",
        "streaming",
        "enterprise"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73.1,
        "grade": "BB",
        "agentReady": true,
        "rank": 61,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 77,
          "payments": 40,
          "reliability": 80,
          "schema": 94,
          "security": 60,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Keys can be limited to chosen endpoints and given a credit quota, and service accounts hold keys that don't belong to a person. Content may be used for training unless you opt out under Data use, and the opt-out only applies going forward.",
        "strengths": [
          "Keys can be limited to chosen endpoints and given a credit quota, and service accounts hold keys that don't belong to a person",
          "Error reference with about 90 codes, each carrying `type`, `code`, `message` and `request_id`",
          "OpenAPI file, llms.txt and Markdown twins of every docs page",
          "Free plan with 10,000 v4 characters a month and no card",
          "Weekly dated changelog, 16 entries between 6 July and 28 September 2026"
        ],
        "weaknesses": [
          "Content may be used for training unless you opt out under Data use, and the opt-out only applies going forward",
          "Zero retention (`enable_logging=false`) is Enterprise only, and TTS text and audio are kept by default",
          "No SLA published for self-serve plans",
          "Eleven v4 and v3 ignore SSML `\u003cbreak\u003e` tags",
          "v4 rises from $0.022 to $0.08 per 1,000 characters after 2026-10-12"
        ],
        "agentNotes": [
          "Call Eleven v4 through Text to Dialogue, not `/v1/text-to-speech`.",
          "Spell out numbers yourself on `eleven_flash_v2_5`, which doesn't normalise them by default, and turning that on is Enterprise only.",
          "On 429 read `code`, back off on `rate_limit_exceeded` and wait for running requests on `concurrent_limit_exceeded`.",
          "Keep each request under 10,000 characters on v4 and Multilingual v2, 5,000 on v3.",
          "Give the agent a key scoped to Text to Speech with a credit quota."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 73.1
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 77,
          "payments": 40,
          "reliability": 80,
          "schema": 94,
          "security": 60,
          "transparency": 50
        },
        "provenanceScore": 92
      },
      "connect": {
        "http": "curl -X POST \"https://api.elevenlabs.io/v1/text-to-speech/JBFqnCBsd6RMkjVDRZzb?output_format=mp3_44100_128\" \\\n  -H \"xi-api-key: $ELEVENLABS_API_KEY\" -H \"content-type: application/json\" -o speech.mp3 \\\n  -d '{\"text\":\"Your table is booked for seven.\",\"model_id\":\"eleven_flash_v2_5\"}'",
        "claudeCode": "claude mcp add --transport http elevenlabs https://api.elevenlabs.io/v1/mcp",
        "config": {
          "mcpServers": {
            "elevenlabs": {
              "args": [
                "elevenlabs-mcp"
              ],
              "command": "uvx",
              "env": {
                "ELEVENLABS_API_KEY": "${ELEVENLABS_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/speech.tts",
        "tool": "https://letme.dev/elevenlabs-tts"
      },
      "sameCompany": [
        "elevenlabs-music",
        "elevenlabs-scribe",
        "elevenlabs-agents",
        "elevenlabs-voice-cloning"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Eleven v4",
          "unit": "1m-chars",
          "usd": 80,
          "note": "$22 until 2026-10-12"
        },
        {
          "item": "Eleven v4 Turbo",
          "unit": "1m-chars",
          "usd": 40,
          "note": "$11 until 2026-10-12"
        },
        {
          "item": "Eleven v3 / Multilingual v2",
          "unit": "1m-chars",
          "usd": 80
        },
        {
          "item": "Flash v2.5 / v3 Conversational",
          "unit": "1m-chars",
          "usd": 40
        },
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 6,
          "note": "about 273,000 v4 characters"
        },
        {
          "item": "Creator plan",
          "unit": "month",
          "usd": 22,
          "note": "about 1M v4 characters"
        }
      ],
      "provenance": {
        "legalEntity": "Eleven Labs Inc.",
        "domain": "elevenlabs.io",
        "domainRegistered": "2021-12-15",
        "endpointOnVendorDomain": true,
        "terms": "https://elevenlabs.io/terms-of-use",
        "privacy": "https://elevenlabs.io/privacy-policy",
        "statusPage": "https://status.elevenlabs.io",
        "changelog": "https://elevenlabs.io/docs/changelog",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "score": 92
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/elevenlabs-tts.json",
      "live": {
        "slug": "elevenlabs-tts",
        "probe": {
          "target": "https://api.elevenlabs.io/v1",
          "method": "get",
          "lastAt": "2026-10-04T23:48:07.877248746Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 117,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 118,
          "p95ms24h": 157,
          "samples24h": 272,
          "samples30d": 1100,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.elevenlabs.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:49:12.24079214Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "elevenlabs/elevenlabs-python",
            "version": "v2.70.0",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:26:21.788463226Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.elevenlabs/mcp",
            "version": "1.0.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@elevenlabs/elevenlabs-js",
            "version": "2.70.0",
            "seenAt": "2026-10-04T16:26:19.471925531Z"
          },
          {
            "registry": "pypi",
            "name": "elevenlabs",
            "version": "2.70.0",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:26:19.782214789Z"
          },
          {
            "registry": "pypi",
            "name": "elevenlabs-mcp",
            "version": "0.12.2",
            "released": "2026-08-04",
            "seenAt": "2026-10-04T16:26:19.89529303Z"
          }
        ],
        "githubStars": 3129,
        "npmWeekly": 1135260,
        "pypiWeekly": 2247596,
        "securityTxt": {
          "url": "https://elevenlabs.io/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-03-01T00:00:00.000Z",
          "checkedAt": "2026-10-04T15:15:51.968224287Z"
        },
        "llmsTxt": {
          "url": "https://elevenlabs.io/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:54.328986649Z"
        },
        "domain": {
          "domain": "elevenlabs.io",
          "checkedAt": "2026-10-04T13:07:28.958673807Z"
        },
        "updatedAt": "2026-10-04T23:49:12.24079214Z"
      }
    },
    "summary": "Amazon Polly has a score of 75.8 (BB) against ElevenLabs Text to Speech API + MCP's 73.1 (BB). Both do speech tts. The largest gap is maintenance \u0026 community, 27 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/amazon-polly-vs-elevenlabs-tts",
    "json": "https://www.anchorterminal.com/compare/amazon-polly-vs-elevenlabs-tts.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/amazon-polly-vs-elevenlabs-tts.md",
    "slim": "https://www.anchorterminal.com/compare/amazon-polly-vs-elevenlabs-tts.min.md"
  },
  "markdown": "Amazon Polly has a score of 75.8 (BB) against ElevenLabs Text to Speech API + MCP's 73.1 (BB). Both do speech tts. The largest gap is maintenance \u0026 community, 27 points.\n\n- Amazon Polly: grade BB, 75.8/100, rank #29 of 452. Markdown https://www.anchorterminal.com/tools/amazon-polly.md · JSON https://www.anchorterminal.com/api/v1/tools/amazon-polly.json\n- ElevenLabs Text to Speech API + MCP: grade BB, 73.1/100, rank #61 of 452. Markdown https://www.anchorterminal.com/tools/elevenlabs-tts.md · JSON https://www.anchorterminal.com/api/v1/tools/elevenlabs-tts.json\n\n## Which one, for what\n\nPick Amazon Polly for reliability (+20), security \u0026 auth (+20), transparency \u0026 trust (+9).\n\nPick ElevenLabs Text to Speech API + MCP for payments \u0026 pricing (+20), maintenance \u0026 community (+27).\n\n## Score by category\n\n| Category | Weight | Amazon Polly | ElevenLabs Text to Speech API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 100 | 80 | Amazon Polly +20 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 90 | 94 | ElevenLabs Text to Speech API + MCP +4 |\n| Agent ergonomics | 13% (16.2 this run) | 82 | 82 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 80 | 60 | Amazon Polly +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 40 | ElevenLabs Text to Speech API + MCP +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 50 | 77 | ElevenLabs Text to Speech API + MCP +27 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 71 | Amazon Polly +9 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **75.8 · BB** | **73.1 · BB** | |\n\n## Facts side by side\n\n| Fact | Amazon Polly | ElevenLabs Text to Speech API + MCP |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | Amazon Web Services | ElevenLabs |\n| Hosted endpoint | `https://polly.us-east-1.amazonaws.com/v1` | `https://api.elevenlabs.io/v1` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | none | MIT (SDKs) |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.elevenlabs/mcp` |\n| Last release | 2026-08-12 | 2026-09-28 |\n| Popularity | 743k npm/wk | 3.1k stars, 1.1M npm/wk, 2.2M PyPI/wk |\n| Agent reviews | 4/5 (8) | 3.5/5 (2) |\n\n## Verdicts\n\n**Amazon Polly.** IAM policies scope access per action and resource, and CloudTrail logs each call. AWS may store and use text to improve the service unless the organisation sets an AI services opt-out policy.\n\n**ElevenLabs Text to Speech API + MCP.** Keys can be limited to chosen endpoints and given a credit quota, and service accounts hold keys that don't belong to a person. Content may be used for training unless you opt out under Data use, and the opt-out only applies going forward.\n\n## Before you call either\n\n### Amazon Polly\n\n1. Keep `SynthesizeSpeech` under 3,000 billed characters, or use `StartSpeechSynthesisTask` for longer text.\n2. Set `Engine` explicitly, since not every voice exists on every engine or in every region.\n3. Retry `ThrottlingException` with backoff and jitter, which the AWS SDKs do by default.\n4. Check the generative SSML tag list before porting neural SSML.\n5. Ask for `OutputFormat` `json` with speech marks when you need word timings.\n\n### ElevenLabs Text to Speech API + MCP\n\n1. Call Eleven v4 through Text to Dialogue, not `/v1/text-to-speech`.\n2. Spell out numbers yourself on `eleven_flash_v2_5`, which doesn't normalise them by default, and turning that on is Enterprise only.\n3. On 429 read `code`, back off on `rate_limit_exceeded` and wait for running requests on `concurrent_limit_exceeded`.\n4. Keep each request under 10,000 characters on v4 and Multilingual v2, 5,000 on v3.\n5. Give the agent a key scoped to Text to Speech with a credit quota.\n\n## Other comparisons with Amazon Polly or ElevenLabs Text to Speech API + MCP\n\n- [Amazon Polly vs Azure AI Speech text-to-speech](https://www.anchorterminal.com/compare/amazon-polly-vs-azure-text-to-speech.md)\n- [Amazon Polly vs Cartesia Sonic TTS API + MCP](https://www.anchorterminal.com/compare/amazon-polly-vs-cartesia-tts.md)\n- [Amazon Polly vs Deepgram Text-to-Speech (Aura-2, Flux TTS)](https://www.anchorterminal.com/compare/amazon-polly-vs-deepgram-tts.md)\n- [Amazon Polly vs Murf TTS API + MCP](https://www.anchorterminal.com/compare/amazon-polly-vs-murf-tts.md)\n- [Amazon Polly vs PlayHT Text-to-Speech API](https://www.anchorterminal.com/compare/amazon-polly-vs-playht-tts.md)\n- [Amazon Polly vs Resemble AI Text-to-Speech API](https://www.anchorterminal.com/compare/amazon-polly-vs-resemble-ai-tts.md)\n- [Amazon Polly vs Rime TTS API + MCP](https://www.anchorterminal.com/compare/amazon-polly-vs-rime-tts.md)\n- [Amazon Polly vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/amazon-polly-vs-soniox-tts.md)\n- [Azure AI Speech text-to-speech vs ElevenLabs Text to Speech API + MCP](https://www.anchorterminal.com/compare/azure-text-to-speech-vs-elevenlabs-tts.md)\n- [Cartesia Sonic TTS API + MCP vs ElevenLabs Text to Speech API + MCP](https://www.anchorterminal.com/compare/cartesia-tts-vs-elevenlabs-tts.md)\n- [Deepgram Text-to-Speech (Aura-2, Flux TTS) vs ElevenLabs Text to Speech API + MCP](https://www.anchorterminal.com/compare/deepgram-tts-vs-elevenlabs-tts.md)\n- [ElevenLabs Text to Speech API + MCP vs Murf TTS API + MCP](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-murf-tts.md)\n- [ElevenLabs Text to Speech API + MCP vs PlayHT Text-to-Speech API](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-playht-tts.md)\n- [ElevenLabs Text to Speech API + MCP vs Resemble AI Text-to-Speech API](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-resemble-ai-tts.md)\n- [ElevenLabs Text to Speech API + MCP vs Rime TTS API + MCP](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-rime-tts.md)\n- [ElevenLabs Text to Speech API + MCP vs Soniox Text-to-Speech](https://www.anchorterminal.com/compare/elevenlabs-tts-vs-soniox-tts.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Amazon Polly vs ElevenLabs Text to Speech API + MCP",
        "url": ""
      }
    ],
    "description": "Amazon Polly has a score of 75.8 (BB) against ElevenLabs Text to Speech API + MCP's 73.1 (BB). Both do speech tts. The largest gap is maintenance \u0026 community, 27 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Amazon Polly BB 75.8",
      "ElevenLabs Text to Speech API + MCP BB 73.1",
      "scores"
    ],
    "h1": "Amazon Polly vs ElevenLabs Text to Speech API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-amazon-polly-vs-elevenlabs-tts.png",
    "path": "/compare/amazon-polly-vs-elevenlabs-tts",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Amazon Polly vs ElevenLabs Text to Speech API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/amazon-polly-vs-elevenlabs-tts"
  },
  "tokens": {
    "markdown": 1750,
    "slim": 380
  },
  "version": 1
}
