mrifqidaffaaditya/WA-AKG

A self-hosted WhatsApp Gateway & Dashboard built with Next.js 15, Baileys, and Prisma. Manage multi-session accounts, schedule messages, create auto-replies, and integrate via Webhooks.

TypeScript

399

368 commits

updated Sep 21, 2026

See the code

README

πŸš€ WA-AKG: The Ultimate WhatsApp Gateway & Dashboard

WhatsApp Bot Next.js TypeScript Prisma Version Main Branch

Active Apps

A professional, multi-session WhatsApp Gateway, Dashboard, and Automation System.
Built with Next.js 15, React, and Baileys for high-performance messaging automation and real-time WhatsApp Bot Gateway services.

[!TIP] Looking for the latest features? Check out the beta branch or our pre-releases for experimental sources.

Features β€’ User Guide β€’ API Documentation β€’ Database Setup β€’ Installation


πŸ“– Complete Documentation

WA-AKG comes with extensive documentation designed for both developers and users.


🌟 Why WA-AKG WhatsApp API Gateway?

WA-AKG transforms your WhatsApp into a fully programmable RESTful API. It's designed for scale, reliability, and ease of use, making it the perfect bridge between your business logic and WhatsApp's global reach. Excellent for developing a WhatsApp Bot, Automation, or Customer Service Gateway.

πŸ—οΈ How it Works

graph LR
    User([User / App]) -->|REST API| API[WA-AKG Gateway]
    API -->|Baileys| WhatsApp[[WhatsApp Server]]
    API -->|Real-time| DB[(Prisma / DB)]
    WhatsApp -.->|Webhook| API
    API -.->|Event| Webhook([External CRM / API])

πŸ”₯ Key Features

  • πŸ“± Multi-Session Management: Connect and manage unlimited WhatsApp accounts simultaneously via simple QR code scans.
  • ⚑ Pro WhatsApp Engine: Powered by @whiskeysockets/baileys for high-speed, stable, and secure WebSocket connections.
  • πŸ“… Advanced Scheduler: Precise message planning with Media Support (Images, Video, Docs).
  • πŸ“’ Safe Broadcast: Built-in anti-ban mechanisms with randomized delays (10-30s) and batch processing.
  • πŸ€– Smart Auto-Reply: Keywords matching with Context Support (Group/Private/All) and Media Attachments.
  • πŸ›‘οΈ Granular Access Control: Full Whitelist & Blacklist support for both Bot Commands and Auto Replies.
  • πŸ”— Enterprise Webhooks: Robust real-time event forwarding for messages, connections, status changes, and group updates.
  • πŸ“‡ Advanced Contacts: Rich contact management with LID, verified names, and profile pictures.
  • 🎨 Creative Tools: Built-in Sticker Maker with background removal (remove.bg integration).
  • πŸ“˜ Open API Spec: Fully documented via swagger-ui-react at /docs.
πŸ“‚ View Webhook Payload Example
{
  "event": "message.received",
  "sessionId": "xgj7d9",
  "timestamp": "2026-01-17T05:33:08.545Z",
  "data": {
    "key": { "remoteJid": "6287748687946@s.whatsapp.net", "fromMe": false, "id": "3EB0B78..." },
    "from": "6287748687946@s.whatsapp.net",
    "sender": "100429287395370@lid",
    "remoteJidAlt": "100429287395370@lid",
    "type": "TEXT",
    "content": "saya sedang reply",
    "isGroup": false,
    "quoted": {
      "type": "IMAGE",
      "caption": "Ini caption dari reply",
      "fileUrl": "/media/xgj7d9-A54FD0B6F..."
    }
  }
}

🧩 Integrations: Native n8n Support

WA-AKG natively supports n8n! You can build complex, no-code/low-code WhatsApp automation workflows using our official community nodes.

n8n nodes

  • Action Node: Full control over messaging, groups, sessions, contacts, and labels directly from your n8n workflows.
  • Trigger Node: Instantly catch real-time webhooks (Message Received, Group Joined, etc.) and trigger your workflows automatically.

πŸ‘‰ View on npm (n8n-nodes-wa-akg)


