Node.js / TypeScript SDK
Installation
npm install sendafrica
# or
pnpm add sendafricaQuick Start
import { SendAfrica } from 'sendafrica';
const client = new SendAfrica({ apiKey: process.env.SENDAFRICA_API_KEY });
const balance = await client.credits.getBalance();
console.log(`Credits available: ${balance.credits}`);
const response = await client.sms.send({
to: '+255712345678',
message: 'Hello from SendAfrica!',
});
console.log(`Message ID: ${response.messageId}`);API Reference
// Send single SMS
const response = await client.sms.send({
to: '+255712345678',
message: 'Hello!',
});
// Send bulk SMS
const response = await client.sms.sendBulk({
recipients: ['+255712345678', '+255787654321'],
message: 'Sale announcement!',
});
// List contacts
const contacts = await client.contacts.list({ listId: '1' });
// Create campaign
const campaign = await client.campaigns.create({
name: 'Summer Sale',
contactGroupId: '2',
message: 'Get 30% off!',
});Error Handling
import { SendAfricaError, AuthenticationError, RateLimitError } from 'sendafrica';
try {
const response = await client.sms.send({ to: '+255712345678', message: 'Hello!' });
} catch (error) {
if (error instanceof AuthenticationError) {
console.error('Invalid API key');
} else if (error instanceof RateLimitError) {
console.error('Rate limit exceeded');
} else if (error instanceof SendAfricaError) {
console.error(`API error: ${error.message}`);
}
}TypeScript Support
Full TypeScript definitions included:
import type { SmsSendResponse, CreditsBalanceResponse, ContactsListResponse } from 'sendafrica';Last updated on