Update settings - who can send messages
curl --request PUT \
--url https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"adminsOnly": true
}
'import requests
url = "https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only"
payload = { "adminsOnly": True }
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({adminsOnly: true})
};
fetch('https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'adminsOnly' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only"
payload := strings.NewReader("{\n \"adminsOnly\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("apikey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"adminsOnly\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"adminsOnly\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Configuration updated successfully"
}
Groups
Set Messages Admin Only
Configure if only admins can send messages in the group
PUT
/
api
/
{session}
/
groups
/
{id}
/
settings
/
security
/
messages-admin-only
Update settings - who can send messages
curl --request PUT \
--url https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"adminsOnly": true
}
'import requests
url = "https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only"
payload = { "adminsOnly": True }
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({adminsOnly: true})
};
fetch('https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'adminsOnly' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only"
payload := strings.NewReader("{\n \"adminsOnly\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("apikey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"adminsOnly\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/{session}/groups/{id}/settings/security/messages-admin-only")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"adminsOnly\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Configuration updated successfully"
}
Description
This endpoint allows configuring if only admins can send messages in the group (announcement mode).URL Parameters
string
required
WhatsApp unique session ID
string
required
ID of the group in format
120363XXXXX@g.usBody
{
"announce": true
}
Body Parameters
| Property | Type | Required | Description |
|---|---|---|---|
announce | boolean | ✅ Yes | true to activate announcement mode (admins only), false to allow all participants |
Response
{
"success": true,
"message": "Configuration updated successfully"
}
Status Codes
200- Configuration updated successfully400- Invalid parameters401- Unauthorized403- No permission (admins only)404- Group not found
Usage Example
curl -X PUT https://api.wappfy.com.br/api/my-session/groups/120363XXXXX@g.us/settings/security/messages-admin-only \
-H "Content-Type: application/json" \
-d '{
"announce": true
}'
const session = 'my-session';
const groupId = '120363XXXXX@g.us';
const response = await fetch(`https://api.wappfy.com.br/api/${session}/groups/${groupId}/settings/security/messages-admin-only`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
announce: true
})
});
const data = await response.json();
console.log(data);
import requests
session = 'my-session'
group_id = '120363XXXXX@g.us'
response = requests.put(
f'https://api.wappfy.com.br/api/{session}/groups/{group_id}/settings/security/messages-admin-only',
json={'announce': True}
)
data = response.json()
print(data)
⌘I
