🚨 NOTICE:
@adiwajshing/baileyswhich is this project relied on, has been discontinued. Thus, this project will be archived and stopped receiving updates anymore. Thanks everyone who's been part of this❤️
An implementation of @adiwajshing/Baileys as a simple REST API with multiple device support
- NodeJS version 14.5.0 or higher
- Prisma supported databases. Tested on MySQL and PostgreSQL
- Download or clone this repo. If you want to skip the build step, you can download the prebuilt one (file with the
baileys-api-VERSION.tgzname pattern) from the release page - Enter to the project directory
- Install the dependencies
npm install- Build the project using the
buildscript
npm run buildYou can skip this part if you're using the prebuilt one from the release page
- Copy the
.env.examplefile and rename it into.env, then update your connection url in theDATABASE_URLfield - Update your provider in the
prisma/schema.prismafile if you're using database other than MySQL - Run your migration
npx prisma migrate (dev|deploy)or push the schema
npx prisma db pushDon't forget to always re-run those whenever there's a change on the prisma/schema.prisma file
# Listening Host
HOST="localhost"
# Listening Port
PORT="3000"
# Database Connection URL
DATABASE_URL="mysql://root:12345@localhost:3306/baileys_api"
# Reconnect Interval (in Milliseconds)
RECONNECT_INTERVAL="5000"
# Maximum Reconnect Attempts
MAX_RECONNECT_RETRIES="5"
# Maximum SSE QR Generation Attempts
SSE_MAX_QR_GENERATION="10"
# Pino Logger Level
LOG_LEVEL="warn"- Make sure you have completed the Installation and Setup step
- You can then start the app using the
startscript
npm run start- Now the endpoint should be available according to your environment variables configuration. Default is at
http://localhost:3000
The API documentation is available online here. You can also import the Postman Collection File (postman_collection.json) into your Postman App alternatively
- There's no authentication, you may want to implement your own. I don't want to force anyone into using a specific authentication method, choose whatever you love
This project is intended for learning purpose only, don't use it for spamming or any activities that's prohibited by WhatsApp