WAHA - WhatsApp HTTP API (REST API) that you can install on your own server and run in less than 5 minutes!
- Documentation: https://waha.devlike.pro/
- Swagger Example: https://waha.devlike.pro/swagger
- Send messages
- Receive messages
- Message replies
- Send location
- Receive location
- React to messages
- Send media (images/documents/files)
- Send voice messages
- Receive media (images/audio/video/documents)
- Receive messages - webhook retries
- Multi Device
- Get the screenshot
- Session saving (don't have to scan QR on every restart)
- Single WhatsApp account running inside one container
- Multiple WhatsApp account running inside one container
- Swagger panel authentication
- API authentication
- Bug fixes and updates come as soon as they are implemented.
- Create a group
- Get invite for group
- Modify group info (subject, description)
- Add group participants
- Kick group participants
- Promote/demote group participants
- Mute/unmute chats
- Block/unblock contacts
- Get contact info
- Get profile pictures
- Get presence (online\offline\typing) status
Only thing that you must have - installed docker. Please follow the original instruction how to install docker ->.
When you are ready - come back and follows the below steps to send the first text message to WhatsApp via HTTP API!
{{< details "Why Docker?" >}} Docker makes it easy to ship all-in-one solution with the runtime and dependencies. You don't have to worry about language-specific libraries or chrome installation.
Also Docker makes installation and update processes so simple, just one command! {{< /details >}}
Let's go over steps that allow you to send your first text message via WhatsApp HTTP API!
Assuming you have installed Docker, let's download the image.
docker pull devlikeapro/waha
docker login -u devlikeapro -p {KEY}
docker pull devlikeapro/waha-plus
docker logout
Read more about how to get PASSWORD
for [Plus Version →]({{< relref "plus-version" >}})
Run WhatsApp HTTP API:
docker run -it --rm -p 3000:3000/tcp --name waha devlikeapro/waha
# It prints logs and the last line must be
# WhatsApp HTTP API is running on: http://[::1]:3000
Open the link in your browser http://localhost:3000/ and you'll see API documentation (Swagger).
To start a new session you should have your mobile phone with installed WhatsApp application close to you.
Please go and read how what we'll need to a bit later: How to log in - the instruction on WhatsApp site
When your ready - find POST /api/session/start
, click on Try it out, then Execute a bit below.
The example payload:
{
"name": "default"
}
By using the request with name
values you can start multiple session (WhatsApp accounts) inside the single docker container in Plus
Find GET /api/screenshot
and execute it, it shows you QR code.
Scan the QR with your cell phone's WhatsApp app.
Execute GET /api/screenshot
after a few seconds after scanning the QR - it'll show you the screenshot of you Whatsapp
instance. If you can get the actual screenshot - then you're ready to start sending messages!
Let's send a text message - find POST /api/sendText
in swagger and change chatId
this
way: use a phone international phone number without +
symbol and add @c.us
at the end.
For phone number 12132132131
the chatId
is 12132132131@c.us
.
The example payload:
{
"chatId": "12132132130@c.us",
"text": "Hi there!",
"session": "default"
}
Also, you can use curl
and send POST request like this:
# Phone without +
export PHONE=12132132130
curl -d "{\"chatId\": \"${PHONE}@c.us\", \"text\": \"Hello from WhatsApp HTTP API\" }" -H "Content-Type: application/json" -X POST http://localhost:3000/api/sendText