πŸš€ Quick Installation

1. Prerequisites

  • Node.js 20+ (Node.js 22 recommended)
  • MySQL or PostgreSQL
  • Git
  • PM2 (Installed globally: npm install -g pm2)

2. Setup

# Clone and install
git clone https://github.com/mrifqidaffaaditya/WA-AKG.git
cd WA-AKG
npm install

# Configure environment
cp .env.example .env
# Edit .env with your DATABASE_URL, AUTH_SECRET, PORT, etc.

# Push schema and generate Prisma Client
npm run db:push

# Create SuperAdmin account
npm run make-admin admin@example.com password123

3. Run (Development)

npm run dev

We recommend deploying with PM2 to run the app in the background and ensure it restarts automatically if the server rebooted or crashed.

Option A: Automatic Setup Script (Easiest)

We provide a built-in start.sh script that automates everything: checking the configuration, installing dependencies, syncing the database schema, compiling production assets, and starting or reloading PM2:

./start.sh

Option B: Manual Setup

  1. Build the application:

    npm run build
    
  2. Start with PM2: Using the built-in ecosystem.config.js configuration file:

    pm2 start ecosystem.config.js
    
  3. Manage the process:

    • View status: pm2 status
    • View logs: pm2 logs wa-akg
    • Stop process: pm2 stop wa-akg
    • Restart process: pm2 restart wa-akg
  4. Enable auto-start on server boot:

    pm2 startup
    # Copy-paste the command outputted by the command above
    pm2 save
    

πŸ‹ Alternative: Docker Deployment

Although PM2 is highly recommended, you can also deploy using Docker Compose:

  1. Prepare Environment:

    cp .env.example .env
    

    Edit .env β€” set DATABASE_URL (points to the MySQL container), AUTH_SECRET, and other branding settings.

  2. Start Services:

    docker compose up -d
    

    This spins up the MySQL database container alongside the Next.js gateway application.


πŸ“š API Reference Overview

WA-AKG provides a comprehensive REST API to integrate WhatsApp Messaging directly into your applications. Full details in API_DOCUMENTATION.md.

[!TIP] Use the built-in Swagger UI for interactive exploration at /docs.

MethodEndpointDescription
POST/api/messages/{sessionId}/{jid}/sendSend text, media, or stickers
POST/api/messages/{sessionId}/broadcastScalable bulk messaging
PATCH/api/sessions/{id}/settingsUpdate session configuration
GET/api/groups/{sessionId}List all available groups
POST/api/webhooks/{sessionId}Register real-time event listeners
POST/api/autoreplies/{sessionId}Create context-aware auto-replies
POST/api/auth/registerRegister new users via the web securely

Example: Send Text Message

curl -X POST http://localhost:3000/api/messages/session_01/62812345678@s.whatsapp.net/send \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "message": { "text": "Hello from WA-AKG!" }
  }'

⚠️ Known Issues / Caveats

[!WARNING] Status Update Feature (POST /api/status/update)

The WhatsApp status/story update feature is currently experiencing known issues and should be avoided in production:

  • Text statuses with custom background colors may not display correctly
  • Media statuses (images/videos) may fail to upload to WhatsApp servers
  • The feature is under active development

We recommend waiting for the next release before using this endpoint in critical workflows.


πŸ›‘οΈ Security

  • API Key Auth: Secured endpoints using X-API-Key header.
  • RBAC: Multi-role support (SUPERADMIN, OWNER, STAFF).
  • Encrypted Passwords: All passwords hashed with bcrypt.
  • JWT Encryption: Session tokens signed with AUTH_SECRET (wajib diisi β€” tidak ada fallback).
  • Input Validation: Zod schemas on critical endpoints.
  • Media Protection: Path traversal prevention, session-scoped media access.

Built with ❀️ by Aditya Licensed under MIT
automation
baileys
chatbot
dashboard
gateway
multi-client
multi-connection
multi-session
next-auth
nextjs
prisma
rest-api
self-hosted
webhook
whatsapp
whatsapp-api
whatsapp-bot
whatsapp-web

mrifqidaffaaditya/WA-AKG

