Soft-remove an active blacklist entry for a sender.
Delete Entry
Summary
Soft-remove an active blacklist entry for a sender.
Prerequisites
- Authorization: Bearer w91_live_xxx
- Content-Type: application/json for JSON requests
Related documentation
Endpoint: DELETE /api/v2/message-blacklist/{blacklistUid}. Delete is a soft removal. The row is marked INACTIVE, deactivatedAt is set, and future sends are no longer blocked for that recipient unless it is reactivated.
DELETE
/api/v2/message-blacklist/{blacklistUid}| Parameter | Type | Required | Description |
|---|---|---|---|
Authorization | header | Required | Bearer w91_public_token_here. |
blacklistUid | string | Required | Public blacklist entry UID, for example bl_abc. |
senderId | string | Optional | WhatsApp registered sender number. |
Delete entry
curl -X DELETE "https://graph.whats91.com/api/v2/message-blacklist/bl_abc?senderId=916268662275" \
-H "Authorization: Bearer w91_public_token_here"Delete response
{
"success": true,
"message": "Blacklist entry removed",
"data": {
"blacklistEntry": {
"blacklistUid": "bl_abc",
"status": "INACTIVE",
"deactivatedAt": "2026-06-06T09:20:00.000Z"
}
},
"metadata": {
"apiVersion": "v2",
"requestId": "request-uuid"
}
}Error Responses
| HTTP | Error code | Meaning |
|---|---|---|
| 401 | MISSING_AUTH_TOKEN | No public token was supplied. |
| 401 | INVALID_AUTH_TOKEN | Token is invalid, expired, revoked, or not tied to an active customer. |
| 403 | SENDER_NOT_ALLOWED | Number-scoped token requested another sender. |
| 403 | FEATURE_NOT_AVAILABLE | The customer does not have the contacts feature. |
| 400 | WHATSAPP_SETUP_INCOMPLETE | Sender context could not resolve a usable WhatsApp number. |
| 400 | VALIDATION_FAILED | Invalid phone, status, pagination, or empty update payload. |
| 404 | BLACKLIST_ENTRY_NOT_FOUND | The UID does not belong to the authenticated sender. |
| 415 | UNSUPPORTED_CONTENT_TYPE | POST body is not JSON. |
Validation error example
{
"success": false,
"message": "status must be ACTIVE, INACTIVE, or ALL",
"error_code": "VALIDATION_FAILED",
"metadata": {
"apiVersion": "v2",
"requestId": "request-uuid"
}
}SDK Examples
Use these examples as starting points for server-side implementations.
cURL
curl -X DELETE "https://graph.whats91.com/api/v2/message-blacklist/{blacklistUid}" \
-H "Authorization: Bearer w91_live_xxx"Node.js
const response = await fetch("https://graph.whats91.com/api/v2/message-blacklist/{blacklistUid}", {
method: "DELETE",
headers: {
"Authorization": "Bearer w91_live_xxx",
"Content-Type": "application/json"
}
});
const data = await response.json();
console.log(data);PHP
$ch = curl_init("https://graph.whats91.com/api/v2/message-blacklist/{blacklistUid}");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer w91_live_xxx",
"Content-Type: application/json"
]
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Python
import requests
response = requests.request(
"DELETE",
"https://graph.whats91.com/api/v2/message-blacklist/{blacklistUid}",
headers={
"Authorization": "Bearer w91_live_xxx",
"Content-Type": "application/json",
}
)
print(response.json())C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer w91_live_xxx");
var request = new HttpRequestMessage(HttpMethod.Delete, "https://graph.whats91.com/api/v2/message-blacklist/{blacklistUid}");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());Related APIs
Blacklist
List sender-scoped message blacklist entries for a WhatsApp registered sender.
Get Entry
Retrieve one sender-scoped blacklist entry by UID.
Add Number
Add or reactivate a recipient phone number in the sender blacklist.
Update Entry
Update the reason or status for one sender-scoped blacklist entry.