Description
Unlimited Messaging SDK
Official TypeScript and Python clients for the Unlimited Messaging API — send and receive WhatsApp messages programmatically.








Installation
TypeScript / Node.js package
npm install @unlimited-messaging/sdk
Python package
pip install unlimited-messaging
Quick start
TypeScript
import { UnlimitedMessagingApiClient } from "@unlimited-messaging/sdk";const client = new UnlimitedMessagingApiClient({
token: process.env.API_TOKEN,
});
// Send a message
const message = await client.message.send({
recipient: "+33612345678",
text: "Hello!",
});
console.log(message.id, message.status);
// List messages
const result = await client.message.findAll({
page: 1,
limit: 20,
});
console.log(${result.total} messages);
// List linked SIMs
const sims = await client.sim.getLinkedSims();
Python
import os
from unlimited_messaging import UnlimitedMessagingApiclient = UnlimitedMessagingApi(
token=os.environ["API_TOKEN"],
)
Send a message
message = client.message.send(
recipient="+33612345678",
text="Hello!",
)print(message.id, message.status)
List messages
result = client.message.find_all(page=1, limit=20)
print(f"{result.total} messages")List linked SIMs
sims = client.sim.getlinkedsims()
Authentication
All endpoints require a Bearer token. Pass it as the token option when initialising the client. You can generate a token from your dashboard.
API reference
The full API spec is in openapi.yaml. More examples are available in examples/.
Messages
| Method | Description |
| ————————————– | —————————————– |
| message.send / message.send | Send a WhatsApp message |
| message.findAll / message.find_all | List messages with pagination and filters |
| message.findOne / message.find_one | Get a single message by ID |
#### Send options
| Field | Type | Required | Description |
| ———– | —— | ——– | ——————————– |
| recipient | string | yes | Phone number (E.164 format) |
| text | string | yes | Message content (max 1600 chars) |
| simId | string | no | Force a specific SIM |
#### List filters
| Field | Type | Description |
| ——– | —— | ———————————————————————— |
| page | number | Page number (default: 1) |
| limit | number | Results per page, max 100 (default: 20) |
| status | string | Filter by status: PENDING SENDING SENT DELIVERED READ FAILED |
| simId | string | Filter by SIM |
| search | string | Search in content |
SIMs
| Method | Description |
| ——————————————- | ————————— |
| sim.getLinkedSims / sim.getlinkedsims | Get the list of linked SIMs |
Async support (Python)
import asyncio
from unlimited_messaging import AsyncUnlimitedMessagingApiclient = AsyncUnlimitedMessagingApi(token="...")
async def main():
message = await client.message.send(
recipient="+33612345678",
text="Hello async!",
)
asyncio.run(main())
Local development
Requires Docker (for Fern code generation).
Regenerate SDKs after openapi.yaml changes
make generateInstall SDKs locally for testing
make installRun examples
APITOKEN=yourtoken python3 examples/python/src/send_message.py
APITOKEN=yourtoken npx tsx examples/typescript/src/send-message.ts
Links
- Website: unlimitedmessaging.app
- Docs: docs.unlimitedmessaging.app
- APP : app.unlimitedmessaging.app
- API: api.unlimitedmessaging.app
- npm: @unlimited-messaging/sdk
- PyPI: unlimited-messaging