Open-source CPaaS for WhatsApp, Voice, Telegram, SMS & RCS. Read the source, run it on your own infra, or talk to our hosted API โ first message in under 10 minutes.
There are three ways to go from zero to your first message. Pick whichever fits your stack โ all of them share the same API and data model.
Sign up at jinaconnect-dev, grab your API key, and send your first message in 5 minutes. Free tier included.
Clone the repo and run docker compose up. API, workers, Postgres, Redis & the web app come up locally โ zero data leaves your network.
Add the MCP server to Claude Desktop, Cursor or Continue.dev. AI agents send messages as native tools โ no glue code.
Once you have a live API key, send your first WhatsApp template message:
# Send a WhatsApp template message
$ curl -X POST https://api.jinaconnect.com/wa/v1/messages/ \
-H "Authorization: Bearer jc_live_..." \
-H "Content-Type: application/json" \
-d '{
"to": "+919876543210",
"template": "order_confirmation",
"language": "en",
"variables": ["Amit", "ORD-1729"]
}'
โ 202 Accepted ยท queued for delivery
Jina Connect uses JWT-based authentication with API keys scoped per tenant. Every request carries the API key as a Bearer token in the Authorization header.
jc_live_ โ billed against your plan.jc_test_ โ sandbox traffic never bills.For interactive sessions (dashboard, admin), the backend issues access & refresh tokens through the POST /token/ endpoint. See the API Reference for the full auth flow and token rotation details.
Everything you can do in the dashboard is available over a single, consistent REST API. One base URL, JSON in and out, per-tenant keys, and the same envelope across every channel.
Hosted production traffic uses https://api.jinaconnect.com. Self-hosted deployments expose the identical routes under your own domain.
Channel-specific endpoints accept a small, predictable payload. The WhatsApp send endpoint is shown below โ Voice, Telegram, SMS and RCS follow the same shape under their own prefixes.
# Authenticate every request with your tenant key
$ curl -X POST https://api.jinaconnect.com/wa/v1/messages/ \
-H "Authorization: Bearer jc_live_..." \
-H "Content-Type: application/json" \
-d '{ "to": "+919876543210", "text": "Hi from Jina Connect" }'
โ 202 Accepted ยท { "id": "msg_โฆ", "status": "queued" }
For the complete endpoint catalogue โ messages, templates, contacts, broadcasts, voice calls, wallets and reports โ see the full API Reference โ.
Every channel ships as a self-contained Django app with its own adapters, templates and webhook handlers. Five channels are live today; Email is on the roadmap.
Programmable voice with a unified API across 5 HTTP voice providers (Twilio, Plivo, Vonage, Telnyx, Exotel) and 12 SIP trunk profiles (Knowlarity, Servetel, MyOperator, Tata Tele, Airtel and 7 more). Switch providers without rewriting your call flow.
# Place an outbound call with recording + transcription
$ curl -X POST https://api.jinaconnect.com/voice/api/calls/ \
-H "Authorization: Bearer jc_live_..." \
-d '{
"to": "+919876543210",
"from": "+918860302401",
"template_id": "appointment_reminder",
"record": true,
"transcription_provider": "deepgram"
}'
Jina Connect ships a Model Context Protocol server with 13 tools. AI agents โ Claude Desktop, Cursor, Continue.dev, ChatGPT with custom GPTs โ can call your messaging stack as native tools with no glue code and no custom adapters.
Drop the config below into your agent and restart it:
{
"mcpServers": {
"jina-connect": {
"command": "npx",
"args": ["-y", "@jina-connect/mcp-server"],
"env": { "JINA_API_KEY": "jc_live_..." }
}
}
}
Once restarted, the Jina Connect tools (send_whatsapp, list_broadcasts, get_analytics and more) appear automatically. Compatible with Claude Desktop ยท Cursor ยท ChatGPT Desktop ยท Continue.dev.
Every inbound event โ incoming message, delivery status, read receipt, call event, or completed transcription โ fires a webhook to the URLs you register per tenant. Signatures use HMAC-SHA256 with your shared secret so you can verify authenticity.
message.inbound โ a user sent you a message.message.status โ delivery / read / failed.call.completed โ a voice call ended.call.transcription โ Deepgram / Whisper finished STT.broadcast.finished โ a broadcast batch completed.template.approved โ Meta approved your template.Every workspace is an isolated tenant with its own users, contacts, templates, API keys and Razorpay wallet. It is built for agencies running 5โ50 client WABAs from a single deployment.
See For Agencies โ for the complete agency playbook.
The entire core platform is open-source under AGPL v3. Run it on your own infrastructure with a single Docker command โ zero data leaves your network.
$ git clone https://github.com/JINA-CODE-SYSTEMS/jina-connect-unified-cpaas
$ cd jina-connect-unified-cpaas
$ cp .env.example .env # edit your secrets
$ docker compose up -d
โ API ยท Workers ยท Postgres ยท Redis ยท Web app ready in <2 min
Required services: Postgres 14+, Redis 6+, and S3-compatible object storage for media and recordings. Everything else โ Celery workers, Daphne for WebSockets, and Caddy for TLS โ is included in docker-compose.yml.
Three support channels, fastest first: