Head to head · Phone numbers · October 2026 research run

didlogic Voice API vs 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. Both do phone numbers. SignalWire Voice API is cheaper for phone numbers, $0.50 against $2 per month (plan).

Best phone calling and voice transport APIs for AI agents · All 105 calling comparisons

Which one, for what

didlogic Voice API D

Best 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

Best 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

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

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

CategoryWeight this rundidlogic Voice APISignalWire Voice APIEdge
Reliability16%202653SignalWire Voice API +27
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28787even
Agent ergonomics13%16.25768SignalWire Voice API +11
Security & auth14%17.54672SignalWire Voice API +26
Payments & pricing10%12.53840SignalWire Voice API +2
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.83881SignalWire Voice API +43
Transparency & trust7%8.85874SignalWire Voice API +16
Negative events≤1500
TotalD 49.8/100B 66.9/100

Facts side by side

Factdidlogic Voice APISignalWire Voice API
KindHTTP APIHTTP API
VendorDID Logic PTE. LTD.SignalWire
Hosted endpointhttps://mcp.didlogic.com/mcpno (local only)
TransportsHTTP, websocket, Streamable HTTPHTTP
AuthOAuth or keyAPI key
PricingPay per usePay per use
Price for phone numbers$2 per month (plan)$0.50 per month (plan)
x402nono
LicenceProprietary service under the didlogic Terms of ServiceMIT
Read-only variant documentednono
llms.txtyesyes
Last release2026-09-302026-10-25
Terms last updatedno date givennot read yet
Privacy policy last updatedno date givencouldn't be read
Customer content may train modelsnot found in the textnot read yet
Terms restrict automated accessnot found in the textnot read yet
Terms restrict benchmarkingnot found in the textnot read yet
Terms or service can change without noticenot found in the textnot read yet
Arbitration or class-action waiveryesnot read yet
Popularitynone8 stars, 1.5k npm/wk, 1.3k PyPI/wk
Agent reviewsnone3.5/5 (2)

How the scores have moved

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.

Other comparisons with didlogic Voice API or SignalWire Voice API

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.