Wppconnect Server is a ready-to-use API, just download, install, and start using, simple as that.
- Javascript ES6
- NodeJS
- Restfull
Access our documentation on postman
Access our documentation on Swagger
Or Swagger UI in your server. Acess router: "IP:PORT/api-docs"
Multiple Sessions | ✔ |
Send text, image, video and docs | ✔ |
Get contacts list | ✔ |
Receive messages | ✔ |
Open/Close Session | ✔ |
Change Profile/Username | ✔ |
Create Group | ✔ |
Join Group by Invite Code | ✔ |
Webhook | ✔ |
- WPPConnect
- Axios
- Bcrypt
- Cors
- Dotenv
- Express
- Nodemon
- SocketIO
Install the dependencies and start the server.
yarn install
//or
npm install
sudo apt-get install -y libxshmfence-dev libgbm-dev wget unzip fontconfig locales gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt-get update
sudo apt-get install libappindicator1
sudo dpkg -i google-chrome-stable_current_amd64.deb
yarn dev
yarn build
This server use config.ts file to define some options, default values are:
{
/* secret key to genereta access token */
secretKey: 'THISISMYSECURETOKEN',
host: 'http://localhost',
port: '21465',
// Device name for show on whatsapp device
deviceName: 'WppConnect',
poweredBy: 'WPPConnect-Server',
// starts all sessions when starting the server.
startAllSession: true,
tokenStoreType: 'file',
// sets the maximum global listeners. 0 = infinity.
maxListeners: 15,
// create userDataDir for each puppeteer instance for working with Multi Device
customUserDataDir: './userDataDir/',
webhook: {
// set default webhook
url: null,
// automatically downloads files to upload to the webhook
autoDownload: true,
// enable upload to s3
uploadS3: false,
// set default bucket name on aws s3
awsBucketName: '',
//marks messages as read when the webhook returns ok
readMessage: true,
//sends all unread messages to the webhook when the server starts
allUnreadOnStart: false,
// send all events of message status (read, sended, etc)
listenAcks: true,
// send all events of contacts online or offline for webook and socket
onPresenceChanged: true,
// send all events of groups participants changed for webook and socket
onParticipantsChanged: true,
// send all events of reacted messages for webook and socket
onReactionMessage: true,
// send all events of poll messages for webook and socket
onPollResponse: true,
// send all events of revoked messages for webook and socket
onRevokedMessage: true,
// send all events of labels for webook and socket
onLabelUpdated: true,
},
// send data to chatwoot
chatwoot: {
sendQrCode: true,
sendStatus: true,
},
//functionality that archives conversations, runs when the server starts
archive: {
enable: false,
//maximum interval between filings.
waitTime: 10,
daysToArchive: 45,
},
log: {
level: 'silly', // Before open a issue, change level to silly and retry a action
logger: ['console', 'file'],
},
// create options for using on wppconnect-lib
createOptions: {
browserArgs: [
'--disable-web-security',
'--no-sandbox',
'--disable-web-security',
'--aggressive-cache-discard',
'--disable-cache',
'--disable-application-cache',
'--disable-offline-load-stale-cache',
'--disk-cache-size=0',
'--disable-background-networking',
'--disable-default-apps',
'--disable-extensions',
'--disable-sync',
'--disable-translate',
'--hide-scrollbars',
'--metrics-recording-only',
'--mute-audio',
'--no-first-run',
'--safebrowsing-disable-auto-update',
'--ignore-certificate-errors',
'--ignore-ssl-errors',
'--ignore-certificate-errors-spki-list',
],
},
mapper: {
enable: false,
prefix: 'tagone-',
},
// Configurations for connect with database
db: {
mongodbDatabase: 'tokens',
mongodbCollection: '',
mongodbUser: '',
mongodbPassword: '',
mongodbHost: '',
mongoIsRemote: true,
mongoURLRemote: '',
mongodbPort: 27017,
redisHost: 'localhost',
redisPort: 6379,
redisPassword: '',
redisDb: 0,
redisPrefix: 'docker',
},
}
Your secretKey
is inside the config.ts
file. You must change the default value to one that only you know.
To generate an access token, you must use your SECRET_KEY
.
Using the route:
curl -X POST --location "http://localhost:21465/api/mySession/eUsouSeCreTo/generate-token"
{
"status": "Success",
"session": "mySession",
"token": "$2b$10$duQ5YYV6fojn5qFiFv.aEuY32_SnHgcmxdfxohnjG4EHJ5_Z6QWhe",
"full": "wppconnect:$2b$10$duQ5YYV6fojn5qFiFv.aEuY32_SnHgcmxdfxohnjG4EHJ5_Z6QWhe"
}
Save the value of the "full" response. Then use this value to call the routes.
#Starting Session
# /api/:session/start-session
curl -X POST --location "http://localhost:21465/api/mySession/start-session" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer \$2b\$10\$JcHd97xHN6ErBuiLd7Yu4.r6McvOvEZZDQTQwev2MRK_zQObUZZ9C"
#Get QrCode
# /api/:session/start-session
# when the session is starting if the method is called again it will return the base64 qrCode
curl -X POST --location "http://localhost:21465/api/mySession/start-session" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer \$2b\$10\$JcHd97xHN6ErBuiLd7Yu4.r6McvOvEZZDQTQwev2MRK_zQObUZZ9C"
#Send Message
# /api/:session/send-message
curl -X POST --location "http://localhost:21465/api/mySession/send-message" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Accept: application/json" \
-H "Authorization: Bearer \$2b\$10\$8aQFQxnWREtBEMZK_iHMe.u7NeoNkjL7s6NYai_83Pb31Ycss6Igm" \
-d "{
\"phone\": \"5511982743910\",
\"message\": \"*Abner* Rodrigues\"
}"
See the routes file
for all the routes. here and HTTP file.
Swagger ui can be found at /api-docs