Sautikit is a programmable voice API (phone numbers, outbound calling, inbound call handling, recordings) priced in KES and built to run reliably in Kenya. If you have found existing voice API options difficult to work with for African deployments (USD pricing, unreliable routing, or SMS-first products where voice is bolted on), Sautikit is the alternative we built because we needed it ourselves.
Voice infrastructure in Africa has a problem. The dominant global providers price in USD, bill by the leg (caller-side and callee-side billed separately), and route calls through endpoints optimised for North America or Europe. Latency suffers. Billing surprises happen. Support is slow because your Kenya traffic is a rounding error to them.
Local providers have their own issues: SMS-first APIs where voice is bolted on, erratic uptime, and documentation that hasn't kept pace with what the product actually does.
We built Sautikit because we were shipping a fintech product in Kenya and neither option was acceptable. The result is a voice-only API (no SMS distraction) priced in KES, with a billing model that matches how prepaid telephony actually works.
It is not an SMS gateway. There is no WhatsApp Business API wrapper. There are no multi-channel messaging features. Voice calls only. That is intentional. If you need SMS, WhatsApp, USSD, or a human-agent desk alongside voice, our parent platform Helloduty covers those channels.
Sautikit is a REST API at api.sautikit.com. Every workspace-scoped request accepts either a dashboard session cookie (sk_session) or a long-lived ES256 JWT API key via Authorization: Bearer <jwt>.
The main resources are:
Resource
Endpoint prefix
Phone numbers
GET /v1/numbers/available, POST /v1/numbers/{id}/claim
Outbound calls
POST /v1/calls
Call records
GET /v1/calls, GET /v1/calls/{id}
Recordings
GET /v1/calls/{id}/recording
SIP credentials
GET /v1/numbers/{id}/sip-credentials
Wallet
GET /v1/wallet, GET /v1/wallet/balance
Webhooks
POST /v1/webhooks
The full OpenAPI spec is at GET /v1/openapi.yaml on the API server.
Here is what it looks like to place a call from the command line. You need an API key (minted from the dashboard at POST /v1/api-keys) and a number claimed to your workspace.
from must be a number owned by your workspace. to is an array: today the first element is dialled; the array is reserved for simultaneous-ring support on the roadmap.
The status field moves through ringing → answered → completed (or failed, no_answer, busy, canceled on error paths). duration_seconds and cost_minor are populated at completion.
Numbers cost KES 100/mo ex. VAT (KES 116 incl. VAT). Outbound calls cost KES 3 per minute (KES 0.05/sec). Inbound calls are free (KES 0/min). Recording storage is free up to 5 GB. All amounts are in minor units (KES cents) in the API; the wallet stores and deducts in minor units.
There are no per-request fees, no platform fees on top of minutes, and no per-leg billing that charges you twice for one call.