Sautikit API documentation
One REST API for programmable voice in Kenya. Buy a voice number, place and answer calls, and reconcile spend against a prepaid wallet. Sign up free and you only pay for the numbers you hold and the seconds you talk.
Quickstart
From zero to a live call in three steps. You'll need a workspace (free) and a little wallet credit for the number and minutes.
Get an API key
Create a key in the console under Settings → API keys. Live keys start with tsk_live_.
Buy a voice number
Purchase a local Kenyan number via the API or console, then point it at your callback URL.
Place your first call
POST to /v1/calls and listen for webhook events as it rings, answers and ends.
Authentication
Every request needs a bearer token. Mint one in the console under Settings → API keys. Live keys start with tsk_live_; restricted keys can scope to specific products.
# Set your live API key
export SAUTIKIT_API_KEY="tsk_live_..."
# Every request needs Authorization: Bearer
curl https://api.sautikit.com/v1/numbers/available \
-H "Authorization: Bearer $SAUTIKIT_API_KEY"Numbers
Provision and manage Kenyan voice numbers. Sautikit numbers are local Nairobi DIDs billed monthly in KES.
Browse claimable Kenyan numbers, with optional filters.
Claim a number to your workspace and set its callback URL.
Release a number; billing stops, prorated to the day.
Calls
Place outbound calls, list history, and download recordings. All requests are signed with your live key.
Place an outbound call from a claimed number.
Read a call's status, duration, and cost.
Stream a presigned recording URL (if recording was enabled).
Wallet
Your prepaid KES balance. Top up via M-Pesa STK push. Configure email alert recipients for low-balance notifications.
Current balance, in minor units.
Initiate an M-Pesa STK push top-up (pushes a payment prompt to the specified phone).
Paginated transaction history.
List email recipients for low-balance alerts.
Add an email recipient for low-balance alerts (triggers opt-in confirmation).
Remove a low-balance alert subscriber.
Webhooks
Subscribe to call, number, and wallet events. Every webhook is HMAC-SHA256 signed; verify with the secret from your endpoint config.
X-Sautikit-Signature: t=1719500000,v1=<hex>HMAC-SHA256 over body + '.' + ts. See Verify webhook signatures.
Build with AI
Let your AI write the integration.
Paste this prompt into Claude, ChatGPT, or Cursor. It includes Sautikit's machine-readable references. Your AI gets everything it needs to write working code in one paste.
SDKs
Official SDKs for the languages our customers use most. Install, set your key, you're shipping.