A self-hosted WhatsApp Gateway & Dashboard built with Next.js 15, Baileys, and Prisma. Manage multi-session accounts, schedule messages, create auto-replies, and integrate via Webhooks.

TypeScript

399

368 commits

updated Sep 21, 2026

See the code

README

πŸš€ WA-AKG: The Ultimate WhatsApp Gateway & Dashboard

WhatsApp Bot Next.js TypeScript Prisma Version Main Branch

Active Apps

A professional, multi-session WhatsApp Gateway, Dashboard, and Automation System.
Built with Next.js 15, React, and Baileys for high-performance messaging automation and real-time WhatsApp Bot Gateway services.

[!TIP] Looking for the latest features? Check out the beta branch or our pre-releases for experimental sources.

Features β€’ User Guide β€’ API Documentation β€’ Database Setup β€’ Installation


πŸ“– Complete Documentation

WA-AKG comes with extensive documentation designed for both developers and users.


🌟 Why WA-AKG WhatsApp API Gateway?

WA-AKG transforms your WhatsApp into a fully programmable RESTful API. It's designed for scale, reliability, and ease of use, making it the perfect bridge between your business logic and WhatsApp's global reach. Excellent for developing a WhatsApp Bot, Automation, or Customer Service Gateway.

πŸ—οΈ How it Works

graph LR
    User([User / App]) -->|REST API| API[WA-AKG Gateway]
    API -->|Baileys| WhatsApp[[WhatsApp Server]]
    API -->|Real-time| DB[(Prisma / DB)]
    WhatsApp -.->|Webhook| API
    API -.->|Event| Webhook([External CRM / API])

πŸ”₯ Key Features

  • πŸ“± Multi-Session Management: Connect and manage unlimited WhatsApp accounts simultaneously via simple QR code scans.
  • ⚑ Pro WhatsApp Engine: Powered by @whiskeysockets/baileys for high-speed, stable, and secure WebSocket connections.
  • πŸ“… Advanced Scheduler: Precise message planning with Media Support (Images, Video, Docs).
  • πŸ“’ Safe Broadcast: Built-in anti-ban mechanisms with randomized delays (10-30s) and batch processing.
  • πŸ€– Smart Auto-Reply: Keywords matching with Context Support (Group/Private/All) and Media Attachments.
  • πŸ›‘οΈ Granular Access Control: Full Whitelist & Blacklist support for both Bot Commands and Auto Replies.
  • πŸ”— Enterprise Webhooks: Robust real-time event forwarding for messages, connections, status changes, and group updates.
  • πŸ“‡ Advanced Contacts: Rich contact management with LID, verified names, and profile pictures.
  • 🎨 Creative Tools: Built-in Sticker Maker with background removal (remove.bg integration).
  • πŸ“˜ Open API Spec: Fully documented via swagger-ui-react at /docs.
πŸ“‚ View Webhook Payload Example
{
  "event": "message.received",
  "sessionId": "xgj7d9",
  "timestamp": "2026-01-17T05:33:08.545Z",
  "data": {
    "key": { "remoteJid": "6287748687946@s.whatsapp.net", "fromMe": false, "id": "3EB0B78..." },
    "from": "6287748687946@s.whatsapp.net",
    "sender": "100429287395370@lid",
    "remoteJidAlt": "100429287395370@lid",
    "type": "TEXT",
    "content": "saya sedang reply",
    "isGroup": false,
    "quoted": {
      "type": "IMAGE",
      "caption": "Ini caption dari reply",
      "fileUrl": "/media/xgj7d9-A54FD0B6F..."
    }
  }
}

🧩 Integrations: Native n8n Support

WA-AKG natively supports n8n! You can build complex, no-code/low-code WhatsApp automation workflows using our official community nodes.

n8n nodes

  • Action Node: Full control over messaging, groups, sessions, contacts, and labels directly from your n8n workflows.
  • Trigger Node: Instantly catch real-time webhooks (Message Received, Group Joined, etc.) and trigger your workflows automatically.

πŸ‘‰ View on npm (n8n-nodes-wa-akg)


