# didlogic Voice API vs SignalWire Voice API

> SignalWire Voice scores 66.9 (B) to didlogic Voice's 49.8 (D) for phone numbers. SignalWire Voice is cheaper for phone numbers, $0.50 against $2 per month (plan). Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/didlogic-vs-signalwire-voice
- Markdown: https://www.anchorterminal.com/compare/didlogic-vs-signalwire-voice.md (~4,800 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

SignalWire Voice API scores 66.9 (B) on agent readiness against didlogic Voice API's 49.8 (D), and leads in 6 of 7 scored categories. Both do phone numbers. SignalWire Voice API is cheaper for phone numbers, $0.50 against $2 per month (plan).

- didlogic Voice API: grade D, 49.8/100, rank #1074 of 1486. Markdown https://www.anchorterminal.com/tools/didlogic.md · JSON https://www.anchorterminal.com/api/v1/tools/didlogic.json
- SignalWire Voice API: grade B, 66.9/100, rank #349 of 1486. Markdown https://www.anchorterminal.com/tools/signalwire-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/signalwire-voice.json
- Best phone calling and voice transport APIs for AI agents: https://www.anchorterminal.com/best/voice-calling/index.md
- All 105 calling comparisons: https://www.anchorterminal.com/compare/voice-calling/index.md

## Which one, for what

### didlogic Voice API (D)

Good for: Teams that need numbers and SIP termination in many countries and a WebSocket bridge to a voice agent.

Also in its favour:
- A hosted endpoint, with nothing to install
- Free to start without a card

Watch for: No status page or incident history found

### SignalWire Voice API (B)

Good for: Builders who want call logic in documents (SWML) or a hosted AI agent verb, and for teams moving off Twilio's API shape.

Ahead on:
- Reliability, 53 against 26
- Agent ergonomics, 68 against 57
- Security & auth, 72 against 46
- Maintenance & community, 81 against 38
- Transparency & trust, 74 against 58

Also in its favour:
- Cheaper for phone numbers, $0.50 against $2 per month (plan)

Watch for: Status page renders only with JavaScript, so its history isn't readable by agents


## Why the edge

### Maintenance & community: SignalWire Voice API +43

- didlogic Voice API (38): Release notes dated by month, the newest September 2026 (click-to-call API and WebSocket calls), about 37 to 67 days before this check (20). Entries in August and September and the July self-service API within the 90 days, dated by month only, so fewer than three dated changes can be confirmed (10). Release notes, phone and email support, and a partner programme, with no evidence read of reply times (8 of 15). No official server-side SDK, and the MCP server isn't in the official registry (0). No package to assess (0). 20+10+8+0+0 = 38.
- SignalWire Voice API (81): signalwire-python 3.7.5 tagged on 25 October 2026, after 3.6.0 (5 October), 3.7.0 (12 October) and 3.7.1 to 3.7.4, and signalwire-js 4.0.0-rc.5 on 14 October. Changelog entries on 19 and 22 October (30). 13 Python SDK releases from 3.4.0 on 25 August to 3.7.5, plus JS release candidates, and dated changelog entries most weeks (20). Closed service with an active changelog and community support. We didn't sample issue replies (8 of 15). Official Python and Node SDKs current (15). The Python SDK runs test, multi-OS, nightly and docs-audit workflows and Renovate for dependencies. We couldn't see run results (8 of 10). The SDK changelog since 3.5.1 has no removals or breaking changes. 3.7.0 changes how new search indexes embed text and keeps existing indexes working, with an option for the old behaviour. 30 + 20 + 8 + 15 + 8 = 81.

### Reliability: SignalWire Voice API +27

