An East African developer building software at a laptop

SENDAFRICA MESSAGING PLATFORM

Build messaging into your product

Start with one API request, then choose the tools and delivery workflows that fit your stack. SendAfrica provides the REST API, official SDKs, CLI, sandbox, and production guides in one developer journey.

REST API · HTTPS · JSON

Your first request starts here.

Create a developer API key in the portal, store it on your server, and send a request to the versioned API. This example uses a placeholder destination: replace it with a test number you control before running it. The request sends a real SMS and may use credits.

Create an API key
curl · POST /v1/sms/
curl -X POST https://api.sendafrica.online/v1/sms/ \
  -H "X-API-Key: $SENDAFRICA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "<YOUR_TEST_NUMBER>",
    "message": "Your order update is ready."
  }'
Keep credentials server-side. A successful submission is not delivery confirmation.

Use the tools your stack already speaks.

Keep the REST API as your stable foundation, or add an official client for typed resources, local helpers, and consistent error handling.

Python

pip install sendafrica

Typed resources, sync and async clients, phone helpers, and SMS part analysis.

SDK guide

TypeScript / Node.js

npm install sendafrica

Typed requests, native fetch, local phone normalization, and idempotent sends.

SDK guide

Go

go get github.com/SendAfrica/GO-SDK

A dependency-free client with typed resources, retries, and webhook verification.

SDK guide

Plan for production from the first message.

SMS integrations need to account for retries, segmentation, and asynchronous delivery. The docs explain the practical details behind each one.

Continue in the developer portal

Protect credentials

API keys are shown once. Store them in server-side secrets, never in a browser bundle, committed file, or public log.

Count parts accurately

GSM-7 and Unicode messages use different segment limits. Use SDK analysis for a preview and `credits_used` from the API as the final value.

Retry the same operation safely

Use an `Idempotency-Key` for retryable writes and reuse it for the same logical request. A new key represents a new send.

Track delivery asynchronously

A provider accepting a message is not the same as handset delivery. Reconcile final states from message logs and verified callbacks.

Go from idea to first integration.

Open the developer portal for your API key, complete guides, SDK references, and practical testing tools.

Visit developers.sendafrica.online