API GuidesVoice API
Get Started
Prepare Voice access, authenticate, and start the first outbound call.
Prerequisites
- Notify Africa account with an active Voice subscription.
- API key with the
VOICEservice grant. - Server environment that can protect the API key.
- Customer phone number in E.164 format.
Configure Environment
export NOTIFY_API_BASE_URL="https://api.notify.africa"
export NOTIFY_VOICE_API_KEY="ntfy_your_api_key"Use the environment base URL supplied by Notify Africa when it differs from production.
Authentication
Every Voice Developer API request uses Bearer authentication:
Authorization: Bearer ntfy_your_api_key
Content-Type: application/jsonThe API key must include the Voice service grant, and the owning customer must have an active Voice subscription.
Start Your First Call
curl --request POST \
"$NOTIFY_API_BASE_URL/api/v1/voice-api/calls" \
--header "Authorization: Bearer $NOTIFY_VOICE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"customerNumber": "+255700000001"
}'Example response:
{
"status": 202,
"message": "Success",
"timestamp": "2026-09-10T09:00:00.000Z",
"path": "/api/v1/voice-api/calls",
"data": {
"callAttemptId": "voice-call-attempt-550e8400-e29b-41d4-a716-446655440000",
"sessionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}Store data.callAttemptId and data.sessionId. The retrieve endpoint accepts the local Voice call session row ID or the backend-generated call attempt ID.
List Recent Calls
curl --request GET \
"$NOTIFY_API_BASE_URL/api/v1/voice-api/calls?currentPage=1&pageSize=20&sortOrder=DESC" \
--header "Authorization: Bearer $NOTIFY_VOICE_API_KEY"Use q to search by session ID, caller number, or destination number.
Retrieve One Call
curl --request GET \
"$NOTIFY_API_BASE_URL/api/v1/voice-api/calls/voice-call-attempt-550e8400-e29b-41d4-a716-446655440000" \
--header "Authorization: Bearer $NOTIFY_VOICE_API_KEY"Next: review Calls for endpoint behavior or MCP Server for agent tooling.