πŸš€ Quick Installation

1. Prerequisites

  • Node.js 20+ (Node.js 22 recommended)
  • MySQL or PostgreSQL
  • Git
  • PM2 (Installed globally: npm install -g pm2)

2. Setup

# Clone and install
git clone https://github.com/mrifqidaffaaditya/WA-AKG.git
cd WA-AKG
npm install

# Configure environment
cp .env.example .env
# Edit .env with your DATABASE_URL, AUTH_SECRET, PORT, etc.

# Push schema and generate Prisma Client
npm run db:push

# Create SuperAdmin account
npm run make-admin admin@example.com password123

3. Run (Development)

npm run dev

We recommend deploying with PM2 to run the app in the background and ensure it restarts automatically if the server rebooted or crashed.

Option A: Automatic Setup Script (Easiest)

We provide a built-in start.sh script that automates everything: checking the configuration, installing dependencies, syncing the database schema, compiling production assets, and starting or reloading PM2:

./start.sh

Option B: Manual Setup

  1. Build the application:

    npm run build
    
  2. Start with PM2: Using the built-in ecosystem.config.js configuration file:

    pm2 start ecosystem.config.js
    
  3. Manage the process:

    • View status: pm2 status
    • View logs: pm2 logs wa-akg
    • Stop process: pm2 stop wa-akg
    • Restart process: pm2 restart wa-akg
  4. Enable auto-start on server boot:

    pm2 startup
    # Copy-paste the command outputted by the command above
    pm2 save
    

πŸ‹ Alternative: Docker Deployment

Although PM2 is highly recommended, you can also deploy using Docker Compose:

  1. Prepare Environment:

    cp .env.example .env
    

    Edit .env β€” set DATABASE_URL (points to the MySQL container), AUTH_SECRET, and other branding settings.

  2. Start Services:

    docker compose up -d
    

    This spins up the MySQL database container alongside the Next.js gateway application.


πŸ“š API Reference Overview

WA-AKG provides a comprehensive REST API to integrate WhatsApp Messaging directly into your applications. Full details in API_DOCUMENTATION.md.

[!TIP] Use the built-in Swagger UI for interactive exploration at /docs.

MethodEndpointDescription
POST/api/messages/{sessionId}/{jid}/sendSend text, media, or stickers
POST/api/messages/{sessionId}/broadcastScalable bulk messaging
PATCH/api/sessions/{id}/settingsUpdate session configuration
GET/api/groups/{sessionId}List all available groups
POST/api/webhooks/{sessionId}Register real-time event listeners
POST/api/autoreplies/{sessionId}Create context-aware auto-replies
POST/api/auth/registerRegister new users via the web securely

Example: Send Text Message

curl -X POST http://localhost:3000/api/messages/session_01/62812345678@s.whatsapp.net/send \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "message": { "text": "Hello from WA-AKG!" }
  }'

⚠️ Known Issues / Caveats

[!WARNING] Status Update Feature (POST /api/status/update)

The WhatsApp status/story update feature is currently experiencing known issues and should be avoided in production:

  • Text statuses with custom background colors may not display correctly
  • Media statuses (images/videos) may fail to upload to WhatsApp servers
  • The feature is under active development

We recommend waiting for the next release before using this endpoint in critical workflows.


πŸ›‘οΈ Security

  • API Key Auth: Secured endpoints using X-API-Key header.
  • RBAC: Multi-role support (SUPERADMIN, OWNER, STAFF).
  • Encrypted Passwords: All passwords hashed with bcrypt.
  • JWT Encryption: Session tokens signed with AUTH_SECRET (wajib diisi β€” tidak ada fallback).
  • Input Validation: Zod schemas on critical endpoints.
  • Media Protection: Path traversal prevention, session-scoped media access.

Built with ❀️ by Aditya Licensed under MIT
automation
baileys
chatbot
dashboard
gateway
multi-client
multi-connection
multi-session
next-auth
nextjs
prisma
rest-api
self-hosted
webhook
whatsapp
whatsapp-api
whatsapp-bot
whatsapp-web

Languages

TypeScript

96.8%

JavaScript

1.9%