JavaScript / TypeScript
Node.js 18+, Bun, Deno, and modern browsers with native fetch.
Package: @splitsms/sdk
Installation
Install from SplitSMS (recommended)
npm install https://www.splitsms.com/sdk/javascript/splitsms-sdk.tgz # or pin a version: npm install https://www.splitsms.com/sdk/javascript/splitsms-sdk-1.1.0.tgz
Add to package.json
"dependencies": {
"@splitsms/sdk": "https://www.splitsms.com/sdk/javascript/splitsms-sdk.tgz"
}Local / offline install
# Download the .tgz from https://www.splitsms.com/sdk/javascript/ npm install ./vendor/splitsms-sdk.tgz
Environment
SPLITSMS_API_KEYLive (sk_live_…) or sandbox (sk_test_…) keySPLITSMS_BASE_URLOptional — defaults to https://www.splitsms.com
- Packages are hosted on splitsms.com — no npm publish required.
- Use sk_test_ keys for sandbox (validates but does not send live SMS).
Example
import { SplitSMS } from "@splitsms/sdk";
const client = new SplitSMS({
apiKey: process.env.SPLITSMS_API_KEY!,
baseUrl: "https://www.splitsms.com",
});
// Send SMS
await client.messages.send({
sender: "MYBRAND",
recipients: ["233201234567"],
message: "Hello from SplitSMS",
});
// OTP
await client.otp.send("233201234567", "GH");
await client.otp.verify("233201234567", "123456");
// Wallet
const balance = await client.wallet.accountBalance();
// Connect — provision embedded customer
await client.connect.createCustomer({
full_name: "Jane Doe",
phone: "233201234567",
country_code: "GH",
external_ref: "crm-user-42",
initial_sms_credits: 25,
});API surface
- messages.send · messages.get · messages.reports
- otp.send · otp.verify
- wallet.balance · wallet.accountBalance · wallet.transactions
- campaigns.list · campaigns.get
- connect.listCustomers · connect.createCustomer · connect.getCustomer
- senderIds.list · senderIds.register · senderIds.get