SDKs
Python
Synchronous Client and AsyncClient. Pydantic v2 models, httpx transport, typed exception hierarchy.
pip install voiceml
TypeScript / Node
ESM and CJS entry points. Async-only API, fetch-based transport, zero runtime dependencies.
npm install voiceml
Go
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
Java 11+ client over java.net.http. Builder-style request construction, Jackson serialization.
Mavencom.voicetel:voiceml:0.9.1
C# / .NET
Net 8 async/await client. System.Text.Json serialization; zero NuGet dependencies.
dotnet add package VoiceML
PHP
PHP 8.1+ client on Guzzle 7. Typed enums, PSR-4 autoloading, predictable exception types.
composer require voicetel/voiceml
Ruby
Ruby 3 client over the standard-library Net::HTTP. Keyword-argument methods, zero gem dependencies.
gem install voiceml
Swift
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
What every SDK gets you
-
Strongly typed end-to-end
Every request body and response payload is a typed struct, class, or record in the host language. No untyped
Hashormap[string]anyin your call sites. -
Twilio-shape wire format
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. -
Structured errors
Status-keyed exception types —
AuthenticationError,NotFoundError,ConflictError,RateLimitError,ServerError. Catch broadly or pattern-match by class. -
Retries and pagination built in
Auto-retry on 429 / 5xx with
Retry-Afterhonored and exponential backoff capped at 8s. Cursor pagination vianext_page_uri; Python and TypeScript ship aniterate()helper for the/Callslist.

