SDK overview
Every official SDK is a real, versioned, open-source repository that mirrors the REST API one-to-one. Pick a language and read the full A-to-Z guide for it.
Feature matrix
| Capability | Python | TypeScript | Go |
|---|---|---|---|
| Send one SMS | ✅ | ✅ | ✅ |
| Send many (client-side, paced) | ✅ send_many | ✅ sendMany | ✅ SendMany |
| Server-side bulk SMS | ✅ bulk (cap 100) | ✅ bulk (cap 100) | ✅ Bulk (cap 100) |
| Message logs | ✅ logs | ✅ logs / logsJwt | ✅ Logs |
| Local SMS part analysis | ✅ analyze | ✅ getSmsPartInfo | ✅ Analyze |
| Phone normalization | ✅ (automatic) | ✅ (opt-out) | ✅ (automatic) |
| Credits balance & history | ✅ | ✅ | ✅ |
| Public rate card | ✅ | ✅ | ✅ |
| Sender-ID registration | ✅ | ✅ | ✅ |
| Voucher top-ups | ✅ | ✅ | ✅ |
| Webhook verification/parsing | ✅ | ✅ (code samples) | ✅ Webhooks.Parse |
| Async support | ✅ AsyncSendAfrica | ✅ (native await) | — (goroutines) |
| Retries & backoff | ✅ 500 ms → 8 s | ✅ 1 s → 8 s + jitter | ✅ 500 ms → 8 s |
| Error taxonomy | ✅ exceptions | ✅ error classes | ✅ APIError |
Shared concepts
No matter which SDK you pick, these ideas are identical:
- One client, one API key. Construct the client with your key (
X-API-Keyis set automatically). - Typed results. Responses map to typed models —
SMSResult,CreditBalance,RateInfo,WebhookEvent… - Automatic retries.
429/5xxand network failures retry with backoff, honoringRetry-After. - Delivery is async. Send responses confirm provider acceptance. Delivery arrives later via webhooks.
- One credit per SMS part. Use the local analysis helpers to predict cost before sending.
Full guides
- Go SDK — 20+ pages: setup, sending, bulk, credits, rates, sender IDs, vouchers, webhooks, contacts, campaigns, notifications, and utilities.
- Python SDK — setup, sending, bulk, async, CLI, credits, rates, sender IDs, vouchers, webhooks, and errors.
- TypeScript SDK — setup, sending, bulk, credits, rates, sender IDs, vouchers, webhooks, and errors.
Under the hood
The SDKs call the SendAfrica REST API at https://api.sendafrica.online/v1. All three are generated from the same contract, so if you already know the HTTP endpoint, you already know the SDK method name.
Last updated on