Documentation / VoiceTel SDKs

Official client libraries for the VoiceTel REST API.

Twelve language SDKs, an interactive CLI, and Postman + Bruno collections — all open-source under MIT, all generated from the same OpenAPI spec, all targeting VoiceTel REST API v2.2.10.

Browse GitHub API reference

SDKs

Python

Idiomatic Python client. Synchronous and async transports, typed request/response models, retries with exponential backoff.

pip install voicetel-api

github.com/voicetel/python-sdk

Go

Generated Go client with context-aware methods and structured error types. No reflection on the hot path.

go get github.com/voicetel/go-sdk

github.com/voicetel/go-sdk

Java

Java 11+ client with builder-style request construction. Pluggable HTTP transport; OkHttp by default.

Mavencom.voicetel:voicetel-sdk:2.2.10

github.com/voicetel/java-sdk

Kotlin

Coroutine-first Kotlin client. Suspending functions, sealed result types, idiomatic null handling.

Gradlecom.voicetel:voicetel-sdk-kotlin:2.2.10

github.com/voicetel/kotlin-sdk

PHP

PSR-7 / PSR-18 client for PHP 8.1+. Strict types, enum responses, predictable exception hierarchy.

composer require voicetel/sdk

github.com/voicetel/php-sdk

Swift

Swift 5.9+ async/await client. Codable models, structured concurrency, iOS and macOS targets.

Swift Package Managerhttps://github.com/voicetel/swift-sdk

github.com/voicetel/swift-sdk

Lua

FreeSWITCH mod_lua client. Call into the VoiceTel API from dialplan scripts without leaving the runtime.

drop into /etc/freeswitch/scripts/

github.com/voicetel/lua-sdk

Tooling

VoiceTel CLI

Interactive REPL for the VoiceTel API. Command history, tab autocomplete, and one-shot scripted invocations. Drives every v2.2.10 operation from the terminal.

go install github.com/voicetel/cli@latest

github.com/voicetel/cli

What every SDK gets you

  • Generated from the spec

    Every method, parameter, and response model is generated from vendor/api-specs/v2.2.json. The SDK shape matches the wire shape one-to-one.

  • Bearer auth, sane defaults

    Pass your 32-character API key once at construction. The SDK injects Authorization: Bearer <key> on every request; the key never appears in logs or error output.

  • Typed errors, not strings

    Distinct exception or result types for transport failures, 4xx client errors, 5xx server errors, and rate-limit responses. Branch on the type, not on the message text.

  • All 74 operations covered

    Every operation in v2.2.10 is reachable from every SDK. No "supported in Python but not Go" gaps. CI runs the full operation matrix per release.