Easy Setup Headless multi session Whatsapp Gateway with NodeJS
- Support Multi device
- Support Multi Session / Multi Phone Number
- Send Text Message
- Send Image
- Send Document
Read also wa-multi-session
Please Read How to install NodeJS
git clone https://github.com/mimamch/wa_gateway.git
cd wa_gateway
npm install
npm run start
http://localhost:5001/session/start?session=mysession
http://localhost:5001/message/send-text?session=mysession&to=628123456789&text=Hello
GET /session/start?session=NEW_SESSION_NAME
or
POST /session/start
Parameter | Type | Description |
---|---|---|
session |
string |
Required. Create Your Session Name |
POST /message/send-text
Body | Type | Description |
---|---|---|
session |
string |
Required. Session Name You Have Created |
to |
string |
Required. Receiver Phone Number with Country Code (e.g: 62812345678) |
text |
string |
Required. Text Message |
is_group |
boolean |
Optional. True if "to" field is group ids |
POST /message/send-image
Body | Type | Description |
---|---|---|
session |
string |
Required. Session Name You Have Created |
to |
string |
Required. Receiver Phone Number with Country Code (e.g: 62812345678) |
text |
string |
Required. Caption Massage |
image_url |
string |
Required. URL Image |
is_group |
boolean |
Optional. True if "to" field is group ids |
POST /message/send-document
Body | Type | Description |
---|---|---|
session |
string |
Required. Session Name You Have Created |
to |
string |
Required. Receiver Phone Number with Country Code (e.g: 62812345678) |
text |
string |
Required. Caption Massage |
document_url |
string |
Required. Document URL |
document_name |
string |
Required. Document Name |
is_group |
boolean |
Optional. True if "to" field is group ids |
GET /session/logout?session=SESSION_NAME
Parameter | Type | Description |
---|---|---|
session |
string |
Required. Create Your Session Name |
GET /session
// send text
axios.post("http://localhost:5001/message/send-text", {
session: "mysession",
to: "62812345678",
text: "hello world",
});
// send image
axios.post("http://localhost:5001/message/send-image", {
session: "mysession",
to: "62812345678",
text: "hello world",
image_url: "https://placehold.co/600x400",
});
Set your webhook URL in the environment variable WEBHOOK_BASE_URL
or in the .env
file.
The request method will be POST
and the body will be in JSON format.
WEBHOOK_BASE_URL="http://yourdomain.com/webhook"
Request path:
POST http://yourdomain.com/webhook/session
Example body:
{
"session": "mysession",
"status": "connected" // "disconnected" | "connecting"
}
Request path:
POST http://yourdomain.com/webhook/message
Example body:
{
"session": "mysession",
"from": "xxx@s.whatsapp.net",
"message": "Hello World",
"media": {
"image": "3A5089C2F2652D46EBC5.jpg",
"video": null,
"document": null,
"audio": null
}
}
You can get the media file by using the media
object in the webhook message. The media file will be saved in the ./media
directory with the name specified in the media
object.
You can access media files using the following URL format:
http://localhost:5001/media/3A5089C2F2652D46EBC5.jpg
npm install wa-multi-session@latest
For detailed documentation, including guides and API references, please visit the official documentation.
Contributions are welcome! Please follow the guidelines outlined in the CONTRIBUTING.md file.
This library is licensed under the MIT License.