🟢 Status

You can send statuses (aka stories) using HTTP API!

alt

Features

Here’s the list of features that are available by 🏭 Engines:

WEBJSNOWEBGOWS
Send Text Status
POST /api/{session}/status/text
✔️✔️✔️
Send Image Status
POST /api/{session}/status/image
✔️✔️✔️
Send Voice Status
POST /api/{session}/status/voice
✔️✔️✔️
Send Video Status
POST /api/{session}/status/video
✔️✔️✔️
Delete Status
POST /api/{session}/status/delete
✔️

If you see the feature is not available in the above list, please create a feature request or leave “+1” comment on the existing one.


Endpoints

💡 Note about contacts field:

WEBJS engine doesn’t accept or require it, you can send it as contacts: null or omit completely

NOWEB engine doesn’t require contacts field, but you can send the list of contacts to send status to.

Send text status

Send status to all your contacts:

POST /api/{session}/status/text
Body
{
  "text": "Have a look! https://waha.devlike.pro/",
  "backgroundColor": "#38b42f",
  "font": 1
}
  • text - text to send as status.
  • font - font type, experiment with values here to get different fonts.
  • backgroundColor - background color of the status.
  • contacts - array of contacts to send status to.

Send status to specific contacts (available in NOWEB):

Body
{
  "text": "Have a look! https://waha.devlike.pro/",
  "backgroundColor": "#38b42f",
  "font": 1,
  "contacts": [
    "55xxxxxxxxxxx@c.us",
    "55xxxxxxxxxxx@c.us"
  ]
}

Send image status

POST /api/{session}/status/image

Send video status

POST /api/{session}/status/video

Convert file before sending

Make sure your file has mp4 using libx264 format.

ffmpeg -i input_video.mp4 -c:v libx264 -map 0 -movflags +faststart output_video.mp4

-map 0 -movflags +faststart options required for thumbnail generation.

WEBJS - use :chrome image

If you’re using WEBJS (default engine) - make sure to use devlikeapro/waha-plus:chrome docker image.

Read more about Docker images and engines →.

Send voice status

POST /api/{session}/status/voice

Convert file before sending

Make sure your file has OPUS encoding and packed in OGG container. You can convert to this using ffmpeg ( there’s many libs for that in popular languages).

ffmpeg -i input.mp3 -c:a libopus -b:a 32k -ar 48000 -ac 1 output.opus

Delete status

Here’s how you can delete status message you previously sent.

POST /api/{session}/status/delete

When you send status - you’ll get the response like below, save key.id (it’s message id).

Response
{
  "key": {
    "remoteJid": "status@broadcast",
    "fromMe": true,
    "id": "AAAAAAAAAAAAAAAAAAAAAA" // <===== key.id
  },
  "message": {
    ...
  }
}
Body
{
  "id": "AAAAAAAAAAAAAAAAAAAAAA"
}

It removes status from all contacts in the list.