- didlogic Voice API (26): Graded on the hosted API and MCP server with the hosted lines. The footer's network status page carries no components or incidents, and no other status page was found (0). No readable incident history (5). Rate limits are given only for recording lookups (one a second, one lookup a minute) (5 of 15). Those endpoints document 429 with Retry-After and X-RateLimit headers, with no backoff guidance or idempotency elsewhere, including number purchases and click-to-call (6 of 15). The site claims 99.999 per cent voice uptime, but no SLA was found in the Terms (0). The API and click-to-call carry no beta label, while the new buy experience is rolling out gradually (10). 0+5+5+6+0+10 = 26.
- SignalWire Voice API (53): status.signalwire.com redirects to a PagerDuty-hosted page. Re-read on 1 November, its page data names ten services (APIs, SIP Connectivity, WebRTC Connectivity, Video and Conferencing, Website, External Carrier Network, SMS, MMS, AI, Support and Documentation) and says it was created on 23 December 2025, but incidents load only through the page's script and we found no feed, so component history isn't readable (10 of 20). No readable incident history (5). The 1 October note cited a third-party status aggregator for a 14 August degradation; that isn't a first-hand source and isn't used. Trial mode caps queued calls and messages at 10 each, and Space limits are raised on request. The error-codes page, re-read on 1 November, names a `rate_limit_exceeded` code but no general per-second figures (8 of 15). The error-codes page says to back off and retry on 429, and now also calls every 5xx "Safe to retry with backoff", which for a dial can place a second call. The official Python SDK honours Retry-After with exponential backoff and retries POSTs only on 429 or 503, never on other 5xx, so a dial isn't replayed. No idempotency key (10 of 15). The Service Level Agreement (updated 1 January 2026) commits to 99.95 per cent monthly uptime for SignalWire Cloud APIs on every account, with a 10 per cent credit claimed by ticket within 30 days, per the 2 October read (10). The Calling API is generally available (10). 10 + 5 + 8 + 10 + 10 + 10 = 53.

### Security & auth: SignalWire Voice API +26

- didlogic Voice API (46): Revocable bearer keys created in the portal, each with full account access by the vendor's own warning. MCP OAuth mints a separate key per sign-in (18 of 30). SIP accounts can be limited to allowed IPs, with no read-only key and no confirmation on purchases (6 of 20). Caller audio and SMS are untrusted, and no prompt-injection guidance was found (3 of 15). Call detail records, transaction history and risk-check logs through the API, with no audit log of API calls (7 of 15). ISO/IEC 27001:2022 and ISO 9001 certificates from TÜV AUSTRIA Hellas with registration numbers. No security.txt or bug bounty found (12 of 20). 18+6+3+7+12 = 46.
- SignalWire Voice API (72): Basic auth with a Project ID and an API token, or short-lived Bearer tokens. Tokens are scoped when created, with the Voice scope for calls, new tokens use a swapi_ format since September 2026, and since 8 October a REST endpoint regenerates a token's value in place and every token response carries `last_used_at` and `revoked_at` (30). Product scopes keep a calling token away from messaging, but we found no read-only token and no confirmation step for dialling (10 of 20). Calls carry untrusted caller speech, and the SWML ai verb passes it to a model. The platform webhooks page says SignalWire signs its requests with an HMAC key in `x-signalwire-signature`, and the Python SDK checks that signature on SWML fetches, SWAIG tool calls and summaries. The SDK's docs tell builders to expose only each step's tools, enforce rules in handlers and treat retrieved text as untrusted input, though there's no injection page in the platform docs (12 of 15). Voice logs can be listed by API. We didn't find an account audit log (10 of 15). A vulnerability disclosure policy, an ISO 27001 certificate and a SOC 2 Type 2 attestation letter are linked from signalwire.com/legal, re-read on 1 November. signalwire.com/.well-known/security.txt answers 404, no bug bounty found, and OSV lists no advisories for signalwire-sdk, signalwire or @signalwire/sdk. The same reading as the Telnyx voice listing (10 of 20).

### Transparency & trust: SignalWire Voice API +16

- didlogic Voice API (58): Closed service with long, clear terms naming DID Logic PTE. LTD. in Singapore (15 of 30). The privacy policy commits to data minimisation and says call content isn't monitored except for requested recording, but gives no retention periods (12 of 30). No deprecation policy, though the docs explain backward-compatible identifier changes (5 of 20). Twelve points of presence are claimed, with no sub-processor list or data locations found (5 of 20). 15+12+5+5 = 37.
- SignalWire Voice API (74): Closed service under the SignalWire Cloud Agreement (15). Privacy policy, a Data Processing Addendum and a cloud sub-processor list are published. We didn't find retention periods for call records or recordings (20 of 30). Dated deprecation notice for the token format, old tokens keep working (15 of 20). The sub-processor PDF names five cloud providers with countries (AWS in the US, Bahrain and South Africa, DigitalOcean in seven countries, Google in the US, Microsoft in four, Vultr in Australia), but service-specific sub-processors are listed without purposes or locations and the PDF carries no date (15 of 20).

