Official SDKs v1.1.0

Install SDKs directly from SplitSMS

No waiting for npm, Packagist, or pub.dev. Download or install packages hosted on https://www.splitsms.com — same API as the dashboard, with SMS, OTP, wallet, Connect, and sender IDs.

Do not run npm install @splitsms/sdk

That name is not on registry.npmjs.org (404). Install from a SplitSMS .tgz URL instead — npm still installs it as @splitsms/sdk in node_modules.

Install now (local)

Run from your app folder (must have a package.json). With npm run dev running in this repo:

Dev server
npm install http://localhost:3000/sdk/javascript/splitsms-sdk.tgz
Dev API fallback
npm install http://localhost:3000/api/sdk/javascript/tgz

Or use a file path after npm run sync:sdks: npm install ./path/to/splitsms/public/sdk/javascript/splitsms-sdk.tgz

Production (after deploy)
npm install https://www.splitsms.com/sdk/javascript/splitsms-sdk.tgz
API fallback (same tarball)
npm install https://www.splitsms.com/api/sdk/javascript/tgz

If splitsms.com returns 404, the latest build is not live yet — use the local commands above, then redeploy this app (npm run build runs sync:sdks automatically).

Why install from our platform?

Packages are built on every deploy and served from /sdk/. Copy one command, paste your API key, and send — no third-party registry account required.

Quick install

JavaScript / TypeScriptv1.1.0
npm install https://www.splitsms.com/sdk/javascript/splitsms-sdk.tgz
PHPv1.1.0
composer require splitsms/sdk
Flutter / Dartv1.1.0
path: packages/splitsms_flutter

Every SDK includes

Send SMS & bulk recipients
OTP send & verify
Wallet & account balance
Delivery reports
Connect customer provisioning
Sender ID registration
Automatic retries (JS)
Typed errors

JavaScript / TypeScript

Node.js 18+, Bun, Deno, and modern browsers with native fetch.

Package: @splitsms/sdk

Download

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_…) key
  • SPLITSMS_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

PHP

WordPress, Laravel, and plain PHP — requires ext-curl and PHP 7.4+.

Package: splitsms/sdk

Download

Installation

Composer repository (one-time per project)

composer config repositories.splitsms composer https://www.splitsms.com/sdk/php/
composer require splitsms/sdk:^1.1

Manual zip install

# Download https://www.splitsms.com/sdk/php/splitsms-sdk.zip
# Extract to vendor/splitsms/sdk and add PSR-4 autoload, or use path repository:
composer config repositories.splitsms path ./vendor/splitsms-sdk
composer require splitsms/sdk:@dev

Environment

  • SPLITSMS_API_KEYBearer token for all requests
  • Composer packages.json is served at https://www.splitsms.com/sdk/php/packages.json
  • Same REST surface as the WordPress plugin.

Example

<?php
require 'vendor/autoload.php';

use SplitSMS\Client;

$client = new Client(getenv('SPLITSMS_API_KEY'), 'https://www.splitsms.com');

$client->sms()->send([
    'sender' => 'MYBRAND',
    'recipients' => ['233201234567'],
    'message' => 'Hello from SplitSMS',
]);

$client->otp()->send('233201234567', 'GH');
$client->wallet()->balance();

$client->connect()->createCustomer([
    'full_name' => 'Jane Doe',
    'phone' => '233201234567',
    'country_code' => 'GH',
    'external_ref' => 'wp-user-99',
]);

API surface

  • sms()->send · sms()->get
  • otp()->send · otp()->verify
  • wallet()->balance · wallet()->transactions
  • connect()->listCustomers · connect()->createCustomer · connect()->getCustomer
  • senderIds()->list · senderIds()->register · senderIds()->get

Flutter / Dart

Mobile and desktop Dart apps using the http package.

Package: splitsms_flutter

Download

Installation

Download and add path dependency

# 1. Download https://www.splitsms.com/sdk/flutter/splitsms-flutter.zip
# 2. Extract to your project: packages/splitsms_flutter/
# 3. In pubspec.yaml:
dependencies:
  splitsms_flutter:
    path: packages/splitsms_flutter
# 4. Run: flutter pub get

Monorepo / git submodule

# Copy sdk/flutter from the SplitSMS repo into packages/splitsms_flutter
flutter pub get

Environment

  • API keyPass to SplitSMS(apiKey: ...) — use flutter_dotenv in production
  • Flutter package is distributed as a zip from SplitSMS (pub.dev optional later).
  • Call close() when disposing the client to free the HTTP connection.

Example

import 'package:splitsms_flutter/splitsms.dart';

final sms = SplitSMS(
  apiKey: apiKey,
  baseUrl: 'https://www.splitsms.com',
);

await sms.sendMessage(
  sender: 'MYBRAND',
  recipients: ['233201234567'],
  message: 'Hello from SplitSMS',
);

await sms.sendOtp('233201234567');
await sms.verifyOtp('233201234567', '123456');
await sms.accountBalance();

await sms.createConnectCustomer({
  'full_name': 'Jane Doe',
  'phone': '233201234567',
  'country_code': 'GH',
  'external_ref': 'app-user-1',
});

API surface

  • sendMessage · sendOtp · verifyOtp
  • walletBalance · accountBalance
  • listConnectCustomers · createConnectCustomer
  • listSenderIds · registerSenderId

Prefer REST?

All SDKs call https://www.splitsms.com/api/v1 with Bearer authentication. Use cURL, Postman, or any HTTP client.

Full API docs

Troubleshooting

  • 401 / UNAUTHORIZED — paste the full API key (~56 chars), not the prefix shown in the dashboard.
  • 403 / FORBIDDEN — key lacks permission (e.g. connect.customers for Connect).
  • 404 on npm install @splitsms/sdk — use npm install https://www.splitsms.com/sdk/javascript/splitsms-sdk.tgz (see banner at top of this page).
Contact support →

Ship your first SMS today

5 free credits · Sandbox keys · 190+ countries

Create free account