{
  "data": {
    "a": {
      "slug": "46elks",
      "name": "46elks Voice API",
      "vendor": "46elks AB",
      "vendorUrl": "https://46elks.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "46elks is a Swedish telecom operator's REST API for phone calls, SMS and virtual numbers in 48 countries, with JSON call actions, call recording, SIP and WebRTC clients, and a WebSocket Realtime Voice API for connecting AI agents to calls.",
      "url": "https://www.anchorterminal.com/tools/46elks",
      "markdownUrl": "https://www.anchorterminal.com/tools/46elks.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/46elks.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/46elks.json",
      "dns": "46elks.grade.anchorterminal.com",
      "repo": "https://github.com/46elks/46elks-getting-started",
      "license": "Proprietary service under the 46elks Terms of Service (effective 12 March 2024). Example code and the Swagger file are in the public 46elks-getting-started repository",
      "transports": [
        "http",
        "websocket"
      ],
      "remoteUrl": "https://api.46elks.com/a1",
      "packages": [],
      "auth": "api-key",
      "authNotes": "HTTP Basic auth with an API username and password from the dashboard after a browser signup. Subaccounts have their own credentials. No scopes or read-only credentials found. Webhook origin can be verified per the Verify Callback Origin guide.",
      "pricing": "usage",
      "pricingNotes": "Per started minute, published by destination. UK calls cost €0.02 to landlines and €0.456 to mobiles, forwarding to a WebSocket €0.015 and to a SIP trunk €0.01. Incoming calls are free. Numbers usually €3 a month. Prepaid balance or invoice (checked 2026-11-06).",
      "priceSummary": "$3.50 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, the docs or the pricing page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://46elks.com/docs/make-call",
      "llmsTxt": "https://46elks.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/46elks/46elks-getting-started/master/code-examples/Swagger/46elksAPI.yaml",
      "capabilities": [
        "voice.calls",
        "voice.numbers",
        "voice.streaming",
        "voice.sip",
        "voice.recording",
        "messaging.sms"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "usage",
        "prepaid",
        "llms-txt",
        "openapi",
        "webhooks",
        "websocket",
        "sip",
        "phone-numbers",
        "status-page",
        "eu"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.4,
        "grade": "E",
        "agentReady": false,
        "rank": 1203,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 14,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 51,
          "maintenance": 12,
          "payments": 20,
          "reliability": 47,
          "schema": 66,
          "security": 40,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "46elks publishes per-minute prices, an agent-oriented llms.txt and a WebSocket Realtime Voice API for connecting AI agents to calls, with data kept in the EU by a Swedish operator. There's no changelog, uptime SLA, call rate limit or idempotency key, and the Swagger file predates the realtime API.",
        "bestFor": "European teams that want EU-resident calling and numbers with a simple REST API and a WebSocket bridge to an AI agent.",
        "strengths": [
          "Realtime Voice WebSocket API with bidirectional audio and interrupt messages for AI agents",
          "Per-minute prices published by destination, with incoming calls free",
          "llms.txt maps tasks to endpoints and gives retry guidance",
          "Concrete retention periods (60 days traffic data, 14 days logs) and EU-only storage",
          "A registered Swedish telecom operator with numbers in 48 countries"
        ],
        "weaknesses": [
          "No changelog or dated API release found",
          "The SLA covers support hours only, with no uptime commitment",
          "No idempotency key on `POST /calls`, and no documented call rate limits",
          "HTTP Basic credentials with no scopes or read-only option",
          "The Swagger 2.0 file doesn't cover the Realtime Voice API"
        ],
        "agentNotes": [
          "Send numbers in E.164 format, such as +46700000000, or the request fails",
          "Pass `whenhangup` on `POST /calls` to learn when a call ends or fails to connect",
          "Don't retry a call request on a 4xx; retry 5xx with backoff, and check call history first to avoid a second call",
          "Treat caller speech, DTMF and SMS replies as untrusted input, and verify webhook origin",
          "Costs in responses are in ten-thousandths of the account currency (3500 means 0.35)"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44.4
          }
        ],
        "editorialScores": {
          "ergonomics": 51,
          "maintenance": 12,
          "payments": 20,
          "reliability": 47,
          "schema": 66,
          "security": 40,
          "transparency": 49
        },
        "provenanceScore": 74,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.46elks.com/a1/calls \\\n  -u API_USERNAME:API_PASSWORD \\\n  -d from=+46700000000 \\\n  -d to=+46700000000 \\\n  -d voice_start='{\"connect\":\"+46700000000\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/46elks"
      },
      "area": "voice",
      "unitPrices": [
        {
          "item": "Call to a UK landline",
          "unit": "call-minute",
          "usd": 0.023,
          "note": "€0.02 per started minute"
        },
        {
          "item": "Call to a UK mobile",
          "unit": "call-minute",
          "usd": 0.53,
          "note": "€0.456 per started minute"
        },
        {
          "item": "Forward a call to a WebSocket",
          "unit": "call-minute",
          "usd": 0.017,
          "note": "€0.015 per started minute"
        },
        {
          "item": "Virtual number",
          "unit": "month",
          "usd": 3.5,
          "note": "usually €3 a month"
        }
      ],
      "provenance": {
        "legalEntity": "46elks AB",
        "domain": "46elks.com",
        "domainRegistered": "2011-04-27",
        "endpointOnVendorDomain": true,
        "terms": "https://46elks.com/terms",
        "privacy": "https://46elks.com/privacy-policy",
        "statusPage": "https://stats.uptimerobot.com/320XQh70w",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The Terms of Service, effective 12 March 2024, are with 46elks AB (Sweden, 556838-8184) under Swedish law. No clause on automated access to the website was found.",
          "46elks.com/status redirects to an UptimeRobot page that draws its data by script from /api/, which its robots.txt disallows, so no history was read.",
          "/.well-known/security.txt returns 404. No changelog was found; the newest blog post in the sitemap is from 2014.",
          "Euro prices converted at about 1.16 dollars to the euro for unitPrices; the pricing page lists euro and kronor.",
          "RDAP gives 46elks.com a registration date of 27 April 2011."
        ],
        "score": 74
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/46elks.json",
      "live": {
        "slug": "46elks",
        "probe": {
          "target": "https://api.46elks.com/a1",
          "method": "get",
          "lastAt": "2026-11-07T18:20:08.122651517Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 426,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 318,
          "p95ms24h": 457,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://stats.uptimerobot.com/320XQh70w",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:03.46439958Z"
        },
        "githubStars": 57,
        "securityTxt": {
          "url": "https://46elks.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:02:02.719722143Z"
        },
        "llmsTxt": {
          "url": "https://46elks.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:04.362648825Z"
        },
        "pages": [
          {
            "url": "https://46elks.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T13:58:27.545226578Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bff2a55e1a02"
          },
          {
            "url": "https://46elks.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T13:58:29.648545838Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "be068526a0d6"
          }
        ],
        "updatedAt": "2026-11-07T18:20:08.122651517Z"
      }
    },
    "answer": "Sinch Voice API + MCP scores 66.3 (B) on agent readiness against 46elks Voice API's 44.4 (E), and leads in every scored category.",
    "b": {
      "slug": "sinch-voice",
      "name": "Sinch Voice API + MCP",
      "vendor": "Sinch",
      "vendorUrl": "https://sinch.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "Programmable voice over PSTN, SIP and WebSocket streams, driven by SVAML call-control JSON.",
      "url": "https://www.anchorterminal.com/tools/sinch-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/sinch-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sinch-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sinch-voice.json",
      "dns": "sinch-voice.grade.anchorterminal.com",
      "repo": "https://github.com/sinch/sinch-mcp-server",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://voice.api.sinch.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@sinch/sdk-core"
        },
        {
          "registry": "pypi",
          "name": "sinch"
        },
        {
          "registry": "npm",
          "name": "@sinch/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Voice API v2 uses a project access key and secret, over Basic auth or as an OAuth 2.0 token. Voice API v1 at calling.api.sinch.com uses an application key and secret with Basic auth or signed requests, and Sinch recommends signed requests in production. Webhooks can be signed. The released MCP server runs over stdio with the project credentials in environment variables.",
      "pricing": "usage",
      "pricingNotes": "Prepaid pay as you go for self-created accounts, with test credits on signup. The downloadable price list gives US outbound at $0.01 a minute, billed in 60-second increments. The pricing page only shows illustrative inbound, SIP, recording and number prices (for example inbound $0.008 a minute and a number at $0.80 a month plus $0.80 setup), so check your dashboard before relying on them. TTS, conferences and IVR menus carry no extra charge (https://sinch.com/pricing/voice/).",
      "priceSummary": "Pay per use",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 or stablecoin payment path in the voice docs, pricing or llms.txt (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 1,
        "npmWeekly": 15648,
        "pypiWeekly": 11166,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.sinch.com/docs/voice-2.0/overview",
      "llmsTxt": "https://developers.sinch.com/llms.txt",
      "openapi": "https://developers.sinch.com/_bundle/docs/voice-2.0/api-reference/voice.yaml",
      "capabilities": [
        "voice.calls",
        "voice.numbers",
        "voice.streaming",
        "voice.sip",
        "voice.recording",
        "voice.transfer"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "typescript",
        "python",
        "webhooks",
        "streaming",
        "batch"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.3,
        "grade": "B",
        "agentReady": false,
        "rank": 375,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 6,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 79,
          "payments": 35,
          "reliability": 60,
          "schema": 85,
          "security": 55,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": 0,
        "verdict": "Voice API v2 adds bidirectional PCM streams, a text relay with barge-in, an OpenAPI file and Idempotency-Key on writes, but Sinch labels it preview and points GA projects to v1. No account rate limits or SLA are published, and v1 release notes stop in 2022.",
        "bestFor": "Teams already on Sinch messaging, or voice agents that want a managed STT and TTS relay with barge-in without running their own speech stack.",
        "strengths": [
          "Voice API v2 with bidirectional PCM streams and a text relay that handles barge-in",
          "OpenAPI 3.1.1 file for v2 documenting 429 with Retry-After and problem-details errors",
          "Idempotency-Key on v2 call, batch and service writes, with a 10-minute replay window",
          "Official SDKs in four languages, with Voice v2 in Node, Python and Java by October 2026",
          "Signed callbacks in v1 and v2, OAuth 2.0 tokens on v2, and ISO 27001 and SOC 2 Type 2 reports"
        ],
        "weaknesses": [
          "Voice API v2, the listed surface, is labelled preview, and Sinch tells projects that must be generally available to use v1",
          "No published account rate limits for voice and no SLA",
          "v1 release notes stop in 2022 and the v2 what's-new page is undated",
          "Public pricing is a spreadsheet download plus illustrative examples",
          "No security.txt or bug bounty"
        ],
        "agentNotes": [
          "Start new work on Voice API v2 at voice.api.sinch.com, and check the preview label before relying on it in production",
          "Send an Idempotency-Key (a UUID v4) on v2 call, batch and service writes, and reuse it when you retry within 10 minutes",
          "On a 429, wait for the Retry-After seconds before retrying",
          "Trial accounts dial verified numbers only, one call at a time, so verify the test handset first",
          "Verify the webhook signature and deduplicate on `ce-id` and `ce-source`, since fallback delivery can repeat events"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.3
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 79,
          "payments": 35,
          "reliability": 60,
          "schema": 85,
          "security": 55,
          "transparency": 57
        },
        "provenanceScore": 89,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -X POST \"https://voice.api.sinch.com/v2/projects/$SINCH_PROJECT_ID/calls\" -u \"$SINCH_KEY_ID:$SINCH_KEY_SECRET\" \\\n  -H \"Content-Type: application/json\" -d '{\"commands\":[{\"command\":\"dial\",\"callName\":\"origin\",\"from\":{\"type\":\"PHONE\",\"phone\":{\"number\":\"+15551234567\"}},\"to\":{\"type\":\"PHONE\",\"phone\":{\"number\":\"+15559876543\"}},\"events\":{\"onAnswer\":[{\"command\":\"messages\",\"messages\":[{\"type\":\"SAY\",\"say\":{\"text\":\"Hello from Sinch\"}}]}]}}]}'",
        "config": {
          "mcpServers": {
            "sinch": {
              "args": [
                "-y",
                "@sinch/mcp"
              ],
              "command": "npx",
              "env": {
                "APPLICATION_KEY": "${SINCH_APP_KEY}",
                "APPLICATION_SECRET": "${SINCH_APP_SECRET}",
                "CALLING_LINE_IDENTIFICATION": "${SINCH_CLI_NUMBER}",
                "KEY_ID": "${SINCH_KEY_ID}",
                "KEY_SECRET": "${SINCH_KEY_SECRET}",
                "PROJECT_ID": "${SINCH_PROJECT_ID}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/sinch-voice"
      },
      "sameCompany": [
        "sinch"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "US outbound",
          "unit": "call-minute",
          "usd": 0.01,
          "note": "outbound to US numbers, 60-second increments, from the downloadable price list"
        }
      ],
      "provenance": {
        "legalEntity": "Sinch AB (publ)",
        "domain": "sinch.com",
        "domainRegistered": "1997-12-03",
        "endpointOnVendorDomain": true,
        "terms": "https://sinch.com/legal/terms-and-conditions/other-sinch-terms-conditions/general-terms-and-conditions/",
        "privacy": "https://sinch.com/legal/privacy-notice/",
        "statusPage": "https://status.sinch.com",
        "changelog": "https://developers.sinch.com/docs/voice/release-notes",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Provenance shared with the Sinch messaging listing. The general terms name the contracting Sinch entity only in the order form, Sinch AB (publ) is the listed parent.",
          "The v1 voice release notes were last updated on 2022-10-06."
        ],
        "score": 89
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sinch-voice.json",
      "live": {
        "slug": "sinch-voice",
        "probe": {
          "target": "https://voice.api.sinch.com/v2",
          "method": "get",
          "lastAt": "2026-11-07T18:20:54.847830477Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 71,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 60,
          "p95ms24h": 138,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "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": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "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": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "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.sinch.com",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-11-07T18:22:01.264612629Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "sinch/sinch-mcp-server",
            "version": "v0.0.1-alpha6",
            "released": "2026-04-14",
            "seenAt": "2026-11-07T00:06:14.864187761Z"
          },
          {
            "registry": "npm",
            "name": "@sinch/mcp",
            "version": "0.0.1-beta.7",
            "seenAt": "2026-11-07T00:06:13.661360721Z"
          },
          {
            "registry": "npm",
            "name": "@sinch/sdk-core",
            "version": "1.8.0",
            "seenAt": "2026-11-07T00:06:12.62800871Z"
          },
          {
            "registry": "pypi",
            "name": "sinch",
            "version": "2.4.0",
            "released": "2026-10-28",
            "seenAt": "2026-11-07T00:06:13.447309845Z"
          }
        ],
        "githubStars": 1,
        "npmWeekly": 28872,
        "pypiWeekly": 12279,
        "securityTxt": {
          "url": "https://sinch.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:50.831149241Z"
        },
        "llmsTxt": {
          "url": "https://developers.sinch.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:55.683746614Z"
        },
        "domain": {
          "domain": "sinch.com",
          "registered": "1997-12-03",
          "source": "https://rdap.verisign.com/com/v1/domain/sinch.com",
          "checkedAt": "2026-11-01T14:13:46.583348737Z"
        },
        "pages": [
          {
            "url": "https://developers.sinch.com/docs/voice/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:04:37.604903489Z",
            "changedAt": "2026-11-05T12:28:46.806653688Z",
            "fingerprint": "b318b3294136"
          },
          {
            "url": "https://sinch.com/pricing/voice/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:20:05.823151272Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "123ffc42bc27"
          },
          {
            "url": "https://sinch.com/legal/privacy-notice/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:19:59.791487917Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6c75b4444284"
          },
          {
            "url": "https://sinch.com/legal/terms-and-conditions/other-sinch-terms-conditions/general-terms-and-conditions/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:20:01.846352011Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "743942fac2a1"
          }
        ],
        "github": {
          "repo": "sinch/sinch-mcp-server",
          "checkedAt": "2026-11-02T09:25:58.096890439Z",
          "stars": 1,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-01T13:25:29Z",
          "openIssues": 1,
          "openPRs": 6,
          "issuesOpened90d": 2,
          "issuesClosed90d": 1,
          "prsMerged90d": 59,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 46,
            "failure": 0,
            "other": 4,
            "latest": "success",
            "latestAt": "2026-10-30T11:55:18Z"
          },
          "replies": {
            "sampled": 2,
            "unanswered": 1,
            "medianDays": 0
          }
        },
        "updatedAt": "2026-11-07T18:22:01.264612629Z"
      }
    },
    "edges": [
      {
        "by": 67,
        "category": "maintenance",
        "leads": "sinch-voice",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "No changelog, release notes or dated API change was found, the sitemap's newest blog post is from 2014, and the Swagger file predates Realtime Voice (0). No dated changes in the 90 days from 8 August (0). Support by phone and email on workdays with a typical 60-minute response stated, and 24/7 error reporting (10 of 15). No official SDK (0). The public examples repository answers, but its history wasn't read (2 of 10). 0+0+10+0+2 = 12.",
          "b": "Java SDK 2.4.0 (28 October 2026) adds Voice v2 helpers, Node 1.7.0 (15 October) and Python 2.3.0 (14 October) changed Voice v2, and the MCP server's 0.0.1-beta.7 (30 October) moved its voice tools to Voice API v2 (30). In the 90 days, Node 1.6.0 (23 September) and Python 2.2.0 (21 September) added Voice v2, Java 2.3.0 (15 October) did the same, and Java 2.2.0, .NET 1.5.1 (2 September) and the 28 October releases followed (20). v1 voice release notes stop in October 2022 and v2 has an undated what's-new page, while the SDK changelogs are dated (5 of 15). Official SDKs in four languages, with Voice v2 in Node, Python and Java (15). CI on the SDK repositories, with CodeQL and dependency review on Java and an audit job on Node (9 of 10). 30 + 20 + 5 + 15 + 9 = 79."
        },
        "scores": {
          "a": 12,
          "b": 79
        }
      },
      {
        "by": 30,
        "category": "ergonomics",
        "leads": "sinch-voice",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Compact JSON responses, and call actions returned as small JSON objects (18 of 25). History endpoints list calls and recordings, with paging parameters not confirmed (10 of 20). Errors carry `error` and `detail` (12 of 20). No idempotency key on `POST /calls` or number allocation (3 of 20). Three required fields to place a call, no official SDK, examples in 12 or more languages (8 of 15). 18+10+12+3+8 = 51.",
          "b": "v2 lists take `page_size`, with no field selection (15 of 25). The v2 call list pages by link and filters by from, to, call type, time range, result and reason (18 of 20). v1 error reference with codes, and v2 errors carry a type and instance per the SDKs (15 of 20). v2 call, batch and service writes take an Idempotency-Key that returns the cached response for repeats within 10 minutes, and the webhook guide says to deduplicate on `ce-id` and `ce-source` (18 of 20). Official SDKs in Node, Python, Java and .NET, but a v2 dial is a nested commands document rather than a few fields (15). 15 + 18 + 15 + 18 + 15 = 81."
        },
        "scores": {
          "a": 51,
          "b": 81
        }
      },
      {
        "by": 19,
        "category": "schema",
        "leads": "sinch-voice",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "A Swagger 2.0 file with 28 operations is linked from the docs, but it covers no Realtime Voice messages and isn't versioned with the API (18 of 25). An llms.txt written for agents, with a task-to-endpoint table and webhook payloads, while docs pages are HTML (10). Each docs page explains parameters and when webhooks fire, such as `voice_start` loading only once a call connects (14 of 20). Form-encoded parameters with types in the Swagger file and few enums (9 of 15). Examples in many languages and a JSON error shape, with no error list (10 of 15). The `/a1/` path, with no changelog found (5 of 15). 18+10+14+9+10+5 = 66.",
          "b": "The v2 reference links an OpenAPI 3.1.1 file (version 2.0.59), read on 2 November with 11 paths and 17 operations (25). llms.txt with Markdown pages for v1 and v2 (10). Reference pages describe each SVAML action or v2 command, with a migration page on why to move to v2 (12 of 20). Typed fields with enums for call type, result and reason, and bounded integers such as maxCps and ttlSeconds (13 of 15). A v1 error and troubleshooting reference, request examples, and problem-details error answers (400, 401, 403, 404, 429, 500) documented on the v2 operations (15). Two API generations, v1 release notes last updated 2022-10-06 and an undated v2 what's-new page (10 of 15). 25 + 10 + 12 + 13 + 15 + 10 = 85."
        },
        "scores": {
          "a": 66,
          "b": 85
        }
      },
      {
        "by": 15,
        "category": "security",
        "leads": "sinch-voice",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "HTTP Basic credentials per account, with separate credentials per subaccount and no scopes found (18 of 30). Subaccounts separate traffic, with no read-only credential or confirmation for paid actions (6 of 20). Callers' speech, DTMF and SMS replies reach the agent as untrusted input. The docs show how to verify callback origin, with no prompt-injection guidance (5 of 15). Call, SMS and recording history through the API for 90 days (8 of 15). A registered Swedish telecom operator, but no security.txt (404), disclosure policy, bug bounty or certification was found (3 of 20). 18+6+5+8+3 = 40.",
          "b": "Voice v2 takes a project access key over Basic auth or as an OAuth 2.0 token. v1 uses an application key and secret with signed requests recommended. We found no per-key scopes (25 of 30). No read-only mode or confirmation step. The official MCP server's tool allow-list (--tags, or MCP_TAGS since 0.0.1-beta.7, 30 October) can leave out whole groups, and its released version runs over stdio only, as the Sinch messaging listing reads it (5 of 20). Calls carry untrusted caller speech. Callbacks are signed in v1 and v2, and we found no prompt-injection guidance (5 of 15). Call lookup and call lists by API, no audit log found (10 of 15). The trust centre lists ISO 27001:2022 and SOC 2 Type 2 reports, PCI and HIPAA, and Sinch's security contact for reports. No security.txt (404 on 2 November), no bug bounty and no advisories for @sinch/sdk-core, @sinch/mcp or sinch in OSV (10 of 20, as the Sinch messaging listing). 25 + 5 + 5 + 10 + 10 = 55."
        },
        "scores": {
          "a": 40,
          "b": 55
        }
      },
      {
        "by": 15,
        "category": "payments",
        "leads": "sinch-voice",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Per-minute prices by destination are public without login, also in kronor, with incoming calls free (20). No free credit; only SMS to the test number +46700000000 costs nothing, and accounts are prepaid or invoiced against a deposit (0). A person signs up in a browser and copies the credentials (0). 0+20+0+0 = 20.",
          "b": "No x402, MPP or L402 (0). The voice pricing page, re-read on 2 November, gives domestic outbound from $0.01 a minute with a downloadable Voice API price list, and only illustrative inbound, SIP, recording and number prices (15 of 20). Test credits and a test number on signup, with a payment method needed only to upgrade (20). A person signs up in a browser (0). 0 + 15 + 20 + 0 = 35."
        },
        "scores": {
          "a": 20,
          "b": 35
        }
      },
      {
        "by": 13,
        "category": "reliability",
        "leads": "sinch-voice",
        "name": "Reliability",
        "reasons": {
          "a": "Graded on the hosted REST and Realtime Voice APIs with the hosted lines. A status page exists, linked from 46elks.com/status on UptimeRobot (20). It draws its data by script from a path its robots.txt disallows, so no history was readable (5). SMS sending speed is documented in the FAQ, but no limit for calls, numbers or WebSocket sessions was found (5 of 15). llms.txt says to retry 5xx with exponential backoff and not to retry 4xx unchanged, with no Retry-After or idempotency for `POST /calls` (7 of 15). The SLA page commits to support hours and 24/7 error reporting with no uptime figure, and extended SLAs are by sales (0). Voice and Realtime Voice carry no beta label (10). 20+5+5+7+0+10 = 47.",
          "b": "Statuspage at status.sinch.com with Voice components and history (20). Read from its own history and incident pages on 2 November (the 1 October count from IsDown, a third-party copy of the page, is struck). From 4 August to 2 November the calling incidents each name one region, one channel or a subset of calls. Calling in AP-Southeast-1 degraded from 04:50 to 07:23 UTC on 22 September (labelled critical, one region), PSTN outbound calls saw failed attempts from 05:51 to 09:05 UTC on 2 October (one channel, no region named, posted with no impact level), and Elastic SIP Trunking in US East had non-completed calls for 8 minutes on 9 September. On 26 October a planned change took the customer dashboard down and blocked traffic for a subset of accounts. Partial incidents read as minor, so minor only (20). No account rate limits published for voice. Batch calls take a maxCps setting (1 to 1,000 calls a second), which is a requested pace, not a published limit (0 of 15). The v2 OpenAPI file, readable on 2 November, documents a 429 answer with a Retry-After header on 15 of 17 operations, and an Idempotency-Key header (16 to 128 characters) whose repeats within 10 minutes return the cached response (15). No SLA found (0). Voice API v1 is generally available, but the v2 overview, llms.txt (\"recommended for new builds/preview\") and the pricing page (Voice Relay and Streams in Public Preview) label v2, the listed surface, as preview, and tell projects that must be GA to use v1. Mixed surfaces take part of the line, as gemini-api's 5 (5 of 10). 20 + 20 + 0 + 15 + 0 + 5 = 60."
        },
        "scores": {
          "a": 47,
          "b": 60
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "46elks AB",
        "b": "Sinch",
        "name": "Vendor"
      },
      {
        "a": "https://api.46elks.com/a1",
        "b": "https://voice.api.sinch.com/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, websocket",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "$0.017 per minute of call",
        "b": "not published",
        "name": "Price for phone calls"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the 46elks Terms of Service (effective 12 March 2024). Example code and the Swagger file are in the public 46elks-getting-started repository",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "none",
        "b": "2026-10-28",
        "name": "Last release"
      },
      {
        "a": "2024-03-12",
        "b": "2026-06-01",
        "name": "Terms last updated"
      },
      {
        "a": "2018-05-20",
        "b": "2025-12-12",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "1 stars, 16k npm/wk, 11k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Sinch Voice API + MCP scores 66.3 (B) on agent readiness against 46elks Voice API's 44.4 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, 46elks Voice API or Sinch Voice API + MCP?"
      },
      {
        "answer": "46elks Voice API needs an API key. Sinch Voice API + MCP takes an API key or an OAuth sign-in.",
        "question": "Do 46elks Voice API and Sinch Voice API + MCP need an API key?"
      },
      {
        "answer": "Yes. 46elks Voice API has a hosted endpoint at https://api.46elks.com/a1 and Sinch Voice API + MCP at https://voice.api.sinch.com/v2.",
        "question": "Can an agent call 46elks Voice API and Sinch Voice API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "European teams that want EU-resident calling and numbers with a simple REST API and a WebSocket bridge to an AI agent.",
        "slug": "46elks",
        "watchFor": "No changelog or dated API release found"
      },
      {
        "aheadOn": [
          "Reliability, 60 against 47",
          "Schema \u0026 documentation, 85 against 66",
          "Agent ergonomics, 81 against 51",
          "Security \u0026 auth, 55 against 40",
          "Payments \u0026 pricing, 35 against 20",
          "Maintenance \u0026 community, 79 against 12",
          "Transparency \u0026 trust, 73 against 62"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Teams already on Sinch messaging, or voice agents that want a managed STT and TTS relay with barge-in without running their own speech stack.",
        "slug": "sinch-voice",
        "watchFor": "Voice API v2, the listed surface, is labelled preview, and Sinch tells projects that must be generally available to use v1"
      }
    ],
    "history": {
      "46elks": null,
      "sinch-voice": [
        {
          "causes": [
            "product",
            "evidence"
          ],
          "date": "2026-11-02",
          "delta": 3.6,
          "from": 62.7,
          "fromGrade": "B",
          "to": 66.3,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.1,
          "from": 62.8,
          "fromGrade": "B",
          "to": 62.7,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "voice.calls",
      "name": "Phone calls"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-bandwidth-voice.json",
        "title": "46elks Voice API vs Bandwidth Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-bandwidth-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-didlogic.json",
        "title": "46elks Voice API vs didlogic Voice API",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-didlogic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-exotel-voice.json",
        "title": "46elks Voice API vs Exotel Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-exotel-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-infobip-calls.json",
        "title": "46elks Voice API vs Infobip Calls API + MCP",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-infobip-calls"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-jambonz.json",
        "title": "46elks Voice API vs jambonz",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-jambonz"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-livekit-telephony.json",
        "title": "46elks Voice API vs LiveKit Telephony",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-livekit-telephony"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-plivo-voice.json",
        "title": "46elks Voice API vs Plivo Voice API",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-plivo-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-signalwire-voice.json",
        "title": "46elks Voice API vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-telnyx-voice.json",
        "title": "46elks Voice API vs Telnyx Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-telnyx-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-twilio-voice.json",
        "title": "46elks Voice API vs Twilio Programmable Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-twilio-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-vonage-voice.json",
        "title": "46elks Voice API vs Vonage Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-vonage-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-voximplant.json",
        "title": "46elks Voice API vs Voximplant",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-voximplant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-sinch-voice.json",
        "title": "Bandwidth Voice API + MCP vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exotel-voice-vs-sinch-voice.json",
        "title": "Exotel Voice API + MCP vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/exotel-voice-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/infobip-calls-vs-sinch-voice.json",
        "title": "Infobip Calls API + MCP vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/infobip-calls-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jambonz-vs-sinch-voice.json",
        "title": "jambonz vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/jambonz-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/livekit-telephony-vs-sinch-voice.json",
        "title": "LiveKit Telephony vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/livekit-telephony-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plivo-voice-vs-sinch-voice.json",
        "title": "Plivo Voice API vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/plivo-voice-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice.json",
        "title": "SignalWire Voice API vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sinch-voice-vs-telnyx-voice.json",
        "title": "Sinch Voice API + MCP vs Telnyx Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/sinch-voice-vs-telnyx-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sinch-voice-vs-twilio-voice.json",
        "title": "Sinch Voice API + MCP vs Twilio Programmable Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/sinch-voice-vs-twilio-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sinch-voice-vs-vonage-voice.json",
        "title": "Sinch Voice API + MCP vs Vonage Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/sinch-voice-vs-vonage-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sinch-voice-vs-voximplant.json",
        "title": "Sinch Voice API + MCP vs Voximplant",
        "url": "https://www.anchorterminal.com/compare/sinch-voice-vs-voximplant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/46elks-vs-didww-voice-and-number-management.json",
        "title": "46elks Voice API vs DIDWW Voice and Number Management API",
        "url": "https://www.anchorterminal.com/compare/46elks-vs-didww-voice-and-number-management"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didlogic-vs-sinch-voice.json",
        "title": "didlogic Voice API vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/didlogic-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didww-voice-and-number-management-vs-sinch-voice.json",
        "title": "DIDWW Voice and Number Management API vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/didww-voice-and-number-management-vs-sinch-voice"
      }
    ],
    "panel": null,
    "scores": [
      {
        "46elks": 47,
        "by": 13,
        "edge": "sinch-voice",
        "key": "reliability",
        "name": "Reliability",
        "sinch-voice": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "46elks": 66,
        "by": 19,
        "edge": "sinch-voice",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "sinch-voice": 85,
        "weight": 13
      },
      {
        "46elks": 51,
        "by": 30,
        "edge": "sinch-voice",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "sinch-voice": 81,
        "weight": 13
      },
      {
        "46elks": 40,
        "by": 15,
        "edge": "sinch-voice",
        "key": "security",
        "name": "Security \u0026 auth",
        "sinch-voice": 55,
        "weight": 14
      },
      {
        "46elks": 20,
        "by": 15,
        "edge": "sinch-voice",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "sinch-voice": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "46elks": 12,
        "by": 67,
        "edge": "sinch-voice",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "sinch-voice": 79,
        "weight": 7
      },
      {
        "46elks": 62,
        "by": 11,
        "edge": "sinch-voice",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "sinch-voice": 73,
        "weight": 7
      }
    ],
    "summary": "Sinch Voice API + MCP scores 66.3 (B) on agent readiness against 46elks Voice API's 44.4 (E), and leads in every scored category. Both do phone calls.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "46elks": "46elks publishes per-minute prices, an agent-oriented llms.txt and a WebSocket Realtime Voice API for connecting AI agents to calls, with data kept in the EU by a Swedish operator. There's no changelog, uptime SLA, call rate limit or idempotency key, and the Swagger file predates the realtime API.",
      "sinch-voice": "Voice API v2 adds bidirectional PCM streams, a text relay with barge-in, an OpenAPI file and Idempotency-Key on writes, but Sinch labels it preview and points GA projects to v1. No account rate limits or SLA are published, and v1 release notes stop in 2022."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/46elks-vs-sinch-voice",
    "json": "https://www.anchorterminal.com/compare/46elks-vs-sinch-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/46elks-vs-sinch-voice.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/46elks-vs-sinch-voice.min.md"
  },
  "markdown": "Sinch Voice API + MCP scores 66.3 (B) on agent readiness against 46elks Voice API's 44.4 (E), and leads in every scored category. Both do phone calls.\n\n- 46elks Voice API: grade E, 44.4/100, rank #1203 of 1486. Markdown https://www.anchorterminal.com/tools/46elks.md · JSON https://www.anchorterminal.com/api/v1/tools/46elks.json\n- Sinch Voice API + MCP: grade B, 66.3/100, rank #375 of 1486. Markdown https://www.anchorterminal.com/tools/sinch-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/sinch-voice.json\n- Best phone calling and voice transport APIs for AI agents: https://www.anchorterminal.com/best/voice-calling/index.md\n- All 105 calling comparisons: https://www.anchorterminal.com/compare/voice-calling/index.md\n\n## Which one, for what\n\n### 46elks Voice API (E)\n\nGood for: European teams that want EU-resident calling and numbers with a simple REST API and a WebSocket bridge to an AI agent.\n\nWatch for: No changelog or dated API release found\n\n### Sinch Voice API + MCP (B)\n\nGood for: Teams already on Sinch messaging, or voice agents that want a managed STT and TTS relay with barge-in without running their own speech stack.\n\nAhead on:\n- Reliability, 60 against 47\n- Schema \u0026 documentation, 85 against 66\n- Agent ergonomics, 81 against 51\n- Security \u0026 auth, 55 against 40\n- Payments \u0026 pricing, 35 against 20\n- Maintenance \u0026 community, 79 against 12\n- Transparency \u0026 trust, 73 against 62\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: Voice API v2, the listed surface, is labelled preview, and Sinch tells projects that must be generally available to use v1\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Sinch Voice API + MCP +67\n\n- 46elks Voice API (12): No changelog, release notes or dated API change was found, the sitemap's newest blog post is from 2014, and the Swagger file predates Realtime Voice (0). No dated changes in the 90 days from 8 August (0). Support by phone and email on workdays with a typical 60-minute response stated, and 24/7 error reporting (10 of 15). No official SDK (0). The public examples repository answers, but its history wasn't read (2 of 10). 0+0+10+0+2 = 12.\n- Sinch Voice API + MCP (79): Java SDK 2.4.0 (28 October 2026) adds Voice v2 helpers, Node 1.7.0 (15 October) and Python 2.3.0 (14 October) changed Voice v2, and the MCP server's 0.0.1-beta.7 (30 October) moved its voice tools to Voice API v2 (30). In the 90 days, Node 1.6.0 (23 September) and Python 2.2.0 (21 September) added Voice v2, Java 2.3.0 (15 October) did the same, and Java 2.2.0, .NET 1.5.1 (2 September) and the 28 October releases followed (20). v1 voice release notes stop in October 2022 and v2 has an undated what's-new page, while the SDK changelogs are dated (5 of 15). Official SDKs in four languages, with Voice v2 in Node, Python and Java (15). CI on the SDK repositories, with CodeQL and dependency review on Java and an audit job on Node (9 of 10). 30 + 20 + 5 + 15 + 9 = 79.\n\n### Agent ergonomics: Sinch Voice API + MCP +30\n\n- 46elks Voice API (51): Compact JSON responses, and call actions returned as small JSON objects (18 of 25). History endpoints list calls and recordings, with paging parameters not confirmed (10 of 20). Errors carry `error` and `detail` (12 of 20). No idempotency key on `POST /calls` or number allocation (3 of 20). Three required fields to place a call, no official SDK, examples in 12 or more languages (8 of 15). 18+10+12+3+8 = 51.\n- Sinch Voice API + MCP (81): v2 lists take `page_size`, with no field selection (15 of 25). The v2 call list pages by link and filters by from, to, call type, time range, result and reason (18 of 20). v1 error reference with codes, and v2 errors carry a type and instance per the SDKs (15 of 20). v2 call, batch and service writes take an Idempotency-Key that returns the cached response for repeats within 10 minutes, and the webhook guide says to deduplicate on `ce-id` and `ce-source` (18 of 20). Official SDKs in Node, Python, Java and .NET, but a v2 dial is a nested commands document rather than a few fields (15). 15 + 18 + 15 + 18 + 15 = 81.\n\n### Schema \u0026 documentation: Sinch Voice API + MCP +19\n\n- 46elks Voice API (66): A Swagger 2.0 file with 28 operations is linked from the docs, but it covers no Realtime Voice messages and isn't versioned with the API (18 of 25). An llms.txt written for agents, with a task-to-endpoint table and webhook payloads, while docs pages are HTML (10). Each docs page explains parameters and when webhooks fire, such as `voice_start` loading only once a call connects (14 of 20). Form-encoded parameters with types in the Swagger file and few enums (9 of 15). Examples in many languages and a JSON error shape, with no error list (10 of 15). The `/a1/` path, with no changelog found (5 of 15). 18+10+14+9+10+5 = 66.\n- Sinch Voice API + MCP (85): The v2 reference links an OpenAPI 3.1.1 file (version 2.0.59), read on 2 November with 11 paths and 17 operations (25). llms.txt with Markdown pages for v1 and v2 (10). Reference pages describe each SVAML action or v2 command, with a migration page on why to move to v2 (12 of 20). Typed fields with enums for call type, result and reason, and bounded integers such as maxCps and ttlSeconds (13 of 15). A v1 error and troubleshooting reference, request examples, and problem-details error answers (400, 401, 403, 404, 429, 500) documented on the v2 operations (15). Two API generations, v1 release notes last updated 2022-10-06 and an undated v2 what's-new page (10 of 15). 25 + 10 + 12 + 13 + 15 + 10 = 85.\n\n### Security \u0026 auth: Sinch Voice API + MCP +15\n\n- 46elks Voice API (40): HTTP Basic credentials per account, with separate credentials per subaccount and no scopes found (18 of 30). Subaccounts separate traffic, with no read-only credential or confirmation for paid actions (6 of 20). Callers' speech, DTMF and SMS replies reach the agent as untrusted input. The docs show how to verify callback origin, with no prompt-injection guidance (5 of 15). Call, SMS and recording history through the API for 90 days (8 of 15). A registered Swedish telecom operator, but no security.txt (404), disclosure policy, bug bounty or certification was found (3 of 20). 18+6+5+8+3 = 40.\n- Sinch Voice API + MCP (55): Voice v2 takes a project access key over Basic auth or as an OAuth 2.0 token. v1 uses an application key and secret with signed requests recommended. We found no per-key scopes (25 of 30). No read-only mode or confirmation step. The official MCP server's tool allow-list (--tags, or MCP_TAGS since 0.0.1-beta.7, 30 October) can leave out whole groups, and its released version runs over stdio only, as the Sinch messaging listing reads it (5 of 20). Calls carry untrusted caller speech. Callbacks are signed in v1 and v2, and we found no prompt-injection guidance (5 of 15). Call lookup and call lists by API, no audit log found (10 of 15). The trust centre lists ISO 27001:2022 and SOC 2 Type 2 reports, PCI and HIPAA, and Sinch's security contact for reports. No security.txt (404 on 2 November), no bug bounty and no advisories for @sinch/sdk-core, @sinch/mcp or sinch in OSV (10 of 20, as the Sinch messaging listing). 25 + 5 + 5 + 10 + 10 = 55.\n\n### Payments \u0026 pricing: Sinch Voice API + MCP +15\n\n- 46elks Voice API (20): No x402, MPP or L402 (0). Per-minute prices by destination are public without login, also in kronor, with incoming calls free (20). No free credit; only SMS to the test number +46700000000 costs nothing, and accounts are prepaid or invoiced against a deposit (0). A person signs up in a browser and copies the credentials (0). 0+20+0+0 = 20.\n- Sinch Voice API + MCP (35): No x402, MPP or L402 (0). The voice pricing page, re-read on 2 November, gives domestic outbound from $0.01 a minute with a downloadable Voice API price list, and only illustrative inbound, SIP, recording and number prices (15 of 20). Test credits and a test number on signup, with a payment method needed only to upgrade (20). A person signs up in a browser (0). 0 + 15 + 20 + 0 = 35.\n\n### Reliability: Sinch Voice API + MCP +13\n\n- 46elks Voice API (47): Graded on the hosted REST and Realtime Voice APIs with the hosted lines. A status page exists, linked from 46elks.com/status on UptimeRobot (20). It draws its data by script from a path its robots.txt disallows, so no history was readable (5). SMS sending speed is documented in the FAQ, but no limit for calls, numbers or WebSocket sessions was found (5 of 15). llms.txt says to retry 5xx with exponential backoff and not to retry 4xx unchanged, with no Retry-After or idempotency for `POST /calls` (7 of 15). The SLA page commits to support hours and 24/7 error reporting with no uptime figure, and extended SLAs are by sales (0). Voice and Realtime Voice carry no beta label (10). 20+5+5+7+0+10 = 47.\n- Sinch Voice API + MCP (60): Statuspage at status.sinch.com with Voice components and history (20). Read from its own history and incident pages on 2 November (the 1 October count from IsDown, a third-party copy of the page, is struck). From 4 August to 2 November the calling incidents each name one region, one channel or a subset of calls. Calling in AP-Southeast-1 degraded from 04:50 to 07:23 UTC on 22 September (labelled critical, one region), PSTN outbound calls saw failed attempts from 05:51 to 09:05 UTC on 2 October (one channel, no region named, posted with no impact level), and Elastic SIP Trunking in US East had non-completed calls for 8 minutes on 9 September. On 26 October a planned change took the customer dashboard down and blocked traffic for a subset of accounts. Partial incidents read as minor, so minor only (20). No account rate limits published for voice. Batch calls take a maxCps setting (1 to 1,000 calls a second), which is a requested pace, not a published limit (0 of 15). The v2 OpenAPI file, readable on 2 November, documents a 429 answer with a Retry-After header on 15 of 17 operations, and an Idempotency-Key header (16 to 128 characters) whose repeats within 10 minutes return the cached response (15). No SLA found (0). Voice API v1 is generally available, but the v2 overview, llms.txt (\"recommended for new builds/preview\") and the pricing page (Voice Relay and Streams in Public Preview) label v2, the listed surface, as preview, and tell projects that must be GA to use v1. Mixed surfaces take part of the line, as gemini-api's 5 (5 of 10). 20 + 20 + 0 + 15 + 0 + 5 = 60.\n\n## Score by category\n\n| Category | Weight | 46elks Voice API | Sinch Voice API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 47 | 60 | Sinch Voice API + MCP +13 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 66 | 85 | Sinch Voice API + MCP +19 |\n| Agent ergonomics | 13% (16.2 this run) | 51 | 81 | Sinch Voice API + MCP +30 |\n| Security \u0026 auth | 14% (17.5 this run) | 40 | 55 | Sinch Voice API + MCP +15 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 35 | Sinch Voice API + MCP +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 12 | 79 | Sinch Voice API + MCP +67 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 62 | 73 | Sinch Voice API + MCP +11 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **44.4 · E** | **66.3 · B** | |\n\n## Facts side by side\n\n| Fact | 46elks Voice API | Sinch Voice API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | 46elks AB | Sinch |\n| Hosted endpoint | `https://api.46elks.com/a1` | `https://voice.api.sinch.com/v2` |\n| Transports | HTTP, websocket | HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Pay per use |\n| Price for phone calls | $0.017 per minute of call | not published |\n| x402 | no | no |\n| Licence | Proprietary service under the 46elks Terms of Service (effective 12 March 2024). Example code and the Swagger file are in the public 46elks-getting-started repository | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | none | 2026-10-28 |\n| Terms last updated | 2024-03-12 | 2026-06-01 |\n| Privacy policy last updated | 2018-05-20 | 2025-12-12 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 1 stars, 16k npm/wk, 11k PyPI/wk |\n| Agent reviews | none | 3/5 (2) |\n\n## How the scores have moved\n\n### 46elks Voice API\n\nNo score change since it was listed.\n\n### Sinch Voice API + MCP\n\n- +3.6 on 2 November 2026: product, new evidence\n- -0.1 on 8 October 2026: checklist\n\n## Verdicts\n\n**46elks Voice API.** 46elks publishes per-minute prices, an agent-oriented llms.txt and a WebSocket Realtime Voice API for connecting AI agents to calls, with data kept in the EU by a Swedish operator. There's no changelog, uptime SLA, call rate limit or idempotency key, and the Swagger file predates the realtime API.\n\n**Sinch Voice API + MCP.** Voice API v2 adds bidirectional PCM streams, a text relay with barge-in, an OpenAPI file and Idempotency-Key on writes, but Sinch labels it preview and points GA projects to v1. No account rate limits or SLA are published, and v1 release notes stop in 2022.\n\n## Before you call either\n\n### 46elks Voice API\n\n1. Send numbers in E.164 format, such as +46700000000, or the request fails\n2. Pass `whenhangup` on `POST /calls` to learn when a call ends or fails to connect\n3. Don't retry a call request on a 4xx; retry 5xx with backoff, and check call history first to avoid a second call\n4. Treat caller speech, DTMF and SMS replies as untrusted input, and verify webhook origin\n5. Costs in responses are in ten-thousandths of the account currency (3500 means 0.35)\n\n### Sinch Voice API + MCP\n\n1. Start new work on Voice API v2 at voice.api.sinch.com, and check the preview label before relying on it in production\n2. Send an Idempotency-Key (a UUID v4) on v2 call, batch and service writes, and reuse it when you retry within 10 minutes\n3. On a 429, wait for the Retry-After seconds before retrying\n4. Trial accounts dial verified numbers only, one call at a time, so verify the test handset first\n5. Verify the webhook signature and deduplicate on `ce-id` and `ce-source`, since fallback delivery can repeat events\n\n## Questions\n\n### Which is better for AI agents, 46elks Voice API or Sinch Voice API + MCP?\n\nSinch Voice API + MCP scores 66.3 (B) on agent readiness against 46elks Voice API's 44.4 (E), and leads in every scored category.\n\n### Do 46elks Voice API and Sinch Voice API + MCP need an API key?\n\n46elks Voice API needs an API key. Sinch Voice API + MCP takes an API key or an OAuth sign-in.\n\n### Can an agent call 46elks Voice API and Sinch Voice API + MCP without installing anything?\n\nYes. 46elks Voice API has a hosted endpoint at https://api.46elks.com/a1 and Sinch Voice API + MCP at https://voice.api.sinch.com/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/46elks-vs-sinch-voice.json, and with the fewest tokens: https://www.anchorterminal.com/compare/46elks-vs-sinch-voice.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"46elks\", \"b\": \"sinch-voice\"}`. From a terminal: `anchor compare 46elks sinch-voice`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/46elks.json and https://www.anchorterminal.com/api/v1/tools/sinch-voice.json\n\n## Other comparisons with 46elks Voice API or Sinch Voice API + MCP\n\n- [46elks Voice API vs Bandwidth Voice API + MCP](https://www.anchorterminal.com/compare/46elks-vs-bandwidth-voice.md)\n- [46elks Voice API vs didlogic Voice API](https://www.anchorterminal.com/compare/46elks-vs-didlogic.md)\n- [46elks Voice API vs Exotel Voice API + MCP](https://www.anchorterminal.com/compare/46elks-vs-exotel-voice.md)\n- [46elks Voice API vs Infobip Calls API + MCP](https://www.anchorterminal.com/compare/46elks-vs-infobip-calls.md)\n- [46elks Voice API vs jambonz](https://www.anchorterminal.com/compare/46elks-vs-jambonz.md)\n- [46elks Voice API vs LiveKit Telephony](https://www.anchorterminal.com/compare/46elks-vs-livekit-telephony.md)\n- [46elks Voice API vs Plivo Voice API](https://www.anchorterminal.com/compare/46elks-vs-plivo-voice.md)\n- [46elks Voice API vs SignalWire Voice API](https://www.anchorterminal.com/compare/46elks-vs-signalwire-voice.md)\n- [46elks Voice API vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/46elks-vs-telnyx-voice.md)\n- [46elks Voice API vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/46elks-vs-twilio-voice.md)\n- [46elks Voice API vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/46elks-vs-vonage-voice.md)\n- [46elks Voice API vs Voximplant](https://www.anchorterminal.com/compare/46elks-vs-voximplant.md)\n- [Bandwidth Voice API + MCP vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-sinch-voice.md)\n- [Exotel Voice API + MCP vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-sinch-voice.md)\n- [Infobip Calls API + MCP vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/infobip-calls-vs-sinch-voice.md)\n- [jambonz vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/jambonz-vs-sinch-voice.md)\n- [LiveKit Telephony vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/livekit-telephony-vs-sinch-voice.md)\n- [Plivo Voice API vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/plivo-voice-vs-sinch-voice.md)\n- [SignalWire Voice API vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice.md)\n- [Sinch Voice API + MCP vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/sinch-voice-vs-telnyx-voice.md)\n- [Sinch Voice API + MCP vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/sinch-voice-vs-twilio-voice.md)\n- [Sinch Voice API + MCP vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/sinch-voice-vs-vonage-voice.md)\n- [Sinch Voice API + MCP vs Voximplant](https://www.anchorterminal.com/compare/sinch-voice-vs-voximplant.md)\n- [46elks Voice API vs DIDWW Voice and Number Management API](https://www.anchorterminal.com/compare/46elks-vs-didww-voice-and-number-management.md)\n- [didlogic Voice API vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/didlogic-vs-sinch-voice.md)\n- [DIDWW Voice and Number Management API vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/didww-voice-and-number-management-vs-sinch-voice.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": "46elks Voice API vs Sinch Voice API + MCP",
        "url": ""
      }
    ],
    "description": "Sinch Voice scores 66.3 (B) to 46elks Voice's 44.4 (E) for phone calls. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "46elks Voice API E 44.4",
      "Sinch Voice API + MCP B 66.3",
      "scores"
    ],
    "h1": "46elks Voice API vs Sinch Voice API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/46elks-vs-sinch-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "46elks Voice vs Sinch Voice for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/46elks-vs-sinch-voice"
  },
  "tokens": {
    "markdown": 4900,
    "slim": 2880
  },
  "version": 1
}