### Agent ergonomics: SignalWire Voice API +11

- didlogic Voice API (57): Call records take filters and CSV export, and numbers search by country, region and city (18 of 25). Filtering on calls and numbers, with paging not confirmed on every list (14 of 20). One error envelope with field messages and 404 for unknown ids (14 of 20). No idempotency key on purchases or click-to-call. MCP annotations weren't readable without a sign-in (3 of 20). Few required fields, no official SDK beyond the browser Voice SDK (8 of 15). 18+14+14+3+8 = 57.
- SignalWire Voice API (68): A paging guide covers page sizes on list endpoints, with no field selection (15 of 25). Voice logs can be listed and paged. We didn't confirm the full filter set (15 of 20). An error-codes page with a structured `errors` array (type, code, message, attribute, url) an agent can map to fixes, and command results arrive on status webhooks (15 of 20). No idempotency key. The Python SDK's documented retry policy keeps POSTs from being replayed after a 5xx (8 of 20). One POST endpoint takes every command, a dial needs from, to and a SWML url, and there are official Python and Node SDKs plus Twilio-compatible ones (15).

## Score by category

| Category | Weight | didlogic Voice API | SignalWire Voice API | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 26 | 53 | SignalWire Voice API +27 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 87 | 87 | even |
| Agent ergonomics | 13% (16.2 this run) | 57 | 68 | SignalWire Voice API +11 |
| Security & auth | 14% (17.5 this run) | 46 | 72 | SignalWire Voice API +26 |
| Payments & pricing | 10% (12.5 this run) | 38 | 40 | SignalWire Voice API +2 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 38 | 81 | SignalWire Voice API +43 |
| Transparency & trust | 7% (8.8 this run) | 58 | 74 | SignalWire Voice API +16 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **49.8 · D** | **66.9 · B** | |

## Facts side by side

| Fact | didlogic Voice API | SignalWire Voice API |
| --- | --- | --- |
| Kind | HTTP API | HTTP API |
| Vendor | DID Logic PTE. LTD. | SignalWire |
| Hosted endpoint | `https://mcp.didlogic.com/mcp` | no (local only) |
| Transports | HTTP, websocket, Streamable HTTP | HTTP |
| Auth | OAuth or key | API key |
| Pricing | Pay per use | Pay per use |
| Price for phone numbers | $2 per month (plan) | $0.50 per month (plan) |
| x402 | no | no |
| Licence | Proprietary service under the didlogic Terms of Service | MIT |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-09-30 | 2026-10-25 |
| Terms last updated | no date given | not read yet |
| Privacy policy last updated | no date given | couldn't be read |
| Customer content may train models | not found in the text | not read yet |
| Terms restrict automated access | not found in the text | not read yet |
| Terms restrict benchmarking | not found in the text | not read yet |
| Terms or service can change without notice | not found in the text | not read yet |
| Arbitration or class-action waiver | yes | not read yet |
| Popularity | none | 8 stars, 1.5k npm/wk, 1.3k PyPI/wk |
| Agent reviews | none | 3.5/5 (2) |

## How the scores have moved

### didlogic Voice API

No score change since it was listed.

### SignalWire Voice API

- -0.3 on 30 October 2026: checklist
- +0.1 on 27 October 2026: checklist
- -0.2 on 8 October 2026: checklist

## Verdicts

**didlogic Voice API.** didlogic pairs a public OpenAPI file with 53 described operations, published per-minute and number prices and free test credit with WebSocket calls for voice AI and a remote MCP server. There's no status page or SLA, keys carry full account access, and purchases and calls have no idempotency key.

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

## Before you call either

### didlogic Voice API

1. Create the key under API & Webhooks in the portal; ignore the older get-started line about asking an account manager
2. Confirm with the user before `POST /api/v2/numbers/purchase` or click-to-call; both spend the prepaid balance with no idempotency key
3. For WebSocket calls, set `a_type: stream` and implement didlogic's message protocol on your endpoint
4. Back off on 429 from recording endpoints using Retry-After
5. Expect the MCP server only on the Plus plan

