Call Center Systems — Africa

Programmable Voice API in Kenya: How to Get a Number and Make Calls in Code

Get a Kenyan phone number by API and make programmable inbound and outbound calls with per-second billing. A developer walkthrough with SautiKit.

A programmable voice API lets you provision a phone number, receive calls, and place calls entirely from your code, with no PBX, no SIM cards, and no carrier contract. In Kenya, SautiKit gives you a local number for KES 100/month and per-second call billing (KES 0.05/second outbound, inbound free), controlled through a REST API and webhooks.

If you have ever wanted your app to send an SMS, you already understand the idea: an API call triggers a real-world message. Programmable voice is the same, for phone calls. This guide shows a Kenyan developer how to get a number and make the two calls that matter, one in, one out.

What is a programmable voice API?

A programmable voice API is a service that exposes telephone functions (buying numbers, answering calls, placing calls, playing audio, recording, routing) as web requests. Your application sends HTTP requests to control calls, and the service sends webhooks back to your server as call events happen. You write logic; the API handles the carrier plumbing.

The classic global example is Twilio. The problem for African teams has been local numbers, local rates, and billing in dollars. SautiKit is built to solve exactly that in Kenya and, over time, more of Africa.

Step 1: Get a Kenyan phone number by API

Instead of buying a line at a shop, you request one:

curl -X POST https://api.sautikit.com/v1/numbers \
  -H 'Authorization: Bearer $SAUTIKIT_API_KEY' \
  -d 'country=KE'

You now hold a Kenyan number for KES 100/month. Assign a webhook URL to it so SautiKit can notify your server whenever the number is called.

Step 2: Receive an inbound call

When someone dials your number, SautiKit sends an HTTP request to your webhook. Your server replies with instructions describing what should happen on the call: play a greeting, collect a keypress, record a message, connect to an agent, or open a real-time audio stream.

A minimal answer-and-greet handler looks like this in pseudocode:

POST /voice/inbound  ->  respond with:
  say: 'Karibu. Thanks for calling. Press 1 for sales, 2 for support.'
  gather: 1 digit  ->  send the result to /voice/menu

That single exchange already gives you an IVR: a menu that routes callers without any hardware.

Step 3: Make an outbound call

To place a call from your code, you tell the API who to dial and what to do when the person answers:

curl -X POST https://api.sautikit.com/v1/calls \
  -H 'Authorization: Bearer $SAUTIKIT_API_KEY' \
  -d 'from=$YOUR_SAUTIKIT_NUMBER' \
  -d 'to=+2547XXXXXXXX' \
  -d 'webhook=https://yourapp.co.ke/voice/outbound'

When the callee picks up, SautiKit calls your webhook and you return instructions: play a message, run a survey, connect them to a staff member, or hand the audio to an AI agent. Outbound is billed per second, so a 20-second reminder call costs KES 1.

Step 4: Add routing, recording, and retries

Once inbound and outbound work, the useful features are small additions:

  • IVR and routing - branch on keypresses or on who is calling, all in your webhook logic, no middleware.
  • Recording - capture calls to cloud storage (there is a free tier) for quality and training.
  • Webhooks with retry - SautiKit retries failed callbacks automatically, so a brief blip on your server does not silently drop a call event.
  • Call logs - a full record of every call for debugging and billing reconciliation.

What can you build with it?

Use caseWhat the API does
Customer support lineInbound calls, IVR menu, route to agents, record
Appointment remindersOutbound calls with a spoken message and reply
OTP / verification by callOutbound call that reads a code aloud
AI voice agentInbound call plus real-time audio stream to your model
Click-to-call in your appOutbound call connecting a user and a business

How is this different from a normal SIM or PBX?

A SIM ties a number to one physical device. A PBX ties your call flow to hardware and configuration. A programmable voice API makes the number and the call flow into software you deploy and version like any other code. You can spin up ten numbers for a campaign, then release them, and you never touch a cable.

Why SautiKit for Kenya?

SautiKit is a voice API designed for African developers: local Kenyan numbers, billing in shillings from a prepaid wallet, per-second rates you can read on the pricing page (no black-box quotes), free inbound calls, and a real-time audio stream ready for AI. There are no contracts to sign before you write your first line of code.

Frequently asked questions

How do I get a Kenyan phone number for my app?

Request one through the SautiKit API with a single POST call. The number is provisioned instantly and billed at KES 100/month, and you attach a webhook so your app is notified of incoming calls.

How much does it cost to make a call?

Outbound calls are billed at KES 0.05 per second and inbound calls are free, drawn from a prepaid wallet. A 20-second call costs about KES 1.

Is SautiKit a Twilio alternative for Africa?

It serves the same programmable-voice purpose, but with local Kenyan numbers, shilling billing, and pricing aimed at African developers rather than dollar-based global rates. Coverage starts in Kenya with more African markets planned.

Do I need special hardware or a PBX?

No. Everything is done over the API and webhooks. There is no PBX, no SIP phone, and no SIM card to manage.

Can I record calls?

Yes. Call recording is supported with a free storage tier, useful for quality assurance and for training AI agents on real conversations.

Last updated
July 7, 2026
Single Inbox
Pro-tip

Are you ready to get started? Sign up here for a demo of the HelloDuty CRM and customer engagement automation software now.

Pesalink - BlackSistema Bio - BlackTatu City - BlackStartimes - Black
Sunculture Logo

It works for our customer SunCulture. We help agents sell solar. It takes a few hours, not months, to design and build new ideas.

Relationships that matter.

Plan, engage, and analyse with ease. Transform your customer relationship with an all-in-one platform.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Subscribe