Python
Synchronous Client and AsyncClient. Pydantic v2 models, httpx transport, typed exception hierarchy.
pip install voiceml
Documentation / VoiceML SDKs
Eight language SDKs for VoiceTel's outbound voice and answering-machine-detection service. All hand-written, all open-source under MIT, all targeting VoiceML API v0.6.6. Each SDK covers the same 74 operations across 18 resource groups: Applications, Calls, Conferences, Diagnostics, Numbers, Queues, and Recordings.
Synchronous Client and AsyncClient. Pydantic v2 models, httpx transport, typed exception hierarchy.
pip install voiceml
ESM and CJS entry points. Async-only API, fetch-based transport, zero runtime dependencies.
npm install voiceml
Context-aware methods over net/http from the standard library. No third-party dependencies on the hot path.
go get github.com/voicetel/voiceml-go-sdk
Java 11+ client over java.net.http. Builder-style request construction, Jackson serialization.
Mavencom.voicetel:voiceml:0.6.6
Net 8 async/await client. System.Text.Json serialization; zero NuGet dependencies.
dotnet add package VoiceML
PHP 8.1+ client on Guzzle 7. Typed enums, PSR-4 autoloading, predictable exception types.
composer require voicetel/voiceml
Ruby 3 client over the standard-library Net::HTTP. Keyword-argument methods, zero gem dependencies.
gem install voiceml
Swift 5.9 client with async throws methods over URLSession. iOS, macOS, tvOS, watchOS, and Linux targets.
Swift Package Managerhttps://github.com/voicetel/voiceml-swift
Every request body and response payload is a typed struct, class, or record in the host language. No untyped Hash or map[string]any in your call sites.
Same paths under 2010-04-01/Accounts/{AccountSid}/…, same HTTP Basic auth, same {code, message, more_info, status} error envelope. Existing Twilio client constructors translate one-to-one.
Status-keyed exception types — AuthenticationError, NotFoundError, ConflictError, RateLimitError, ServerError. Catch broadly or pattern-match by class.
Auto-retry on 429 / 5xx with Retry-After honored and exponential backoff capped at 8s. Cursor pagination via next_page_uri; Python and TypeScript ship an iterate() helper for the /Calls list.