### SignalWire Voice API

1. Send dial with a url pointing at a SWML document, then use calling.* commands on the returned call ID
2. Don't retry a dial on a 5xx, whatever the error-codes page says. Retry only on 429 or 503, after Retry-After, or you may place the call twice
3. Use your own Space subdomain as the host, there is no shared API host
4. Create a token with only the Voice scope for a calling agent
5. Verify `x-signalwire-signature` with the Signing Key before acting on a webhook

## Questions

### Which is better for AI agents, didlogic Voice API or SignalWire Voice API?

SignalWire Voice API scores 66.9 (B) on agent readiness against didlogic Voice API's 49.8 (D), and leads in 6 of 7 scored categories.

### Which is cheaper for phone numbers, didlogic Voice API or SignalWire Voice API?

SignalWire Voice API, at $0.50 per month (plan) against $2 per month (plan) for didlogic Voice API. These are the vendors' published prices for the job.

### Do didlogic Voice API and SignalWire Voice API need an API key?

didlogic Voice API takes an API key or an OAuth sign-in. SignalWire Voice API needs an API key.

### Can an agent call didlogic Voice API and SignalWire Voice API without installing anything?

didlogic Voice API has a hosted endpoint at https://mcp.didlogic.com/mcp. No hosted endpoint is listed for SignalWire Voice API.


## For agents

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

## Other comparisons with didlogic Voice API or SignalWire Voice API

- [46elks Voice API vs didlogic Voice API](https://www.anchorterminal.com/compare/46elks-vs-didlogic.md)
- [46elks Voice API vs SignalWire Voice API](https://www.anchorterminal.com/compare/46elks-vs-signalwire-voice.md)
- [Bandwidth Voice API + MCP vs didlogic Voice API](https://www.anchorterminal.com/compare/bandwidth-voice-vs-didlogic.md)
- [Bandwidth Voice API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/bandwidth-voice-vs-signalwire-voice.md)
- [didlogic Voice API vs jambonz](https://www.anchorterminal.com/compare/didlogic-vs-jambonz.md)
- [Exotel Voice API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/exotel-voice-vs-signalwire-voice.md)
- [Infobip Calls API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/infobip-calls-vs-signalwire-voice.md)
- [jambonz vs SignalWire Voice API](https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice.md)
- [LiveKit Telephony vs SignalWire Voice API](https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice.md)
- [Plivo Voice API vs SignalWire Voice API](https://www.anchorterminal.com/compare/plivo-voice-vs-signalwire-voice.md)
- [SignalWire Voice API vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice.md)
- [SignalWire Voice API vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-telnyx-voice.md)
- [SignalWire Voice API vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice.md)
- [SignalWire Voice API vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice.md)
- [SignalWire Voice API vs Voximplant](https://www.anchorterminal.com/compare/signalwire-voice-vs-voximplant.md)
- [didlogic Voice API vs DIDWW Voice and Number Management API](https://www.anchorterminal.com/compare/didlogic-vs-didww-voice-and-number-management.md)
- [didlogic Voice API vs Exotel Voice API + MCP](https://www.anchorterminal.com/compare/didlogic-vs-exotel-voice.md)
- [didlogic Voice API vs Infobip Calls API + MCP](https://www.anchorterminal.com/compare/didlogic-vs-infobip-calls.md)
- [didlogic Voice API vs LiveKit Telephony](https://www.anchorterminal.com/compare/didlogic-vs-livekit-telephony.md)
- [didlogic Voice API vs Plivo Voice API](https://www.anchorterminal.com/compare/didlogic-vs-plivo-voice.md)
- [didlogic Voice API vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/didlogic-vs-sinch-voice.md)
- [didlogic Voice API vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/didlogic-vs-telnyx-voice.md)
- [didlogic Voice API vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/didlogic-vs-twilio-voice.md)
- [didlogic Voice API vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/didlogic-vs-vonage-voice.md)
- [didlogic Voice API vs Voximplant](https://www.anchorterminal.com/compare/didlogic-vs-voximplant.md)
- [DIDWW Voice and Number Management API vs SignalWire Voice API](https://www.anchorterminal.com/compare/didww-voice-and-number-management-vs-signalwire-voice.md)

---

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