🆕 Changelog
Get Notified
If you wish to get Monthly Summary about WAHA changes, subscribe to our channels.
You can subscribe on free tier!
If you wish to get Real-Time Email about new changes, you can Watch Releases in 🐙 WAHA GitHub
💡 GitHub - How To Subscribe
Go to https://github.com/devlikeapro/waha, click Watch - Custom:
Select Releases, click Apply:
You will get notifications about new releases in associated email!
Releases
Check the 🔧 Install & Update page to learn how to update WAHA.
2025.10
📢 BREAKING CHANGE 📢
2025.10.3
- Requires
WAHA_API_KEY,WAHA_DASHBOARD_PASSWORD,WHATSAPP_SWAGGER_PASSWORDand generate one if no provided. - Treats “00..00”, “123”, “admin”, “waha” as not secure
- Check 🔒 How To Disable Security? if you 100% knows you don’t need one of this.
- #1501
🛠️ Fixes
2025.10.4- fix ffmpeg voice converter tomp3- #1393 , #14532025.10.4- NOWEB, GOWS - better handlemessage.editedevents - #13942025.10.4- NOWEB - fix sending media to channels - #15232025.10.4- WEBJS - handleconvert: truevoice conversions - #1453 , #15242025.10.3- NOWEB - fix/api/sendImagewhen using proxy - #14492025.10.3- GOWS - fixsql: database is locked- #15032025.10.2- NOWEB - connection issues - #1499 , #14952025.10.1- GOWS - fix no webhooks - #14562025.10.1- WEBJS - fix /about - #14692025.10.1- NOWEB - fix empty body - #14592025.10.1- NOWEB - fix ssl on media - #1474
🧩 ChatWoot
2025.10.4- Fix inverted logic of messages read in ChatWoot (closes devlikeapro/waha-plus#20)2025.10.4- Preserve underscores inside URLs so markdown stays intact - #15222025.10.3- Render List Message2025.10.3- Handle{device}@lidin groups - #14932025.10.2- Supress chat read errors for now - temp fix - #14922025.10.2- No retries/success messages - temp fix - #13952025.10.2- IgnorefromMeinmessage.ackhandler - #14922025.10.1- Mark messages as Read in ChatWoot - #1319 , #14362025.10.1- Event, Poll, PIX messages - #14602025.10.1- Add Facebook Ads message - #14612025.10.1- WEBJS - fix + in phone - #1475
⚙️ Updates
2025.10.4- NOWEB - up engine - #15382025.10.4- Dashboard - refreshed headers and agent name display2025.10.1- NOWEB - up engine
2025.9
🆕 NEW
2025.9.5- WEBJS -POST /api/sendContactVcard- #13412025.9.4- addstatusestosession.status🔄 Events - 3 recent statuses with timestamp2025.9.3- 🖥️ Sessions - Ignore 📡 Broadcast support,WAHA_SESSION_CONFIG_IGNORE_BROADCASTenv variable - #13462025.9.2- Dashboard - Show WAHA_API_KEY warning
🧩 Apps
2025.9.8- ChatWoot - Send CSAT #12282025.9.7- ChatWoot - fix Brazil phone if 9 at the start - #12612025.9.6- ChatWoot - Conversation Control2025.9.6- ChatWoot - fix Duplicating Audio Message When Automatically transcribe audio enabled - #13712025.9.6- ChatWoot - addChatWootAppConfigto OpenAPI - #14162025.9.6- ChatWoot - add additional 9 in Brazil phone numbers - #12612025.9.6- ChatWoot - check contact attributes before updating - #11732025.9.6- ChatWoot - Use group name for contact - #12452025.9.5- ChatWoot - group participant at the top by default or Language Template - Group Participant At The Bottom - #13692025.9.4- ChatWoot - skipSTARTING => WORKINGmessages if the session recovers fast (10 seconds) - #13422025.9.3- ChatWoot - Language Template - Agent Name - #11612025.9.3- ChatWoot - Language Template - Integration Contact Name - #11602025.9.3- ChatWoot - disable “server” commands - #11822025.9.3- ChatWoot - temporally disable app - #12602025.9.3- ChatWoot - link preview config: no, low, high quality2025.9.3- ChatWoot - Share Contact message - #11752025.9.3- ChatWoot - Location message - #12052025.9.3- ChatWoot - Unsupported messages - #12672025.9.3- ChatWoot - Receive Broadcast List message - #1321
🛠️ Fixes
2025.9.8- NOWEB - fix freeze when apps enabled - #13972025.9.8- GOWS - fix panic - #1421 , #14302025.9.8- NOWEB - fix send poll to channels - #1270 , #14152025.9.8- NOWEB - fix failed poll votes - #13962025.9.6- ChatWoot - fix/jobsauth - #13982025.9.6- ChatWoot - fix 500 API ErrorGET /public/conversations - timeout- #13892025.9.5- GOWS - Fix “typing” after message sent - #13642025.9.5- NOWEB - Fix login via phone - #13852025.9.5- NOWEB - FixfromMein group messages - #13502025.9.4- ChatWoot - Fix blank card PDF message - #13302025.9.4- ChatWoot - Fix blank card on receiving Audio message - #13402025.9.3- WEBJS - add--disable-blink-features=AutomationControlled- #13482025.9.3- WEBJS - addWAHA_WEBJS_PUPPETER_ARGSto add custom puppeter args (for testing primarily)WAHA_WEBJS_PUPPETER_ARGS=--single-process- #1348
2025.9.3- ChatWoot - Fix blank card PDF message - #13302025.9.3- ChatWoot - Fix blank card on receiving Audio message - #13402025.9.2- NOWEB - Fixmessage.anywithfromMe: 12025.9.1- WEBJS - fix STARTING session issue
⚙️ Updates
2025.9.8- GOWS - update tov1027949008- #1293 , #1412 , #14062025.9.8- WEBJS - up engine - #1276 , #14072025.9.8- NOWEB - up engine to2025-10-03- #14422025.9.5- WEBJS - up engine to2025-09-102025.9.5- NOWEB - update engine to7.0.0with ESM support2025.9.5- NOWEB - proto tov10273936602025.9.5- GOWS - update tov10270430882025.9.3- WEBJS - up chrome (140.0.7339.80-1) and puppeter (24.19.0)2025.9.3- NOWEB - update proto tov1025985905
2025.8
🆕 NEW
2025.8.3- 🖥️ Sessions - Ignore chats - 🟢 Status, 👥 Groups, 📢 Channels2025.8.3- Dashboard - Add copy session name button - #10042025.8.3- WEBJS - addconfig.webjs.tagsEventsOn2025.8.3- GOWS - add 💬 Chats - Unread Chat2025.8.2- Add Send List Message API- NOWEB, GOWS
- Available in ➕ WAHA Plus
- #393 , #482 , #715 , #938
2025.8.2- GOWS - 📶 Send Poll Vote API - #1077- Works with DM, 👥 Groups, and 📢 Channels
2025.8.2- GOWS - add/api/sendLocation- #12502025.8.2- Dashboard - add Simplified Chinese - #1193
🧩 Apps
2025.8.3- ChatWoot - 🖥️ Sessions - Ignore chats 🟢 Status, 👥 Groups, 📢 Channels2025.8.2- ChatWoot - add Simplified Chinese - #11932025.8.2- ChatWoot - fix link preview for big files - #1162
🛠️ Fixes
2025.8.3- WEBJS - fix STARTING session issue2025.8.3- GOWS - Create Channel with no picture - #12932025.8.3- WEBJS - fix stability issues2025.8.3- Dashboard - Fix execute request problem - #10042025.8.2- GOWS - fix sending 📶 Polls to 📢 Channels - #11142025.8.2- GOWS - fix sending to 🟢 Status (filter out right contacts)2025.8.2- GOWS - fix pollpoll.fromMedetection - #10282025.8.2- GOWS - fix set group description - #10142025.8.2- GOWS - debug “Error getting message” if not found - #11742025.8.2- addme.lid- GOWS, NOWEB2025.8.1- WEBJS - fix create group - #11452025.8.1- NOWEB - fix channel list - #11772025.8.1- limited characters in the session name - #1163
⚙️ Updates
2025.8.3- GOWS - up engine and proto tov1025985905
2025.7
🆕 NEW
2025.7.11- Add languages (i18n) on 📊 Dashboard2025.7.8- Add 👤 Update Contact API - #1124- WEBJS, GOWS, NOWEB
2025.7.5- Add 🧩 ChatWoot App - #4412025.7.2- WEBJS - AddGET /api/server/debug/browser/traceAPI to 🔍 Observability - #10922025.7.2- WEBJS ---a-waha-sessionand--a-waha-timestampto chrome/chromium args - #1092
🧩 Apps:
2025.7.11- ChatWoot - fix @lid issue - find first by chat id2025.7.11- ChatWoot - add Udru language2025.7.8- ChatWoot - sendpngas image, not as attachment2025.7.5- Add 🧩 ChatWoot App - #441
🛠️ Fixes
2025.7.11- WEBJS - Fix “You provided ’null’ where a stream was expected” - #11782025.7.10- GOWS - speed up sending a message to groups - #11002025.7.10- NOWEB - do not freeze server in a lot of sessions case (use regularsqlite3)2025.7.9- WEBJS - addWAHA_RUN_XVFB=Falseparameter - #11512025.7.9- adjustUV_THREADPOOL_SIZEvalues (cpu*2or min is4)2025.7.7- WEBJS - add browser cache - #1131 , #11402025.7.6- WEBJS - fix send seen and send read messages - #11172025.7.5- WEBJS - ignore old reactions on connection - #4942025.7.5- WEBJS - increase rendering processes to 22025.7.4- NOWEB - handle 👤 Lids on first message2025.7.4- NOWEB - fix some connection issues2025.7.4- WEBJS - increaseprotocolTimeoutto 300s - #11032025.7.4- WEBJS - fix someSTARTING => FAILEDsessions - #10712025.7.4- GOWS - Fix 🟢 Status to 10K contacts - #10582025.7.3- GOWS - fix generating preview links youtu.be2025.7.3- GOWS - fix fetching media for some messages2025.7.3- GOWS - reconnect on session start if any network error happens2025.7.3- GOWS - fix stuck inSTARTING2025.7.3- WEBJS - disable GPU2025.7.2- WEBJS - limit renderer process to 1 - #10922025.7.2- remove healthcheck andping-check.shscript - #10852025.7.1- moveHEALTHCHECKfrom Dockerfile to docker-compose - #1090
⚙️ Updates
2025.7.9- NOWEB - up proto tov10251263932025.7.4- NOWEB - up engine to2025-07-042025.7.3- GOWS - up engine and proto tov1024307498
2025.6
🆕 NEW
2025.6.5- 🔒 Security now available in WAHA Core - #10692025.6.5- Support hash in Api Key variableWAHA_API_KEY=sha512:{HASH}in 🔒 API Key Security - #10692025.6.3- Addmessage.editedto 🔄 Events - #916 , #1041- WEBJS, GOWS, NOWEB
- ⚠️ NOWEB - removed an edited protocol message from
messageandmessage.any, now listenmessage.editedinstead
2025.6.3- GOWS Addmessage.revokedto 🔄 Events - #9172025.6.3- AddrevokedMessageIdfield tomessage.revokedto 🔄 Events2025.6.2- Addconvert: trueflag (falseby default) to/api/sendVoiceand/api/sendVideo- #7242025.6.2- Add API to convert voice and video files before sending it - #724- POST /api/{session}/media/convert/voice
- POST /api/{session}/media/convert/video
- No more
ffmpegrequired, just useconvert: trueor convert API!
🛠️ Fixes
2025.6.7- fixcurl: command not foundin healthcheck - #1085:noweband:gowsdocker images
2025.6.6- NOWEB - show poll on the sender device - #9882025.6.6- WEBJS - return message response - #10832025.6.6- WEBJS - fix pin message - #1081 , #10822025.6.6- WEBJS - fix zombie processes - #10782025.6.6- Return501 Not Implementedif engine does not support API - #10472025.6.4- NOWEB - fix continuous loop of state synchronization - #10542025.6.3- AddtimeoutforAsyncLockto prevent long queues- NOWEB - has a lot of it
- WEBJS, GOWS - some API for session management
2025.6.3- WEBJS - addXvfbto container #10322025.6.2- WEBJS - fix disconnection issues #10322025.6.1- GOWS - fix memory leak #9192025.6.1- WEBJS - fix 👥 Groups management issues
⚙️ Updates
2025.6.2- WEBJS - update chrome, puppeter2025.6.1- GOWS - up engine to 2025.06.09 version2025.6.1- WEBJS - up engine to 2025.06.09 version
2025.5
🆕 NEW
2025.5.5- WEBJS - ✅ Presence API and Events - #6362025.5.5- GOWS - 📶 Polls support - #8992025.5.5- Filter chats byidsin 💬 Chats - Get Chats Overview API - #7912025.5.4- Add 👤 Contacts - Lids API to map@lidto@c.us- #957- WEBJS, NOWEB, GOWS
2025.5.4- GOWS - 🏷️ Labels support - #9222025.5.4- GOWS - addPOST /api/sendContactVcardsupport - #902
🛠️ Fixes
2025.5.6- Fix fetch media from S3/PostgreSQL - #10072025.5.5- Subscribe ✅ Presence on each request- WEBJS, NOWEB, GOWS
2025.5.5- WEBJS - hide “Fresh Look” modal form #9872025.5.5- WEBJS - addtinito docker to handle zombie processes #9902025.5.5- Local Storage - fix empty session name issues when calling logout or delete2025.5.5- fix pairing Business Accounts connected to official Meta API - #864- NOWEB, GOWS
2025.5.4- PostgreSQL - use5432port by default if not provided #9752025.5.4- NOWEB - fix “async-lock timed out in queue” error on session actions #8312025.5.3- NOWEB - fixpoll.voteevent - #9602025.5.2- GOWS - fix pairing Business Accounts connected to official Meta API - #8642025.5.2- NOWEB - fix pairing via code #9612025.5.2- GOWS and NOWEB - fix “undefined senderKeyDistributionMessage” error2025.5.2- protect PostgreSQL media with an API key2025.5.2- minor security update2025.5.1- NOWEB - fix syncing for accounts with many messages/contacts - #952- 🗄️ Storages: Local, PostgreSQL, MongoDB
2025.5.1- NOWEB - no duplicatemessage.ackfor a single message - #9482025.5.1- WEBJS - fix potential connection leak to storages - #9522025.5.1- WEBJS - fix adding/removing participant to group - #9442025.5.1- WEBJS - fix sorting groups in/chatsand/chats/overview- #915
⚙️ Updates
2025.5.5- update nestjs - fixesDeprecationWarning: The 'util.isObject' API is deprecated
2025.4
2025.4.2
🆕 NEW
- Add 💬 Chats - Read messages API to mark unread messages as read #783
- WEBJS, NOWEB, GOWS
- Add
filter.ackto 💬 Chats - Get messages API- WEBJS, NOWEB, GOWS
- WEBJS - add
message.ackevents for 👥 Groups and 🟢 Status messages - WEBJS - add
message._data.receiptsin 💬 Chats - Get message by id 👥 Groups and 🟢 Status - Read multiple messages by using
messageIdsin POST /api/sendSeen API- NOWEB, GOWS
🛠️ Fixes
- NOWEB - update message status on
/api/sendSeen- #635 - NOWEB - fix “Cannot read properties of undefined (reading ‘protocolMessage’)” - #932
- WEBJS - restart browser on ProtocolError and Promise was collected
- NOWEB - Fix
ackfor new messages (it wasUNKNOWN, now it’sDEVICE) - GOWS - send
DEVICEmessage.ackfor all groups participants - Fix sending messages to anonymous groups (one with
@lidparticipants)- NOWEB
- GOWS
- Fix receiving messages to groups and status (some messages were missed)
- NOWEB
- GOWS
⚙️ Updates
- NOWEB - update engine to the latest version
- GOWS - update engine to the latest version
- WEBJS - update
- puppeter (all images)
- chrome (
devlikeapro/waha-plus:chromeanddevlikeapro/waha:chromeimages)
2025.4.1
- Fix Send Reaction to 📢 Channels - #889
- GOWS, NOWEB
- 📤 Send Link Custom Preview - #880
, #596
- GOWS, NOWEB
- GOWS - fix Send Reaction to other participants messages #894
2025.3
2025.3.3
2025.3.2
- Add 📤 Button Reply API - #848
- WEBJS
- Add features for 🔄 Global Webhooks - #855
- GOWS, NOWEB, WEBJS
- Set HMAC using
WHATSAPP_HOOK_HMAC_KEYenvironment variable - Set retries using
WHATSAPP_HOOK_RETRIES_*environment variables - Set custom headers using
WHATSAPP_HOOK_CUSTOM_HEADERSenvironment variables
- GOWS - Fix Get Contact
The "original" argument must be of type function- #866 - NOWEB - fix out of memory when session stuck in
STARTINGstatuses - NOWEB - mark session as
FAILEDif QR code is not scanned in the interval. - NOWEB - presences optimizations - store presence for 1 hour and fetch new if not accessed
- Handle sending 🟢 Status to 50K contacts - #858
- GOWS, NOWEB
- Add 🟢 Status - Get New Status Message ID - #858
- GOWS, NOWEB
- You can use it in Send Status to 10K contacts flow
- Add searches by Name and Phone Number to 📊Dashboard
- GOWS - extract
replyTo- #876
2025.3.1
- GOWS multiple improvements
linkPreviewHighQuality: truefor 📤 Send messages - Link Preview- GOWS, NOWEB
- Add
event.timestampto 🔄 Events - #755 - NOWEB - Filter 📞 Calls from
messageevent - #840 - Support disappearing messages in 📤 Send messages - #736
- GOWS, NOWEB, WEBJS
- Might require repairing (logout/scan qr) for old chats
- Add
source: api|appin 🔄 Events - message.any - #787 - Add 👥 Groups Count API - #752
- GOWS, NOWEB, WEBJS
2025.2
2025.2.8
2025.2.7
- Add 👥 Group Picture API - #802
- WEBJS, NOWEB, GOWS
- Picture Update available in ➕ WAHA Plus
- GOWS - Add 👥 Group API - #825
- NOWEB - Add 👥 Group Settings API - #695 , #808
- Add
exclude=participantsto 👥 Get All Groups API - #242- WEBJS, NOWEB, GOWS
- NOWEB - fix
TypeError: group.participants is not iterable- #810 - NOWEB - disable auto-restart every 30 mins, restart will happen only on socket error - #756
2025.2.6
- NOWEB + PostgreSQL - fix
\u0000 - unsupported Unicode escape sequence- #820
2025.2.5
- NOWEB - fix
body: nullor emptybodyin some cases - #813 - NOWEB - add
message.revokedevent
2025.2.4
- Add 👥 group.v2 events
- NOWEB - catch and log unhandled errors #809
2025.2.3
- Add 🆔 Profile API to get and update profile information #529
- WEBJS, NOWEB, GOWS engines
- Fix
hasMediabehavior - now when you request messages withdownloadMedia=False,hasMedia: trueif message has media- WEBJS, NOWEB, GOWS engines
2025.2.2
- 📢 Search Public Channels API - #440
- Available in ➕ WAHA Plus
- 📢 Get Messages (Preview) From Public Channels API
- Available in ➕ WAHA Plus
- PostgreSQL - fix
sorry, too many clients alreadyin some cases- WEBJS, NOWEB, GOWS engines
- S3 - fix
headers[headerName].trim is not a functionerror #790
2025.2.1
- GOWS - 👤 Contacts API
- GOWS - 💬 Chats - Get Chats Overview API
- GOWS - 💬 Chats - Get Messages API
- NOWEB - fix group message error #765 , #766
- GOWS - fix group message error #765 , #766
2025.1
2025.1.6
- WEBJS - fix send image/video to 📢 Channels - #733
2025.1.5
- GOWS - add 📢 Channels API
- GOWS - add 🟢 Status (aka Stories) API API
- GOWS - add Check Contact exists API
2025.1.4
- 🖥️ Session Storage - PostgresSQL - add support for storing sessions in PostgreSQL
- Available in all 🏭 Engines!
- 🖼️ Media Storage - PostgresSQL - add support for storing media files in PostgreSQL
- Available in all 🏭 Engines!
- 🗄️ Local Storage available in WAHA Core now - #741
- Both 🖥️ Session and 🖼️ Media storages
- S3, PostgreSQL - add
chat-idmetadata #717 - WEBJS - remove unnecessary flags for chrome/chromium process to increase stability
2025.1.3
- GOWS - add 🏭 GOWS Engine beta version (does not support many features yet)
- Lazy QR code png generation (300+ sessions performance issue)
- Shutdown HTTP server gracefully
2025.1.2
- NOWEB - fix corrupted sessions #731
- Use atomic write for files (NOWEB + media files)
2025.1.1
- NOWEB - do not save empty creds into file when session stops #727
- NOWEB + MongoDB - add descending order for messages
- Some timeout fixes
2024.12
2024.12.6
- Add 💬 Get chats overview API
- Add 📊 Chat UI to Dashboard - as an example for 💬 Get chats overview API
- Add 💬 Get chat picture API
- Add
refreshflag to Get chat picture and Get contact picture API - Cache profile picture for 24 hours
- WEBJS - fix “Could not get the quoted message” error when replying to a message - #576
- NOWEB - Fix
not-authorizedon get profile picture #381
2024.12.5
- NOWEB - attempt #3 to fix missing messages #671
2024.12.4
- Add 👥 Join Group API - #688
2024.12.3
- NOWEB - use NOWEB engine by default in devlikeapro/waha-plus:noweb - #414
- NOWEB - fix
rate-overlimiterror on groups API #462 - Add pagination to 👥 Get Groups API
- Add 👥 Refresh Groups API
2024.12.2
- NOWEB - attempt #2 to fix missing messages #671
2024.12.1
2024.11
2024.11.11
2024.11.10
2024.11.9
- NOWEB - attempt to fix missing messages #671
2024.11.8
- WEBJS - Fix QR code (set
WAHA_WEBJS_CACHE_TYPE=noneby default) - #659
2024.11.7
2024.11.6
- Fix WAHA Core version #645
2024.11.5
- Add 📊 Dashboard - Event Monitor - observe your events in real-time!
- All 🔄 Webhooks features in WAHA Core version now: Retries, HMAC, Custom Headers!
- 🔄 Websockets supports all events now #535
- 💬 Chats - Pin, Unpin message #613
- WEBJS, NOWEB
- NOWEB - fix
me.pushNameafter authentication #409 - Add
engine.eventfor debug and troubleshooting
2024.11.4
- NOWEB - fix many contacts send status issues #390 , #413
- NOWEB -
contactslist for 🟢 Status (aka Stories) API is not required anymore - WEBJS - fix HTTP ERROR 429 #633
2024.11.3
- add
linkPreviewflag inPOST /api/sendTextto disable generating preview for links #596 , #598 - Fix “Sqlite: attempt to write to read only database” error #628
- Fix
POST /api/sendVideo- “TargetCloseError: Protocol error” #629
2024.11.2
- WEBJS - fix cases when it stops receiving events (message, message.ack, etc)
2024.11.1
- Create, Update and Delete 🏷️ Labels - #607
- WEBJS, NOWEB
- WEBJS - Add 🟢 Status (aka Stories) API
- NOWEB + MongoDB - fix double message issue - #623
2024.10
2024.10.13
2024.10.12
- WEBJS - fix
FAILEDsession (remove--single-process)
2024.10.11
- WEBJS + MongoDB - Fix
SingletonLock: File existserror on launch
2024.10.10
- WEBJS - Update puppeter and Chrome version
- WEBJS - Set window size to 1280x720
- WEBJS - Fix
SingletonLock: File existserror on launch
2024.10.9
- Add pagination and filters to 💬 Chats - Get messages from chat
- Add 💬 Chats - Get message by id
- Add 💬 Chats - Pagination
- Add 👤 Contacts - Pagination
- Add 💬 Chats - Unread Chat
POST /api/{session}/chats/{chatId}/unread- WEBJS, NOWEB
- #498
- NOWEB - Fix
/archiveand/unarchivechats - 💬 Chats - Archive Chat - Remove the device from Connected Devices on 🖥️ Session Logout
2024.10.8
- Add
WAHA_LOCAL_STORE_BASE_DIRto allow overriding the base directory for local storage #597
2024.10.7
- WAHA Core - fix webhooks issue #595
2024.10.6
- WEBJS + MongoDB - reduce CPU usage
2024.10.5
- Add Send Buttons API
POST /api/sendButtons- $544 - Add forward message API
POST /api/forwardMessage- #158- 📤 Send messages - Forward Message
- WEBJS, NOWEB
- Fix sessions stuck in
STARTINGon container restart - #586 - Add
WAHA_AUTO_START_DELAY_SECONDS=0environment variable so you can control the delay between sessions - Track session status and do not restart it - #491
- Add workers environment variables:
WAHA_WORKER_ID,WAHA_WORKER_RESTART_SESSIONS - Add request id in webhooks headers and logs #580
- Add
policyfor webhook retries #587
2024.10.4
- NOWEB - send video note via
POST /api/sendVideoviaasNote: true - NOWEB - handle “sent by advertisement” message properly #567
- NOWEB + MongoDB - save auth data when stopping session (and container)
2024.10.3
- WEBJS + MongoDB - handle removing temp folder with retries
- WEBJS - add more logs for state changes to help debugging
2024.10.2
- 📢 WEBJS + MongoDB setup - handle disconnection properly (it stop saving auth data if connection to mongodb lost)
2024.10.1 - Release Notes
- Receive media now available in WAHA Core version!
- Add
PORTenvironment variable for Heroku deployment - #555 - Add
WAHA_BASE_URLenvironment variable to set the base URL for the server formedia.urllinks - WEBJS - Add
message.waitingevent for encrypted but not yet decrypted messages #554 - WEBJS - handle connectivity issues better, restart client if required #552
- Use
axiosas default library for sending webhooks - solve bad webhooks performance issues for many sessions installation. - Handle webhooks retries properly in WAHA Plus version (using
axios)
2024.9
2024.9.6
- NOWEB - set session presence (
online|offline) at the start - #412- Affects notifications on your phone (if it’s
online- you won’t get in-app notifications on your device)
- Affects notifications on your phone (if it’s
- WEBJS, NOWEB - fix auto restart logic bug
- WEBJS - support pairing via code
POST /api/{session}/auth/request-code- Read more 🖥️ Sessions
- Retrieve engine info only on detailed
GET /api/sessions/{name} - Check session’s status before performing the request in most endpoints
- Dashboard - add login via QR and Code auth flows
- Dashboard, API - Add
meforSTOPPEDsessions (account phone number, push name) - Dashboard - Hide duplicated sessions flag for multiple servers setup (match by
session.name+me.id)
2024.9.5
- NOWEB - fix memory leak and performance problems #533
- WEBJS - reduce memory usage for chrome/chromium for ~40MB per session
- Adjust error message for WAHA Core when session
STOPPED#538 - Removed
VENOMengine completely - Add special
/api/server/debug/heapsnapshotto get heap dump for Node.js byWAHA_DEBUG_MODE=True
2024.9.4
- Fix empty config sessions operations (
Session not found)
2024.9.3
- NOWEB - fix restarting issue when websocket is not connected yet (WebSocket was closed before the connection was established)
2024.9.2
- NOWEB - fix error on incoming messages - #521
2024.9.1 - Release Notes
- Add support for S3 to store media file - #353
- Read more 🗄️ Storages
- Add more granular API for 🖥️ Sessions
- Add ability to add your Metadata to a session #443.
metadatafield available in:- List Sessions and Get Session responses
- 🔄 Webhooks events
- 📊 Dashboard for view, and search sessions by metadata
- Add Bulk Operations (start, restart, etc.) for 📊 Dashboard - #438
- Add environment variables on 📊 Dashboard - #319
- Add 🔄 Webhooks - Custom Headers on 📊 Dashboard
- Add
GET /api/server/versionand/api/server/environmentendpoints - Validate API request on
/api/sessions/*endpoints - #470- 📢 Requires attention - make sure you’re sending the right requests
- Add
POST /api/sendSeendocumentation and correct swagger spec #485 - Add
GET /api/server/statusendpoint to get server uptime - 🔍 Observability - Add
POST /api/server/stopendpoint to restart server - 🔍 Observability - Add
WHATSAPP_API_SCHEMA=httpenvironment variable so you can get the rightmedia.urllink - Add
media.errorto messages with media and error - #510 - Add
reply_tofield for text and media (image, files, etc) messages - #503 - Add
replyTofield for receiving message - #506 - Update NOWEB engine to the latest upstream changes
2024.8
2024.8.5
- NOWEB - ⚠️ urgent fix #511
2024.8.4
- WEBJS - fix get
GET /api/{session}/chats?limit=1“Cannot read properties of undefined (reading ‘getChats’)” - #486 - NOWEB - fix sticker download - #504
2024.8.3
- fix restart container with NOWEB engine #483
- fix " this.logger.info is not a function" in swagger plus #496
2024.8.2
- fix flaky WEBJS engine issues (
Failed to add page binding with name ...) - WEBJS + MongoDB - switch to native
zipandunzipbinaries #465- If you’re not using official docker image install
zipandunzipAND setWAHA_ZIPPER=ZIPUNZIPenv variable.
- If you’re not using official docker image install
- Add
WAHA_HTTP_LOG_LEVEL=infovariable to controlrequest completedlog level - #466 - 🔍 Observability
2024.8.1 - Release Notes
- Add 🏷️ Labels support #318
- Add 📞 Calls events #307
- Add chat.archive event #434
- Add Archive and Unarchive chat endpoints #434
- Add “sessions.name” index for MongoDB storage #447
- Add
WHATSAPP_API_KEY_EXCLUDE_PATHto exclude URI from key auth #451 - 🔒 Security - Add
GET /pingendpoint to just touch the service (no checks like inGET /healthis done during that) - 🔍 Observability
2024.7
2024.7.7- WEBJS + MongoDB fix -unexpected end of file#4572024.7.6- WEBJS restart fix #4442024.7.5- 📰 WhatsApp Channels2024.7.4- NOWEB fix profile picture #4222024.7.3- added JSON logging format - 🔍 Observability.2024.7.2- WEBJS create group fix #4162024.7.1- WEBJS urgent update #399
2024.6
📢 Breaking changes
Docker image has been renamed to devlikeapro/waha and devlikeapro/waha-plus!
- Read more about WAHA Docker images
- Build:
2024.6.2
🎉 New
Starting 2026.6.1 we publish images with {version} tag, so you can pin the version you want to use.
devlikeapro/waha-plus:chrome-{version} => devlikeapro/waha-plus:chrome-2024.6.1
- Read more about WAHA Docker images
- Build:
2024.6.1
Added limit and offset parameters to GET /api/{session}/chats endpoint.
- Read more about Get all chats
- Build:
2024.6.4 - Engine: WEBJS
- Engine: NOWEB
Added Out of the box HTTPS Support!
👉 Step-by-step guide on how to set up HTTPS for WAHA
- Read more about 🔒 Security
- Build:
2024.6.5 - Issue: #42
- Issue: #369
Add Websockets support!
- Read more about Websockets
- Build:
2024.6.7
🎉 New - NOWEB
You asked it, we did it - contacts, chats, and messages endpoints are now available in NOWEB engine! Please make sure to Enable NOWEB Store before using these endpoints.
- Build:
2024.6.3 - Engine: NOWEB
- Read more about NOWEB Store
- Issue #169
- Issue #206
- Issue #217
- Issue #322
- Issue #339
Generate thumbnail preview for video and image messages in NOWEB engine.
- Build:
2024.6.3 - Engine: NOWEB
Fix sending poll response in NOWEB engine.
- Build:
2024.6.1 - Engine: NOWEB
- Issue: #356
Delete status endpoint - POST /api/{session}/status/delete
- Build:
2024.6.7 - Engine: NOWEB
- Issue: #386
🎉 New - DASHBOARD
Starting 2024.6.3 Dashboard is available in WAHA Core version!
- Read more about WAHA Dashboard
- Build:
2024.6.3
Starting 2024.6.3 Dashboard allows connecting to multiple WAHA instances!
- Read more about WAHA Dashboard
- Build:
2024.6.3
🐛 Fixes - NOWEB
Sender presence keeps on typing after sending message.
- Issue: #379
- Build:
2024.6.6
2024.5
🎉 New
Added WAHA_PRINT_QR environment variable to control QR code printing (by default True). Set WAHA_PRINT_QR=False to disable QR code printing.
- Read more about it on Configuration
- Issue: #351
- Build:
2024.5.13
Swagger White Label - show your own brand in the Swagger documentation!
- Read more about Swagger White Label
- Issue: #305
- Build:
2024.5.4
🐛 Fixes
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
🐛 Fixes - WEBJS
Handling rare errors in MongoDB process for saving and restoring session data.
- Build:
2024.5.12 - Engine: WEBJS
- Commit: 9c398f2
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
🐛 Fixes - NOWEB
Fix message.ack event for viewing status (status@broadcast) messages.
- Issue: #329
- Build:
2024.5.14
Auto restart NOWEB connection every 30 minutes.
- Issue: #336
- Build:
2024.5.14
Set heap memory limit to 16GB for NOWEB engine.
- Issue: #347
- Build:
2024.5.12
Add body to messages with caption in NOWEB engine.
- Build:
2024.5.10
Fix “document with caption” message media issue
- Issue: #345
- Build:
2024.5.10
Important NOWEB Engine Update! WhatsApp has deprecated the version currently being used in the NOWEB engine
- Read on Patreon
- Read on Boosty
- Build:
2024.5.8 - Engine: NOWEB
2024.4
🎉 New
Add WAHA Dashboard - UI to manage your WhatsApp sessions!
- Read more about Dashboard
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/sessions/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-onlyendpoint.
{
"adminsOnly": false
}POST /api/sendContactVcarddoesn’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=0environment variable - media files will be never deleted. - Add
GET /api/healthendpoint 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
chatIdfield toGET /api/contacts/check-existsto help get the rightchatIdfor 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/qrand setAccept: application/jsonheader - 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}/screenshotand setAccept: application/jsonheader
- binary image -
- Add
WHATSAPP_SWAGGER_ENABLED=falseso you can hide Swagger documentation (available only in Plus version). #185 - Add dedicated
mediafield 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_MEDIAenvironment 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
filenamefield for document (file attachments) - the original filename of the document. - Add
/api/sendVideoendpoint 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.statusevent for all engines! Now you can get the latest session’s status immediately after it changes. - Add
message.revokedevent in WEBJS engine - Add
mefield in webhook payload - now you can know which number is associated with the session - Add
enviromentfield in webhook payload - now you can know which environment is used for the session
2023.9
September 2023
- Add
GET /api/sessions/{session/meendpoint 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.ackevent 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
downloadMediaflag to speed upGET /api/messagesandGET /api/{session/chats/{chatId}/messagesperformance. - 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/sessions/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/sessions/startor 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
mentionsfield inPOST /api/sendTextread 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 toTrueto 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/sessions/stopwith thelogout: Trueparameter or by callingPOST /api/sessions/logoutto remove STOPPED sessions. You can see all sessions, including STOPPED sessions, in theGET /api/sessions/all=Trueresponse.
- 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_SESSIONnow support more than one session! Separate session names by command, and it’ll start them ALWAYS after container restartWHATSAPP_START_SESSION=session1,session2WHATSAPP_SWAGGER_CONFIG_ADVANCED=trueenables advanced configuration options for Swagger documentation - you can customize host, port and base URL for the requests. Disabled by default.- Added
?all=trueparameter toGET /api/session?all=Trueendpoint - it’ll show you ALL session, included STOPPED, so you can know which one will be restarted if you setWHATSAPP_RESTART_ALL_SESSIONS=Trueenvironment variable. - Added
POST /api/sessions/logoutthat allow you to logout from session - remove saved credentials. - Added
logoutboolean parameter toPOST /api/sessions/stoprequest that allow you to stop the session AND logout at the same time. - Added
enginefield 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_USERNAMEandWHATSAPP_SWAGGER_PASSWORDto 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/sessions/requests usenamefield instead ofsessionName. - For all “chatting” requests use
sessionfield 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
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": {
}
}
