
Company News
Jerod Santo Joins Socket as Head of Media
Allow myself to introduce... myself.
natureco-whatsapp-service
Advanced tools
Standalone Node.js service for WhatsApp integration using whatsapp-web.js. Designed to be deployed on Railway, Render, or any Node.js hosting platform.
Create a new WhatsApp session and generate QR code.
Request:
{
"bot_id": "bot_123"
}
Response:
{
"session_id": "whatsapp_bot_123_1234567890",
"bot_id": "bot_123",
"status": "pending",
"message": "WhatsApp session created. Use SSE endpoint to receive QR code.",
"sse_endpoint": "/qr/whatsapp_bot_123_1234567890"
}
Server-Sent Events (SSE) endpoint for real-time QR code streaming.
Events:
connected - Initial connection establishedqr - QR code generated (base64 data URL)ready - WhatsApp authenticated and readyerror - Authentication or connection errordisconnected - Session disconnectedExample:
const eventSource = new EventSource('https://whatsapp.natureco.me/qr/session_id');
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === 'qr') {
// Display QR code: data.qr (base64 data URL)
console.log('QR Code:', data.qr);
}
if (data.type === 'ready') {
console.log('WhatsApp connected!');
eventSource.close();
}
};
Get current status of a WhatsApp session.
Response:
{
"session_id": "whatsapp_bot_123_1234567890",
"bot_id": "bot_123",
"status": "connected",
"created_at": "2024-01-01T00:00:00.000Z",
"connected_at": "2024-01-01T00:01:00.000Z",
"disconnected_at": null,
"has_qr": true,
"client_active": true,
"error": null,
"disconnect_reason": null
}
Status values:
pending - Waiting for QR scanauthenticated - QR scanned, authenticatingconnected - Fully connected and readydisconnected - Session endedauth_failed - Authentication failederror - Error occurredDisconnect and destroy a WhatsApp session.
Request:
{
"session_id": "whatsapp_bot_123_1234567890"
}
Response:
{
"success": true,
"message": "WhatsApp session disconnected",
"session_id": "whatsapp_bot_123_1234567890"
}
List all active sessions (admin endpoint).
Response:
{
"total": 2,
"sessions": [
{
"session_id": "whatsapp_bot_123_1234567890",
"bot_id": "bot_123",
"status": "connected",
"created_at": "2024-01-01T00:00:00.000Z",
"connected_at": "2024-01-01T00:01:00.000Z"
}
]
}
# Install dependencies
npm install
# Copy environment file
cp .env.example .env
# Start development server
npm run dev
# Start production server
npm start
PORT=3000
NODE_ENV=production
API_SECRET=your-secret-key-here
railway.json:
{
"$schema": "https://railway.app/railway.schema.json",
"build": {
"builder": "NIXPACKS"
},
"deploy": {
"startCommand": "npm start",
"restartPolicyType": "ON_FAILURE",
"restartPolicyMaxRetries": 10
}
}
npm installnpm startrender.yaml:
services:
- type: web
name: natureco-whatsapp
env: node
buildCommand: npm install
startCommand: npm start
envVars:
- key: NODE_ENV
value: production
Point whatsapp.natureco.me to your deployment:
Railway: Settings → Networking → Custom Domain Render: Settings → Custom Domain
┌─────────────────┐
│ NatureCo CLI │
│ or Worker │
└────────┬────────┘
│
│ HTTP/SSE
▼
┌─────────────────────────┐
│ WhatsApp Service │
│ (Express + SSE) │
└────────┬────────────────┘
│
│ whatsapp-web.js
▼
┌─────────────────────────┐
│ WhatsApp Web │
│ (Puppeteer + Chrome) │
└─────────────────────────┘
.wwebjs_auth/QR Code not generating:
Session disconnects:
Multiple instances:
.wwebjs_auth/MIT © NatureCo
Service URL: https://whatsapp.natureco.me Version: 1.0.0 Node.js: >=18.0.0
FAQs
NatureCo WhatsApp Integration Service with Baileys
We found that natureco-whatsapp-service demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.