. Create an API key under API keys.API reference · WhatsApp features
Groups
Groups of a connected device: list, create, rename, members, admins, invite link, disappearing messages.
List groups
/v1/sessions/{sessionId}/groupsGroups the account participates in, sorted by name. The list is empty when the session has no live connection or WhatsApp does not answer within 8 seconds (such failures are not reported as errors).
Path parameters
sessionIdstringrequiredSession (device) id
Responses
- 200Groups
Response fields
groupsarray of objectrequiredgroups[].jidstringrequiredgroups[].namestringrequiredgroups[].sizeintegerrequiredNumber of participantsgroups[].descstring | nullrequiredGroup description
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions
- 404Unknown session, or a session of another tenant
curl "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY"const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
},
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.get(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"groups": [
{
"jid": "[email protected]",
"name": "Example",
"size": 12,
"desc": "string"
}
]
}Create a group
/v1/sessions/{sessionId}/groups/createCreates a WhatsApp group with the given members.
Path parameters
sessionIdstringrequiredSession (device) id
Request body
subjectstringrequiredGroup nameparticipantsarray of stringrequiredJIDs of the initial members,<digits>@s.whatsapp.net
Responses
- 200Group created
Response fields
idstringrequiredGroup JIDsubjectstringrequiredGroup nameownerstringcreationintegerCreation time as reported by WhatsApp (Unix epoch)descstringGroup descriptionsizeintegerrestrictbooleanOnly admins can change group settingsannouncebooleanOnly admins can writeephemeralDurationintegerDisappearing-messages timer in secondsparticipantsarray of objectrequiredparticipants[].idstringrequiredparticipants[].adminstring | nulladmin,superadminor null
- 400The body is not valid JSON
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl -X POST "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/create" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": "Support team",
"participants": [
"+447700900123",
"+12025550123"
]
}'const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/create', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"subject": "Support team",
"participants": [
"+447700900123",
"+12025550123"
]
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.post(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/create",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
json={
"subject": "Support team",
"participants": [
"+447700900123",
"+12025550123",
],
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('POST', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/create', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
'json' => [
'subject' => 'Support team',
'participants' => [
'+447700900123',
'+12025550123',
],
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"id": "01JA5V6Q8M2H7G4K9P3T0R1S2X",
"subject": "Support team",
"owner": "string",
"creation": 1,
"desc": "string",
"size": 12,
"restrict": true,
"announce": true,
"ephemeralDuration": 604800,
"participants": [
{
"id": "01JA5V6Q8M2H7G4K9P3T0R1S2X",
"admin": "string"
}
]
}Get group details
/v1/sessions/{sessionId}/groups/{gid}/metadataReturns the metadata WhatsApp holds for the group, including its participants.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Responses
- 200Group metadata
Response fields
idstringrequiredGroup JIDsubjectstringrequiredGroup nameownerstringcreationintegerCreation time as reported by WhatsApp (Unix epoch)descstringGroup descriptionsizeintegerrestrictbooleanOnly admins can change group settingsannouncebooleanOnly admins can writeephemeralDurationintegerDisappearing-messages timer in secondsparticipantsarray of objectrequiredparticipants[].idstringrequiredparticipants[].adminstring | nulladmin,superadminor null
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/metadata" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY"const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/metadata', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
},
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.get(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/metadata",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/metadata', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"id": "01JA5V6Q8M2H7G4K9P3T0R1S2X",
"subject": "Support team",
"owner": "string",
"creation": 1,
"desc": "string",
"size": 12,
"restrict": true,
"announce": true,
"ephemeralDuration": 604800,
"participants": [
{
"id": "01JA5V6Q8M2H7G4K9P3T0R1S2X",
"admin": "string"
}
]
}Rename a group
/v1/sessions/{sessionId}/groups/{gid}/subjectChanges the group name.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Request body
subjectstringrequiredNew group name
Responses
- 200Renamed
Response fields
okbooleanrequired
- 400The body is not valid JSON
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl -X PUT "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/subject" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": "Support team"
}'const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/subject', {
method: 'PUT',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"subject": "Support team"
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.put(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/subject",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
json={
"subject": "Support team",
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('PUT', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/subject', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
'json' => [
'subject' => 'Support team',
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"ok": true
}Change a group description
/v1/sessions/{sessionId}/groups/{gid}/descriptionChanges the group description.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Request body
descriptionstringrequiredNew description
Responses
- 200Updated
Response fields
okbooleanrequired
- 400The body is not valid JSON
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl -X PUT "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/description" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "Short description"
}'const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/description', {
method: 'PUT',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"description": "Short description"
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.put(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/description",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
json={
"description": "Short description",
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('PUT', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/description', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
'json' => [
'description' => 'Short description',
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"ok": true
}Set group disappearing messages
/v1/sessions/{sessionId}/groups/{gid}/ephemeralTurns the disappearing-messages timer of the group on or off on WhatsApp.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Request body
expirationintegerrequiredTimer in seconds: 0 turns it off; WhatsApp uses 86400 (24 hours), 604800 (7 days) and 7776000 (90 days)
Responses
- 200Updated
Response fields
okbooleanrequired
- 400The body is not valid JSON
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl -X PUT "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/ephemeral" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"expiration": 604800
}'const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/ephemeral', {
method: 'PUT',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"expiration": 604800
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.put(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/ephemeral",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
json={
"expiration": 604800,
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('PUT', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/ephemeral', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
'json' => [
'expiration' => 604800,
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"ok": true
}Get the group invite link
/v1/sessions/{sessionId}/groups/{gid}/inviteReturns the current invite link of the group.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Responses
- 200Invite link
Response fields
invite_linkstringrequiredhttps://chat.whatsapp.com/<code>
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/invite" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY"const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/invite', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
},
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.get(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/invite",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/invite', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"invite_link": "https://example.com/file.jpg"
}Leave a group
/v1/sessions/{sessionId}/groups/{gid}/leaveMakes the account leave the group.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Responses
- 200Left
Response fields
okbooleanrequired
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl -X POST "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/leave" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY"const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/leave', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
},
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.post(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/leave",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('POST', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/leave', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"ok": true
}Add group members
/v1/sessions/{sessionId}/groups/{gid}/participants/addAdds members to the group. The per-member outcome returned by WhatsApp is passed through in result.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Request body
participantsarray of stringrequiredMember JIDs,<digits>@s.whatsapp.net
Responses
- 200Outcome per member
Response fields
resultarray of objectrequiredresult[].statusstringrequiredStatus code per member as returned by WhatsAppresult[].jidstring
- 400The body is not valid JSON
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl -X POST "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/add" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"participants": [
"+447700900123"
]
}'const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/add', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"participants": [
"+447700900123"
]
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.post(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/add",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
json={
"participants": [
"+447700900123",
],
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('POST', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/add', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
'json' => [
'participants' => [
'+447700900123',
],
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"result": [
{
"status": "active",
"jid": "[email protected]"
}
]
}Remove group members
/v1/sessions/{sessionId}/groups/{gid}/participants/removeRemoves members from the group. The per-member outcome returned by WhatsApp is passed through in result.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Request body
participantsarray of stringrequiredMember JIDs,<digits>@s.whatsapp.net
Responses
- 200Outcome per member
Response fields
resultarray of objectrequiredresult[].statusstringrequiredStatus code per member as returned by WhatsAppresult[].jidstring
- 400The body is not valid JSON
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl -X POST "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/remove" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"participants": [
"+447700900123"
]
}'const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/remove', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"participants": [
"+447700900123"
]
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.post(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/remove",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
json={
"participants": [
"+447700900123",
],
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('POST', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/remove', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
'json' => [
'participants' => [
'+447700900123',
],
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"result": [
{
"status": "active",
"jid": "[email protected]"
}
]
}Make members group admins
/v1/sessions/{sessionId}/groups/{gid}/participants/promotePromotes members to group admin.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Request body
participantsarray of stringrequiredMember JIDs,<digits>@s.whatsapp.net
Responses
- 200Done
Response fields
okbooleanrequired
- 400The body is not valid JSON
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl -X POST "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/promote" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"participants": [
"+447700900123"
]
}'const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/promote', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"participants": [
"+447700900123"
]
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.post(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/promote",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
json={
"participants": [
"+447700900123",
],
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('POST', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/promote', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
'json' => [
'participants' => [
'+447700900123',
],
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"ok": true
}Remove group admin rights
/v1/sessions/{sessionId}/groups/{gid}/participants/demoteDemotes group admins to regular members.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Request body
participantsarray of stringrequiredMember JIDs,<digits>@s.whatsapp.net
Responses
- 200Done
Response fields
okbooleanrequired
- 400The body is not valid JSON
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500
WhatsApp operation failed: WhatsApp or the library rejected the call. The gateway does not validate this body, so missing or malformed fields end up here too
curl -X POST "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/demote" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"participants": [
"+447700900123"
]
}'const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/demote', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"participants": [
"+447700900123"
]
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.post(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/demote",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
json={
"participants": [
"+447700900123",
],
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('POST', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants/demote', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
'json' => [
'participants' => [
'+447700900123',
],
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"ok": true
}Change group members
/v1/sessions/{sessionId}/groups/{gid}/participantsAdds, removes, promotes or demotes members with one endpoint. The same actions exist as separate …/participants/add|remove|promote|demote calls; the add and remove variants return the per-member result, this one only ok.
Path parameters
sessionIdstringrequiredSession (device) idgidstringrequiredGroup JID,<id>@g.us
Request body
actionstringrequiredparticipantsarray of stringrequiredMember JIDs,<digits>@s.whatsapp.net
Responses
- 200Done
Response fields
okbooleanrequired
- 401Missing or invalid credentials
- 403The API key is restricted to other sessions, or the operation is not available to CS-agent logins
- 404Unknown session, or a session of another tenant
- 409The session is not connected
- 500WhatsApp refused the call, for example because of an invalid
action(codeis usuallyINTERNAL)
curl -X POST "https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants" \
-H "Authorization: Bearer $CHATKOMODO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "add",
"participants": [
"+447700900123"
]
}'const res = await fetch('https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CHATKOMODO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"action": "add",
"participants": [
"+447700900123"
]
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.code}: ${data.error}`);
console.log(data);import os
import requests
res = requests.post(
"https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants",
headers={
"Authorization": f"Bearer {os.environ['CHATKOMODO_API_KEY']}",
},
json={
"action": "add",
"participants": [
"+447700900123",
],
},
timeout=30,
)
res.raise_for_status()
print(res.json())<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('POST', 'https://api.chatkomodo.com/v1/sessions/YOUR_DEVICE_ID/groups/120363012345678901%40g.us/participants', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('CHATKOMODO_API_KEY'),
],
'json' => [
'action' => 'add',
'participants' => [
'+447700900123',
],
],
]);
print_r(json_decode((string) $res->getBody(), true));{
"ok": true
}