Create or update a label
PUT/api/sessions/:sessionId/labels/:labelId
Baileys only. PUT rather than POST because the label id is chosen by the caller: WhatsApp carries one label_edit write keyed on that id, so whether this creates or updates depends purely on whether the id already exists, and there is no server-assigned id to return.
Choose an unused id to create. Reusing one silently rewrites that label rather than failing, because the protocol has no create-only form. Fields left out are left alone.
whatsapp-web.js can read and assign labels but cannot edit one, and answers 501.
Request
Responses
- 200
- 400
- 409
- 501
- 503
Label created or updated
Session not started, or validation failed
The session is not connected — an engine exists for it but is not ready: disconnected, reconnecting, or still initializing, so the request never reached WhatsApp. Wait for ready and retry. A session that was never started answers 400 instead, and the session lifecycle routes answer 409 for a conflicting state rather than this. One window answers this while the session still reads ready: WhatsApp Web periodically reloads its own page and the engine re-injects into it — for those few seconds the answer is a 409 naming the reload; retry shortly.
The active engine cannot edit labels (whatsapp-web.js)
WhatsApp did not answer within the request budget. The change may or may not have been applied — the gateway stopped waiting for a confirmation that never came.