Description
Unlimited Messaging · SDK
WhatsApp, email and SMS from your own number, mailbox and Android phone, in one API request.
Free plan, unlimited messages. REST API, SDKs, n8n and an MCP server for Claude, ChatGPT and Cursor.
Unlimited Messaging projects
| Project | What it is |
| — | — |
| unlimited-messaging-mcp | Hosted MCP server for Claude, ChatGPT, Cursor and any MCP client: setup guide and ready-to-paste configs |
| unlimited-messaging-sdk (this repo) | OpenAPI spec, official TypeScript and Python SDKs, and the n8n node source |
| unlimited-messaging-android | Open source Android app: send and receive SMS from your own phone and SIM |
| n8n-nodes-unlimited-messaging | n8n community node for WhatsApp, email and SMS workflows, no code |
| source=github&utmmedium=readme&utm_campaign=sdk”>Unlimited Messaging API, generated from openapi.yaml, plus the source of the n8n community node. Prefer to work from an AI assistant? Use the hosted MCP server at https://mcp.unlimitedmessaging.app.








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 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: docs.unlimitedmessaging.app
- App: api.unlimitedmessaging.app
- npm: @unlimited-messaging/sdk
- PyPI: unlimited-messaging
- MCP server: https://mcp.unlimitedmessaging.app
- n8n node: n8n-nodes-unlimited-messaging


