🔄 Changelog
You can find here the list of changes made to WAHA.
If you wish to get and read Release Notes - read them on one of our platforms, these posts are FREE.
Subscribe for FREE to get new updates there!
2024.5
🎉 New
Swagger White Label - show your own brand in the Swagger documentation!
- Read more about Swagger White Label
- Issue: #305
- Build:
2024.5.4
- Engine: ALL
🐛 Fixes
Fix send video issue POST /api/sendVideo
in WEBJS.
Use local cache for WEBJS engine (versions file).
- Issue: #316
- Build:
2024.5.4
- Engine: WEBJS
Don’t allow to start two sessions with the same name.
Before API allowed to start two sessions with the same name, which could lead to potential problems (no way to stop the first, abandoned session).
- Issue: #315
- Read more about start a session
- Build:
2024.5.3
- Engine: ALL
2024.4
🎉 New
Add WAHA Dashboard - UI to manage your WhatsApp sessions!
- Read more about Dashboard
- Open screenshot
Add GET /api/sessions/{session}
endpoint to get information about a specific session.
- Read more about Get session information
- Issue: #300
Implement GET /api/contacts/profile-picture
for NOWEB engine.
- Read more about Get contact profile picture
- Issue: #298
2024.3
🎉 New
Add message.reaction
webhook in WEBJS and NOWEB engines
- Read more about message.reaction event
- Issue: #275
👉 NOWEB engine note - reactions were sent in 'message'
and 'message.any'
events, not it’s available only in 'message.reaction'
!
Add star and unstar message endpoint PUT /api/star
- Read Star and unstar message documentation
- Issue: #273
Add PUT /api/{session}/chats/{chatId}/messages/{messageId}
endpoint to edit the message.
- Read more about Edit message
- Issue: #241
Add DELETE /api/{session}/chats/{chatId}/messages/{messageId}
endpoint to delete the message.
- Read more about Delete message
- Issue: #209
Add POST /api/sendContactVcard
support for NOWEB engine.
- Read more about Send Contact vCard
- Issue: #276
Handles caption
and filename
right in POST /api/sendFile
Add security settings for who can send messages PUT /api/{session}/groups/{groupId}/settings/security/messages-admin-only
- Read Security - who can send messages
- Issue: #274
Add config.debug
field to POST /api/session/start
to enable debug and verbose logs for the session.
👉 Breaking changes
- NOWEB - reactions were sent in
'message'
and'message.any'
events, not it’s available only in'message.reaction'
! - Add required body in
PUT /api/{session}/groups/{groupId}/settings/security/info-admin-only
endpoint.
{
"adminsOnly": false
}
POST /api/sendContactVcard
doesn’t work in VENOM anymore (use NOWEB engine).
2024.2
- Add support for MongoDB as storage for Session data
- Support persistent file storage for media files - now you can save media files between container restarts
- If you set
WHATSAPP_FILES_LIFETIME=0
environment variable - media files will be never deleted. - Add
GET /api/health
endpoint to check the health of the service
2024.1
- Implement Patron Portal where you can get your personal API key and manage your perks.
- Read more on Patreon ->
- Read more on Boosty ->
2024.2
- Listen for browser disconnected and page close events in WEBJS engine #262
2023.12
December 2023
- Add
chatId
field toGET /api/contacts/check-exists
to help get the rightchatId
for Brazilian numbers. Read more about error sending text to half of Brazilian numbers (every number registered before 2012) ->
2023.11
November 2023
- Add different formats for QR code:
- binary image -
GET /api/{session}/auth/qr
- base64 image -
GET /api/{session}/auth/qr
and setAccept: application/json
header - raw -
GET /api/{session}/auth/qr?format=raw
- binary image -
- Add different formats for the screenshot:
- binary image -
GET /api/{session}/screenshot
- base64 image -
GET /api/{session}/screenshot
and setAccept: application/json
header
- binary image -
- Add
WHATSAPP_SWAGGER_ENABLED=false
so you can hide Swagger documentation (available only in Plus version). #185 - Add dedicated
media
field in webhook payload - now you can know which media is attached to the message.
{
"event": "message",
"session": "default",
"payload": {
"hasMedia": true,
"media": {
"url": "http://localhost:3000/api/files/true_11111111111@c.us_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.pdf",
"mimetype": "application/pdf",
"filename": "file.pdf"
}
}
}
- Add
WHATSAPP_DOWNLOAD_MEDIA
environment variable to control media download. Available only in Plus version.WHATSAPP_DOWNLOAD_MEDIA=True
- download mediaWHATSAPP_DOWNLOAD_MEDIA=False
- do not download media at all.
- Add
filename
field for document (file attachments) - the original filename of the document. - Add
/api/sendVideo
endpoint to NOWEB and WEBJS engines. Available only in Plus version. - Add security settings for edit group info
GET /api/{session}/groups/{groupId}/settings/security/info-admin-only
- updates the group settings to only allow admins to edit group info (title, description, photo).
2023.10
October 2023
- Add
session.status
event for all engines! Now you can get the latest session’s status immediately after it changes. - Add
message.revoked
event in WEBJS engine - Add
me
field in webhook payload - now you can know which number is associated with the session - Add
enviroment
field in webhook payload - now you can know which environment is used for the session
2023.9
September 2023
- Add
GET /api/sessions/{session/me
endpoint so you can get the phone number associated with the session - Add polls support in NOWEB engine
- Add dedicated Get QR endpoint!
- Support pairing method (NOWEB) - you can connect with a code instead of QR.
- Add string field
ackName: DEVICE|READ|...
in message.ack payload - Support
message.ack
event webhook in NOWEB engine
2023.8
August 2023
- Added stories (aka status) endpoints to NOWEB engine!
POST /api/{session}/status/text|image|voice|video
- choose one that suites your!
- Added chats endpoints
- Get all chats -
GET /api/{session/chats
- Delete chat -
DELETE /api/{session/chats/{chatId}
- Get messages from chat -
GET /api/{session/chats/{chatId}/messages?limit=1000?downloadMedia=true
- Clear messages in the chat
DELETE /api/{session/chats/{chatId}/messages
- Get all chats -
- Added
downloadMedia
flag to speed upGET /api/messages
andGET /api/{session/chats/{chatId}/messages
performance. - Added set presence endpoint!
- Added security settings for edit group info
PUT /api/{session}/groups/{groupId}/settings/security/info-admin-only
- updates the group settings to only allow admins to edit group info (title, description, photo).
2023.7
July 2023
- Now session can have their own Webhooks -
you can define webhook configuration when you start a session with
POST /api/session/start
!- Add HMAC authentication for webhooks
- Configure retries
- Add you custom headers
- Added proxy configuration with supporting proxy authentication.
Thanks puntolino for the contribution!
You can control proxy’s settings per session with
POST /api/session/start
or globally with environment variables. - Added presence information - now you can get online status for a contact by calling endpoints or receiving a webhook event!
- Now you can mention contact in groups by settings
mentions
field inPOST /api/sendText
read more about it in Send Messages ->
2023.6
June 2023
Improvements on session management, restarting sessions and more:
- Added
WHATSAPP_RESTART_ALL_SESSIONS=True
: Set this variable toTrue
to start all STOPPED sessions after container restarts. By default, this variable is set toFalse
.- Please note that this will start all STOPPED sessions, not just the sessions that were working before the
restart. You can maintain the session list by
using
POST /api/session/stop
with thelogout: True
parameter or by callingPOST /api/session/logout
to remove STOPPED sessions. You can see all sessions, including STOPPED sessions, in theGET /api/sessions/all=True
response.
- Please note that this will start all STOPPED sessions, not just the sessions that were working before the
restart. You can maintain the session list by
using
WHATSAPP_START_SESSION
now support more than one session! Separate session names by command, and it’ll start them ALWAYS after container restartWHATSAPP_START_SESSION=session1,session2
WHATSAPP_SWAGGER_CONFIG_ADVANCED=true
enables advanced configuration options for Swagger documentation - you can customize host, port and base URL for the requests. Disabled by default.- Added
?all=true
parameter toGET /api/session?all=True
endpoint - it’ll show you ALL session, included **STOPPED **, so you can know which one will be restarted if you setWHATSAPP_RESTART_ALL_SESSIONS=True
environment variable. - Added
POST /api/sessions/logout
that allow you to logout from session - remove saved credentials. - Added
logout
boolean parameter toPOST /api/sessions/stop
request that allow you to stop the session AND logout at the same time. - Added How to deploy page -> with docker-compose.yaml example
- Added
engine
field in webhook payload
{
"event": "message",
"session": "default",
"engine": "WEBJS",
"payload": {}
}
2023.5
May 2023
- Added new NOWEB engine. NOWEB engine does not require a browser to work
with
WhatsApp Web, it does so directly using a WebSocket.
- Less CPU and RAM usage!
- Send Locations API works!
- Send Link Preview API works!
- ⚠ Read the article before using it How to avoid blocking ->.
2023.4
March 2023
- Add Groups API
- Use Chromium by default instead of Chrome
2023.1
January 2023
- Added Contacts API
- Get all contacts
- Get a contact
- Get contact “about” (status)
- Get contact profile picture
- Check number exists (is registered in WhatsApp) - works even if the number is not in the contact list
- Block and unblock contact
2022.12
December 2023
- Added
GET /messages/
endpoint to get chat messages #31 - Added
WHATSAPP_SWAGGER_USERNAME
andWHATSAPP_SWAGGER_PASSWORD
to hide and protect swagger panel.
2022.11
Please test changes in test environment before update production!!
Engine
- WAHA has changed its underlying engine from Venom to Whatsapp Web.JS. It might change the response and webhook’s payloads.
- Optimize CPU and memory consumption.
Requests
- For all
/api/session/
requests usename
field instead ofsessionName
. - For all “chatting” requests use
session
field instead ofsessionName
.
Sessions
Now you don’t have to scan QR code each time you run WAHA, WAHA saves it for you! Available only in Plus version.
Authentication
Now you can authenticate all requests for WAHA - use WHATSAPP_API_KEY=secret
environment variable to set “secret key”.
If WHATSAPP_API_KEY
is set - requests must have X-Api-Key
header with secret
value, where secret
- any random
secret key.
Webhooks
Instead of setting each webhook via environment variables - we use two environments variables:
WHATSAPP_HOOK_URL
- to set a URLWHATSAPP_HOOK_EVENTS
- to set events that are sent to the URL
Previous | Current |
---|---|
WHATSAPP_HOOK_ONMESSAGE=https://httpbin.org/post | WHATSAPP_HOOK_URL=https://httpbin.org/post |
** Webhook payload**
The data for webhooks are wrapped inside a new WAWebhook
object with event
and payload
fields to help you identify
which handler you should call based on event
.
{
"event": "message.any",
"payload": {
}
}