{
  "data": {
    "a": {
      "slug": "jambonz",
      "name": "jambonz",
      "vendor": "FirstFive8, Inc.",
      "vendorUrl": "https://jambonz.org",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "jambonz is a programmable voice platform from FirstFive8 for calls over a customer's own SIP carriers. Applications control calls through a REST API, webhooks or a WebSocket API, on the hosted jambonz.cloud or a self-hosted cluster under a commercial licence.",
      "url": "https://www.anchorterminal.com/tools/jambonz",
      "markdownUrl": "https://www.anchorterminal.com/tools/jambonz.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/jambonz.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/jambonz.json",
      "repo": "https://github.com/jambonz/jambonz-feature-server",
      "license": "Proprietary. jambonz.cloud is under the jambonz Terms of Use and self-hosted jambonz Commercial needs a paid licence key. The API server, feature server and SDK repositories on GitHub are MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@jambonz/sdk"
        },
        {
          "registry": "pypi",
          "name": "jambonz-python-sdk"
        },
        {
          "registry": "npm",
          "name": "@jambonz/mcp-schema-server"
        }
      ],
      "auth": "api-key",
      "authNotes": "A bearer token sent as `Authorization: Bearer \u003ctoken\u003e`, created in the jambonz.cloud portal or with `POST /ApiKeys` by an existing token. A token belongs to one account or one service provider and reaches everything that owner can. No scopes or read-only keys were found. Access is self-serve after a browser sign-up with email, Google or GitHub. Webhooks to the application are signed with a `Jambonz-Signature` header on the hosted platform, or protected with HTTP basic authentication.",
      "pricing": "paid",
      "pricingNotes": "jambonz.cloud costs $8 a concurrent session a month for 5 to 249 sessions, $6 for 250 to 499 and $5 for 500 or more, with no per-minute charge. A three-week trial comes first, and the terms describe choosing a subscription at its end. Self-hosted licences cost $7 a session a month or $2,000 a month for unlimited sessions on one cluster, after a 30-day trial of 10 sessions. Carrier minutes, phone numbers, speech and LLM usage are bought from other vendors. Air-gapped, OEM and Enterprise support prices are by quote (https://jambonz.org/pricing, checked 2026-10-08).",
      "priceSummary": "$8 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the three OpenAPI files or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 103,
        "npmWeekly": 1368,
        "pypiWeekly": 420,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.jambonz.org",
      "llmsTxt": "https://docs.jambonz.org/llms.txt",
      "openapi": "https://docs.jambonz.org/openapi/rest-call-control.json",
      "capabilities": [
        "voice.calls",
        "voice.sip",
        "voice.streaming",
        "voice.recording",
        "voice.agent"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "sip",
        "webrtc",
        "open-source",
        "openapi",
        "llms-txt",
        "typescript",
        "python",
        "webhooks",
        "websocket",
        "free-trial"
      ],
      "lastRelease": "2026-10-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.2,
        "grade": "D",
        "agentReady": false,
        "rank": 712,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 11,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 54,
          "maintenance": 78,
          "payments": 40,
          "reliability": 36,
          "schema": 78,
          "security": 42,
          "transparency": 50
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -3,
        "negativeNotes": [
          "24 September 2026, fixed and documented. The 11.1.5 release notes list API server flaws found in a security review, among them privilege escalation in user management, accounts able to write operator-only fields and limits, and a call-logs route that could read arbitrary CloudWatch log groups. The 11.0.0 notes of 8 July 2026 also mention cross-account authorisation hardening. No advisory or CVE was published. 3 points, reduced because the fixes shipped and were disclosed (https://docs.jambonz.org/changelog/2026/9/24)"
        ],
        "verdict": "OpenAPI 3.1 and AsyncAPI documents, an llms.txt and Markdown pages cover the REST and WebSocket APIs, and session prices are public. No status page, security.txt or advisory was found, API keys carry no scopes, and the 2021 privacy policy says audio is never stored while the October 2026 release notes say support keeps call audio for a few days.",
        "bestFor": "Teams that already have a SIP carrier and speech and LLM vendors and want call control with flat session pricing, or that must run the voice layer in their own network.",
        "strengths": [
          "Three OpenAPI 3.1 documents (10, 116 and 4 operations) and an AsyncAPI 2.6.0 document for the WebSocket channels are public",
          "The docs publish an llms.txt, every page as Markdown and a docs MCP server at `https://docs.jambonz.org/_mcp/server`",
          "Prices are per concurrent session a month ($8, $6 or $5 on the cloud), with no per-minute charge and recording and streaming included",
          "Six dated release notes from 14 August to 4 October 2026, each with a component version table and self-hosted upgrade notes",
          "The API server, feature server and both SDKs are public under MIT, and the same platform can run in the customer's own network"
        ],
        "weaknesses": [
          "No status page, uptime SLA, security.txt, `SECURITY.md` or published advisory was found for jambonz.cloud or the repositories",
          "The privacy policy of 4 May 2021 says audio is never stored. The 4 October 2026 release notes say support keeps SIP and RTP from calls for a few days",
          "API keys are bearer tokens for a whole account or service provider, with no scopes, no read-only key and no delete operation in the published reference",
          "The rate limit page gives 600 requests per 5 minutes per IP address. The 4 October release notes give 4,000 call creations a minute per account",
          "No idempotency key was found on `POST /Accounts/{AccountSid}/Calls`, so a retried request can place a second call",
          "jambonz sells no phone numbers or minutes. Every call needs a SIP trunk from another carrier and the customer's own speech vendor keys"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer \u003ctoken\u003e` to `https://api.jambonz.cloud/v1`, the server in the OpenAPI files. The REST introduction page gives `https://jambonz.cloud/api` instead, so confirm the base URL with the operator",
          "Create a call with `from`, `to` and either `application_sid` or `call_hook`. Do not retry a timed-out create without checking `GET /Accounts/{AccountSid}/Calls` first",
          "Read `ratelimit-remaining` and `ratelimit-reset` on every response and stop when a `429` arrives",
          "Append `#rc=3\u0026rp=5xx,ct` to an application URL to turn on webhook retries. HTTP webhooks are not retried by default",
          "Check the account has a carrier and speech credentials before dialling. jambonz does not supply numbers, minutes or speech services"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.2
          }
        ],
        "editorialScores": {
          "ergonomics": 54,
          "maintenance": 78,
          "payments": 40,
          "reliability": 36,
          "schema": 78,
          "security": 42,
          "transparency": 43
        },
        "provenanceScore": 57
      },
      "connect": {
        "install": "npm install @jambonz/sdk",
        "http": "POST https://api.jambonz.cloud/v1/Accounts/{AccountSid}/Calls\nAuthorization: Bearer \u003ctoken\u003e\nContent-Type: application/json"
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/jambonz"
      },
      "area": "voice",
      "unitPrices": [
        {
          "item": "Cloud, concurrent session (5 to 249 sessions)",
          "unit": "month",
          "usd": 8,
          "note": "monthly subscription, no per-minute charge"
        },
        {
          "item": "Cloud, concurrent session (250 to 499 sessions)",
          "unit": "month",
          "usd": 6,
          "note": "monthly subscription"
        },
        {
          "item": "Cloud, concurrent session (500 or more sessions)",
          "unit": "month",
          "usd": 5,
          "note": "monthly subscription"
        },
        {
          "item": "Self-hosted licence, concurrent session",
          "unit": "month",
          "usd": 7,
          "note": "one cluster, keyed to its domain"
        },
        {
          "item": "Self-hosted licence, unlimited sessions",
          "unit": "month",
          "usd": 2000,
          "note": "one cluster, keyed to its domain"
        },
        {
          "item": "Installation support package",
          "unit": "tx",
          "usd": 1000,
          "note": "one-time fee for one month of installation support"
        }
      ],
      "provenance": {
        "legalEntity": "FirstFive8, Inc.",
        "domain": "jambonz.org",
        "domainRegistered": "2019-08-13",
        "endpointOnVendorDomain": false,
        "terms": "https://jambonz.org/terms",
        "privacy": "https://jambonz.org/privacy",
        "statusPage": "",
        "changelog": "https://docs.jambonz.org/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms link is the jambonz Terms of Use, labelled Terms of Service (Cloud) in the site footer, last updated 4 May 2021, between the user and FirstFive8, Inc of Charlestown, Massachusetts. Self-hosted and OEM customers have separate terms at https://jambonz.org/legal-terms-selfhosted and https://jambonz.org/legal-terms-oem.",
          "The privacy policy was last updated 4 May 2021. It says it is intended for residents of the United States. No data processing addendum or sub-processor list was found.",
          "The hosted API answers on jambonz.cloud (`https://api.jambonz.cloud/v1` in the OpenAPI files, `https://jambonz.cloud/api` in the REST introduction), a second domain of the vendor's. The schema MCP server is on jambonz.app.",
          "No status page is linked from jambonz.org, the docs or the jambonz.cloud landing page.",
          "https://jambonz.org/.well-known/security.txt returned 404. No `SECURITY.md` was found in jambonz-api-server, jambonz-feature-server, node-sdk or python-sdk.",
          "RDAP for jambonz.org gives a registration date of 2019-08-13.",
          "The cloud terms forbid crawling, indexing or storing pages of the Service in a non-transitory manner. robots.txt on jambonz.org, docs.jambonz.org and jambonz.cloud allows every path we read. The pages were read once and the copies deleted.",
          "docs.jambonz.org/llms.txt opens with a block headed Instructions for AI Agents (append `.md` for Markdown, connect to the docs MCP server). We recorded it and did not act on it."
        ],
        "score": 57
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/jambonz.json"
    },
    "answer": "SignalWire Voice API scores 67.1 (B) on agent readiness against jambonz's 49.2 (D), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "signalwire-voice",
      "name": "SignalWire Voice API",
      "vendor": "SignalWire",
      "vendorUrl": "https://signalwire.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "Programmable calling API from the team behind FreeSWITCH.",
      "url": "https://www.anchorterminal.com/tools/signalwire-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/signalwire-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/signalwire-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/signalwire-voice.json",
      "repo": "https://github.com/signalwire/signalwire-python",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "signalwire-sdk"
        },
        {
          "registry": "npm",
          "name": "@signalwire/sdk"
        },
        {
          "registry": "pypi",
          "name": "signalwire"
        }
      ],
      "auth": "api-key",
      "authNotes": "HTTP Basic auth with the Project ID and an API token, scoped per product (the Voice scope for calls). Each account has its own Space subdomain, so the host differs per customer. New tokens start with swapi_ since September 2026.",
      "pricing": "usage",
      "pricingNotes": "Pay as you go. New accounts start in trial mode without a card, and adding a card with at least $5 of credit lifts the restrictions. US local inbound $0.0066 and outbound $0.008 a minute, toll-free inbound $0.0147 and outbound $0.0069, SIP or WebRTC legs $0.003. Local numbers $0.50 a month, toll-free $0.80. Recording $0.002 a minute, live transcription $0.065 a minute per direction, and the AI agent runtime $0.16 a minute including STT, LLM and standard TTS (https://www.signalwire.com/pricing/voice).",
      "priceSummary": "$0.50 / mo",
      "where": "local",
      "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": 8,
        "npmWeekly": 1531,
        "pypiWeekly": 1349,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://signalwire.com/docs/platform/voice",
      "llmsTxt": "https://signalwire.com/docs/llms.txt",
      "openapi": "https://signalwire.com/docs/openapi.json",
      "capabilities": [
        "voice.calls",
        "voice.numbers",
        "voice.streaming",
        "voice.sip",
        "voice.recording",
        "voice.transfer"
      ],
      "tags": [
        "hosted",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "streaming"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.1,
        "grade": "B",
        "agentReady": false,
        "rank": 242,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 81,
          "payments": 40,
          "reliability": 53,
          "schema": 87,
          "security": 72,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "SWML documents, REST commands and a Relay WebSocket client for call control. Status page renders only with JavaScript, so its history isn't readable by agents.",
        "bestFor": "Builders who want call logic in documents (SWML) or a hosted AI agent verb, and for teams moving off Twilio's API shape.",
        "strengths": [
          "SWML documents, REST commands and a Relay WebSocket client for call control",
          "OpenAPI 3.1 spec and Markdown for every docs page",
          "SLA of 99.95 per cent monthly uptime on every account, plus ISO 27001, SOC 2 Type 2, a DPA and a disclosure policy",
          "Webhooks signed with HMAC in `x-signalwire-signature`, checked by the Python SDK on SWML and tool calls",
          "Six Python SDK releases between 25 August and 29 September 2026"
        ],
        "weaknesses": [
          "Status page renders only with JavaScript, so its history isn't readable by agents",
          "No published rate-limit numbers beyond the trial's 10 queued calls",
          "No idempotency key, and the safe-retry rules live in the Python SDK rather than the API docs",
          "Per-customer Space hostnames, so there is no single public API host",
          "No security.txt or bug bounty"
        ],
        "agentNotes": [
          "Send dial with a url pointing at a SWML document, then use calling.* commands on the returned call ID",
          "Don't retry a dial on a 5xx. Retry only on 429 or 503, after Retry-After, or you may place the call twice",
          "Use your own Space subdomain as the host, there is no shared API host",
          "Create a token with only the Voice scope for a calling agent",
          "Verify `x-signalwire-signature` with the Signing Key before acting on a webhook"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.1
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 81,
          "payments": 40,
          "reliability": 53,
          "schema": 87,
          "security": 72,
          "transparency": 65
        },
        "provenanceScore": 87
      },
      "connect": {
        "http": "curl -X POST \"https://$SIGNALWIRE_SPACE.signalwire.com/api/calling/calls\" -u \"$SIGNALWIRE_PROJECT_ID:$SIGNALWIRE_API_TOKEN\" \\\n  -H \"Content-Type: application/json\" -d '{\"command\":\"dial\",\"params\":{\"from\":\"+15551234567\",\"to\":\"+15557654321\",\"url\":\"https://example.com/swml\"}}'"
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/signalwire-voice"
      },
      "area": "voice",
      "unitPrices": [
        {
          "item": "US outbound, local",
          "unit": "call-minute",
          "usd": 0.008,
          "note": "outbound to US local numbers"
        },
        {
          "item": "US inbound, local number",
          "unit": "call-minute",
          "usd": 0.0066,
          "note": "inbound on a US local number"
        },
        {
          "item": "US outbound, toll-free",
          "unit": "call-minute",
          "usd": 0.0069,
          "note": "outbound to US toll-free numbers"
        },
        {
          "item": "US inbound, toll-free number",
          "unit": "call-minute",
          "usd": 0.0147,
          "note": "inbound on a US toll-free number"
        },
        {
          "item": "SIP or WebRTC leg",
          "unit": "call-minute",
          "usd": 0.003,
          "note": "inbound or outbound"
        },
        {
          "item": "AI agent runtime",
          "unit": "call-minute",
          "usd": 0.16,
          "note": "platform fee on top of call minutes, includes STT, LLM and standard TTS"
        },
        {
          "item": "US local number",
          "unit": "month",
          "usd": 0.5,
          "note": "per number"
        },
        {
          "item": "US toll-free number",
          "unit": "month",
          "usd": 0.8,
          "note": "per number"
        }
      ],
      "provenance": {
        "legalEntity": "SignalWire, Inc.",
        "domain": "signalwire.com",
        "domainRegistered": "2016-01-21",
        "endpointOnVendorDomain": true,
        "terms": "https://info.signalwire.com/hubfs/PDFs/SignalWire-Cloud-Agreement.pdf",
        "privacy": "https://m.signalwire.com/policies?doc=privacy",
        "statusPage": "https://status.signalwire.com",
        "changelog": "https://signalwire.com/docs/platform/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Legal entity from signalwire.com/legal. The status page redirects to a PagerDuty-hosted page.",
          "remoteUrl left empty because each account calls its own Space subdomain (\u003cspace\u003e.signalwire.com/api/calling/calls)."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/signalwire-voice.json",
      "live": {
        "slug": "signalwire-voice",
        "vendorStatus": {
          "page": "https://status.signalwire.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:32.129309228Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "signalwire/signalwire-python",
            "version": "v3.6.0",
            "released": "2026-10-05",
            "seenAt": "2026-10-08T16:29:21.125692663Z"
          },
          {
            "registry": "npm",
            "name": "@signalwire/sdk",
            "version": "3.6.0",
            "seenAt": "2026-10-08T16:29:18.547765201Z"
          },
          {
            "registry": "pypi",
            "name": "signalwire",
            "version": "2.1.1",
            "released": "2025-02-04",
            "seenAt": "2026-10-08T16:29:21.037098766Z"
          },
          {
            "registry": "pypi",
            "name": "signalwire-sdk",
            "version": "3.6.0",
            "released": "2026-10-05",
            "seenAt": "2026-10-08T16:29:18.403890603Z"
          }
        ],
        "githubStars": 8,
        "npmWeekly": 2234,
        "pypiWeekly": 746,
        "securityTxt": {
          "url": "https://signalwire.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:42.478624345Z"
        },
        "llmsTxt": {
          "url": "https://signalwire.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:53.396939699Z"
        },
        "domain": {
          "domain": "signalwire.com",
          "registered": "2016-01-21",
          "source": "https://rdap.verisign.com/com/v1/domain/signalwire.com",
          "checkedAt": "2026-10-04T13:04:21.502174122Z"
        },
        "pages": [
          {
            "url": "https://signalwire.com/docs/platform/changelog",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-10-08T18:24:21.653163427Z",
            "changedAt": "2026-10-07T18:09:23.01711151Z",
            "fingerprint": "41a8ac7eb288"
          },
          {
            "url": "https://www.signalwire.com/pricing/voice",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:27.386904388Z",
            "changedAt": "2026-10-03T15:40:04.301482046Z",
            "fingerprint": "40b5008528b4"
          },
          {
            "url": "https://m.signalwire.com/policies?doc=privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:48.129844693Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          }
        ],
        "updatedAt": "2026-10-09T07:58:32.129309228Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "FirstFive8, Inc.",
        "b": "SignalWire",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary. jambonz.cloud is under the jambonz Terms of Use and self-hosted jambonz Commercial needs a paid licence key. The API server, feature server and SDK repositories on GitHub are MIT",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-04",
        "b": "2026-09-30",
        "name": "Last release"
      },
      {
        "a": "2021-05-04",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "2021-05-04",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "103 stars, 1.4k npm/wk, 420 PyPI/wk",
        "b": "8 stars, 1.5k npm/wk, 1.3k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "SignalWire Voice API scores 67.1 (B) on agent readiness against jambonz's 49.2 (D), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, jambonz or SignalWire Voice API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do jambonz and SignalWire Voice API need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for jambonz. No hosted endpoint is listed for SignalWire Voice API.",
        "question": "Can an agent call jambonz and SignalWire Voice API without installing anything?"
      },
      {
        "answer": "jambonz is open source (Proprietary. jambonz.cloud is under the jambonz Terms of Use and self-hosted jambonz Commercial needs a paid licence key. The API server, feature server and SDK repositories on GitHub are MIT). No open-source release is listed for SignalWire Voice API.",
        "question": "Are jambonz and SignalWire Voice API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "Open source"
        ],
        "goodFor": "Teams that already have a SIP carrier and speech and LLM vendors and want call control with flat session pricing, or that must run the voice layer in their own network.",
        "slug": "jambonz",
        "watchFor": "No status page, uptime SLA, security.txt, `SECURITY.md` or published advisory was found for jambonz.cloud or the repositories"
      },
      {
        "aheadOn": [
          "Reliability, 53 against 36",
          "Schema \u0026 documentation, 87 against 78",
          "Agent ergonomics, 68 against 54",
          "Security \u0026 auth, 72 against 42",
          "Transparency \u0026 trust, 76 against 50"
        ],
        "also": [
          "No incidents deducted, where jambonz loses 3 points for them"
        ],
        "goodFor": "Builders who want call logic in documents (SWML) or a hosted AI agent verb, and for teams moving off Twilio's API shape.",
        "slug": "signalwire-voice",
        "watchFor": "Status page renders only with JavaScript, so its history isn't readable by agents"
      }
    ],
    "job": {
      "capability": "voice.calls",
      "name": "Voice calls"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-jambonz.json",
        "title": "Bandwidth Voice API + MCP vs jambonz",
        "url": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-jambonz"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-signalwire-voice.json",
        "title": "Bandwidth Voice API + MCP vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exotel-voice-vs-jambonz.json",
        "title": "Exotel Voice API + MCP vs jambonz",
        "url": "https://www.anchorterminal.com/compare/exotel-voice-vs-jambonz"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exotel-voice-vs-signalwire-voice.json",
        "title": "Exotel Voice API + MCP vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/exotel-voice-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/infobip-calls-vs-jambonz.json",
        "title": "Infobip Calls API + MCP vs jambonz",
        "url": "https://www.anchorterminal.com/compare/infobip-calls-vs-jambonz"
      },
      {
        "json": "https://www.anchorterminal.com/compare/infobip-calls-vs-signalwire-voice.json",
        "title": "Infobip Calls API + MCP vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/infobip-calls-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jambonz-vs-livekit-telephony.json",
        "title": "jambonz vs LiveKit Telephony",
        "url": "https://www.anchorterminal.com/compare/jambonz-vs-livekit-telephony"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jambonz-vs-plivo-voice.json",
        "title": "jambonz vs Plivo Voice API",
        "url": "https://www.anchorterminal.com/compare/jambonz-vs-plivo-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/jambonz-vs-telnyx-voice.json",
        "title": "jambonz vs Telnyx Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/jambonz-vs-telnyx-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jambonz-vs-twilio-voice.json",
        "title": "jambonz vs Twilio Programmable Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/jambonz-vs-twilio-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jambonz-vs-vonage-voice.json",
        "title": "jambonz vs Vonage Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/jambonz-vs-vonage-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jambonz-vs-voximplant.json",
        "title": "jambonz vs Voximplant",
        "url": "https://www.anchorterminal.com/compare/jambonz-vs-voximplant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice.json",
        "title": "LiveKit Telephony vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plivo-voice-vs-signalwire-voice.json",
        "title": "Plivo Voice API vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/plivo-voice-vs-signalwire-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/signalwire-voice-vs-telnyx-voice.json",
        "title": "SignalWire Voice API vs Telnyx Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-telnyx-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice.json",
        "title": "SignalWire Voice API vs Twilio Programmable Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice.json",
        "title": "SignalWire Voice API vs Vonage Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-voximplant.json",
        "title": "SignalWire Voice API vs Voximplant",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-voximplant"
      }
    ],
    "scores": [
      {
        "by": 17,
        "edge": "signalwire-voice",
        "jambonz": 36,
        "key": "reliability",
        "name": "Reliability",
        "signalwire-voice": 53,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "signalwire-voice",
        "jambonz": 78,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "signalwire-voice": 87,
        "weight": 13
      },
      {
        "by": 14,
        "edge": "signalwire-voice",
        "jambonz": 54,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "signalwire-voice": 68,
        "weight": 13
      },
      {
        "by": 30,
        "edge": "signalwire-voice",
        "jambonz": 42,
        "key": "security",
        "name": "Security \u0026 auth",
        "signalwire-voice": 72,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "jambonz": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "signalwire-voice": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "signalwire-voice",
        "jambonz": 78,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "signalwire-voice": 81,
        "weight": 7
      },
      {
        "by": 26,
        "edge": "signalwire-voice",
        "jambonz": 50,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "signalwire-voice": 76,
        "weight": 7
      }
    ],
    "summary": "SignalWire Voice API scores 67.1 (B) on agent readiness against jambonz's 49.2 (D), and leads in 6 of 7 scored categories. Both do voice calls.",
    "verdicts": {
      "jambonz": "OpenAPI 3.1 and AsyncAPI documents, an llms.txt and Markdown pages cover the REST and WebSocket APIs, and session prices are public. No status page, security.txt or advisory was found, API keys carry no scopes, and the 2021 privacy policy says audio is never stored while the October 2026 release notes say support keeps call audio for a few days.",
      "signalwire-voice": "SWML documents, REST commands and a Relay WebSocket client for call control. Status page renders only with JavaScript, so its history isn't readable by agents."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice",
    "json": "https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice.md",
    "slim": "https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice.min.md"
  },
  "markdown": "SignalWire Voice API scores 67.1 (B) on agent readiness against jambonz's 49.2 (D), and leads in 6 of 7 scored categories. Both do voice calls.\n\n- jambonz: grade D, 49.2/100, rank #712 of 842. Markdown https://www.anchorterminal.com/tools/jambonz.md · JSON https://www.anchorterminal.com/api/v1/tools/jambonz.json\n- SignalWire Voice API: grade B, 67.1/100, rank #242 of 842. Markdown https://www.anchorterminal.com/tools/signalwire-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/signalwire-voice.json\n\n## Which one, for what\n\n### jambonz (D)\n\nGood for: Teams that already have a SIP carrier and speech and LLM vendors and want call control with flat session pricing, or that must run the voice layer in their own network.\n\nAlso in its favour:\n- Open source\n\nWatch for: No status page, uptime SLA, security.txt, `SECURITY.md` or published advisory was found for jambonz.cloud or the repositories\n\n### SignalWire Voice API (B)\n\nGood for: Builders who want call logic in documents (SWML) or a hosted AI agent verb, and for teams moving off Twilio's API shape.\n\nAhead on:\n- Reliability, 53 against 36\n- Schema \u0026 documentation, 87 against 78\n- Agent ergonomics, 68 against 54\n- Security \u0026 auth, 72 against 42\n- Transparency \u0026 trust, 76 against 50\n\nAlso in its favour:\n- No incidents deducted, where jambonz loses 3 points for them\n\nWatch for: Status page renders only with JavaScript, so its history isn't readable by agents\n\n\n## Score by category\n\n| Category | Weight | jambonz | SignalWire Voice API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 36 | 53 | SignalWire Voice API +17 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 78 | 87 | SignalWire Voice API +9 |\n| Agent ergonomics | 13% (16.2 this run) | 54 | 68 | SignalWire Voice API +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 42 | 72 | SignalWire Voice API +30 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 81 | SignalWire Voice API +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 50 | 76 | SignalWire Voice API +26 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **49.2 · D** | **67.1 · B** | |\n\n## Facts side by side\n\n| Fact | jambonz | SignalWire Voice API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | FirstFive8, Inc. | SignalWire |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Paid | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary. jambonz.cloud is under the jambonz Terms of Use and self-hosted jambonz Commercial needs a paid licence key. The API server, feature server and SDK repositories on GitHub are MIT | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-04 | 2026-09-30 |\n| Terms last updated | 2021-05-04 |  |\n| Privacy policy last updated | 2021-05-04 | couldn't be read |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | yes |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | 103 stars, 1.4k npm/wk, 420 PyPI/wk | 8 stars, 1.5k npm/wk, 1.3k PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\n\n## Verdicts\n\n**jambonz.** OpenAPI 3.1 and AsyncAPI documents, an llms.txt and Markdown pages cover the REST and WebSocket APIs, and session prices are public. No status page, security.txt or advisory was found, API keys carry no scopes, and the 2021 privacy policy says audio is never stored while the October 2026 release notes say support keeps call audio for a few days.\n\n**SignalWire Voice API.** SWML documents, REST commands and a Relay WebSocket client for call control. Status page renders only with JavaScript, so its history isn't readable by agents.\n\n## Before you call either\n\n### jambonz\n\n1. Send `Authorization: Bearer \u003ctoken\u003e` to `https://api.jambonz.cloud/v1`, the server in the OpenAPI files. The REST introduction page gives `https://jambonz.cloud/api` instead, so confirm the base URL with the operator\n2. Create a call with `from`, `to` and either `application_sid` or `call_hook`. Do not retry a timed-out create without checking `GET /Accounts/{AccountSid}/Calls` first\n3. Read `ratelimit-remaining` and `ratelimit-reset` on every response and stop when a `429` arrives\n4. Append `#rc=3\u0026rp=5xx,ct` to an application URL to turn on webhook retries. HTTP webhooks are not retried by default\n5. Check the account has a carrier and speech credentials before dialling. jambonz does not supply numbers, minutes or speech services\n\n### SignalWire Voice API\n\n1. Send dial with a url pointing at a SWML document, then use calling.* commands on the returned call ID\n2. Don't retry a dial on a 5xx. Retry only on 429 or 503, after Retry-After, or you may place the call twice\n3. Use your own Space subdomain as the host, there is no shared API host\n4. Create a token with only the Voice scope for a calling agent\n5. Verify `x-signalwire-signature` with the Signing Key before acting on a webhook\n\n## Questions\n\n### Which is better for AI agents, jambonz or SignalWire Voice API?\n\nSignalWire Voice API scores 67.1 (B) on agent readiness against jambonz's 49.2 (D), and leads in 6 of 7 scored categories.\n\n### Do jambonz and SignalWire Voice API need an API key?\n\nBoth need an API key.\n\n### Can an agent call jambonz and SignalWire Voice API without installing anything?\n\nNo hosted endpoint is listed for jambonz. No hosted endpoint is listed for SignalWire Voice API.\n\n### Are jambonz and SignalWire Voice API open source?\n\njambonz is open source (Proprietary. jambonz.cloud is under the jambonz Terms of Use and self-hosted jambonz Commercial needs a paid licence key. The API server, feature server and SDK repositories on GitHub are MIT). No open-source release is listed for SignalWire Voice API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice.json, and with the fewest tokens: https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"jambonz\", \"b\": \"signalwire-voice\"}`. From a terminal: `anchor compare jambonz signalwire-voice`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/jambonz.json and https://www.anchorterminal.com/api/v1/tools/signalwire-voice.json\n\n## Other comparisons with jambonz or SignalWire Voice API\n\n- [Bandwidth Voice API + MCP vs jambonz](https://www.anchorterminal.com/compare/bandwidth-voice-vs-jambonz.md)\n- [Bandwidth Voice API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/bandwidth-voice-vs-signalwire-voice.md)\n- [Exotel Voice API + MCP vs jambonz](https://www.anchorterminal.com/compare/exotel-voice-vs-jambonz.md)\n- [Exotel Voice API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/exotel-voice-vs-signalwire-voice.md)\n- [Infobip Calls API + MCP vs jambonz](https://www.anchorterminal.com/compare/infobip-calls-vs-jambonz.md)\n- [Infobip Calls API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/infobip-calls-vs-signalwire-voice.md)\n- [jambonz vs LiveKit Telephony](https://www.anchorterminal.com/compare/jambonz-vs-livekit-telephony.md)\n- [jambonz vs Plivo Voice API](https://www.anchorterminal.com/compare/jambonz-vs-plivo-voice.md)\n- [jambonz vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/jambonz-vs-sinch-voice.md)\n- [jambonz vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/jambonz-vs-telnyx-voice.md)\n- [jambonz vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/jambonz-vs-twilio-voice.md)\n- [jambonz vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/jambonz-vs-vonage-voice.md)\n- [jambonz vs Voximplant](https://www.anchorterminal.com/compare/jambonz-vs-voximplant.md)\n- [LiveKit Telephony vs SignalWire Voice API](https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice.md)\n- [Plivo Voice API vs SignalWire Voice API](https://www.anchorterminal.com/compare/plivo-voice-vs-signalwire-voice.md)\n- [SignalWire Voice API vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice.md)\n- [SignalWire Voice API vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-telnyx-voice.md)\n- [SignalWire Voice API vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice.md)\n- [SignalWire Voice API vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice.md)\n- [SignalWire Voice API vs Voximplant](https://www.anchorterminal.com/compare/signalwire-voice-vs-voximplant.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "jambonz vs SignalWire Voice API",
        "url": ""
      }
    ],
    "description": "SignalWire Voice API scores 67.1 (B) on agent readiness against jambonz's 49.2 (D), and leads in 6 of 7 scored categories. Both do voice calls. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "jambonz D 49.2",
      "SignalWire Voice API B 67.1",
      "scores"
    ],
    "h1": "jambonz vs SignalWire Voice API",
    "image": "https://www.anchorterminal.com/assets/og/compare-jambonz-vs-signalwire-voice.png",
    "path": "/compare/jambonz-vs-signalwire-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "jambonz vs SignalWire Voice API for AI agents, D 49.2 vs B 67.1",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 680
  },
  "version": 1
}
