Teams created from the admin panel or through this API. Teams a user creates for themselves are not listed.
| Request Type | GET |
|---|---|
| Request URL | baseUrl + auth/team/list |
{
"status": 1,
"data": [{
"name": "Sales Team",
"uniqueId": "sales-team", // use this to update/delete the team or add it to a client group
"members": [{
"name": { "firstName": "John", "lastName": "Doe" },
"email": "john@example.com"
}],
"createdAt": "2026-10-09T10:15:37.377Z",
"updatedAt": "2026-10-09T10:15:37.377Z"
}]
}| Request Type | POST |
|---|---|
| Request URL | baseUrl + auth/team/add |
| Required Fields (In body parameter) : | |
| name | team name, up to 100 characters |
| members | list of user emails, e.g. ["john@example.com", "jane@example.com"] or "john@example.com,jane@example.com" |
| Optional Fields : | |
| uniqueId | unique id of the team in the organisation. Generated from the name when left out. Saved in lowercase, with spaces and symbols turned into "-" (e.g. "Sales Team" becomes "sales-team") |
{
"name": "Sales Team",
"uniqueId": "sales-team",
"members": ["john@example.com", "jane@example.com"]
}Expected Output :{
"status": 1,
"data": { ...team, same shape as Team List }
}Errors (status 0) :"Users not found: a@example.com, b@example.com" // email is not an active user of the organisation "Team name is required (max 100 characters)" "Unique Id is required" // name/uniqueId has no letters or digits "Select at least one user" // members is empty "Unique Id already exists"
Only the fields you send change. Sending members replaces the whole member list.
| Request Type | PUT |
|---|---|
| Request URL | baseUrl + auth/team/update |
| Required Fields (In body parameter) : | |
| uniqueId | current unique id of the team to update |
| Optional Fields : | |
| name | new team name |
| newUniqueId | new unique id |
| members | new list of user emails (replaces the current members) |
{
"uniqueId": "sales-team",
"name": "Sales Team India",
"newUniqueId": "sales-team-india",
"members": ["john@example.com", "ravi@example.com"]
}Expected Output :{
"status": 1,
"data": { ...team, same shape as Team List }
}Errors (status 0) :"Team not found" "Users not found: a@example.com" "Unique Id already exists" // newUniqueId is taken by another team "Some selected users are not allowed" // a current member is no longer active; send members
Client groups already created with this team keep their members.
| Request Type | DELETE |
|---|---|
| Request URL | baseUrl + auth/team/delete |
| Required Fields (In body or query string) : | |
| uniqueId | unique id of the team, e.g. baseUrl + auth/team/delete?uniqueId=sales-team |
{
"status": 1,
"data": "Team deleted"
}Errors (status 0) :"Team not found"
Members come from three lists that are merged: clients, consultants and teams. A user found in more than one list is added once. Each team is replaced by its members at the time of the request; later changes to the team do not change the group. A group needs at least 2 members.
| Request Type | POST | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Request URL | baseUrl + auth/client-group/add | ||||||||||||
| Required Fields (In body parameter) : | |||||||||||||
| groupName | name of the client group | ||||||||||||
| Optional Fields : | |||||||||||||
| clients | list of client objects. Each client has these fields:
| ||||||||||||
| consultants | list of emails of active users to add as consultants | ||||||||||||
| teams | list of team unique ids; all members of each team are added as consultants | ||||||||||||
| showSenderName | true or false, show sender names to clients (default true) | ||||||||||||
{
"groupName": "Acme Corp",
"clients": [{
"firstName": "Jo",
"lastName": "Smith",
"email": "jo@acme.com",
"whatsappNumber": "919876543210",
"countryCode": "+91",
"sendAccountEmail": true
}],
"consultants": ["john@example.com"],
"teams": ["sales-team", "support-team"],
"showSenderName": true
}Expected Output :{
"status": 1,
"data": "Client group created successfully",
"groupId": "6706578c9f1b2c0012ab34cd" // id of the new client group
}Error Output :Errors come back with an HTTP error status and status 0; data holds the reason.
{
"status": 0,
"data": "jo@acme.com is already a WhatsApp client of group \"Acme Corp\"",
"groupId": "6706578c9f1b2c0012ab34cd" // only on this error: the group the client already chats in over WhatsApp
}Errors :| HTTP status | data |
|---|---|
| 400 | "Group name is required" "clients must be a list" "Each client needs firstName and a valid email" "Duplicate client email" "A group can have only one WhatsApp client" "whatsappNumber must be the full number starting with countryCode" "A group needs at least 2 members" |
| 402 | "you add only 2 new clients" (plan user limit left for new clients) "You have reached your plan limit" |
| 403 | "WhatsApp is not set up for client groups" "jo@acme.com is blocked by admin" |
| 404 | "Organisation not found" "Users not found: a@example.com" (consultant email is not an active user) "Teams not found: sales-team" |
| 409 | "jo@acme.com is already a WhatsApp client of group "Acme Corp"" (also returns groupId; sent only when the email and the WhatsApp number both match that client) "jo@acme.com and the WhatsApp number belong to different users" "WhatsApp number 919876543210 is already registered with another email" "jo@acme.com is already registered with another WhatsApp number" "jo@acme.com is registered for user or operator" (a client email belongs to a user/operator) |
| 500 | "Something went wrong" |
Rename an existing group, change its sender-name setting, or add and remove clients and consultants. The group is picked by the groupId returned when it was created. Removals run first. Consultants already in the group are skipped, so a team can overlap the group. A client already in the group is rejected. Removing an email that is not a member does nothing. Send at least one of the optional fields.
| Request Type | PUT | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Request URL | baseUrl + auth/client-group/update | ||||||||||||
| Required Fields (In body parameter) : | |||||||||||||
| groupId | id of the client group (the groupId from Create Client Group) | ||||||||||||
| Optional Fields (send at least one) : | |||||||||||||
| groupName | new name of the client group | ||||||||||||
| showSenderName | true or false, show sender names to clients | ||||||||||||
| active | true or false. Set to false to disable (block) the client group; set to true to re-enable it. | ||||||||||||
| addConsultants | list of emails of active users to add as consultants | ||||||||||||
| removeConsultants | list of user emails to remove | ||||||||||||
| addTeams | list of team unique ids; all members of each team are added as consultants | ||||||||||||
| addClients | list of client objects to add. Same rules as Create Client Group. Each client has these fields:
| ||||||||||||
| removeClients | list of client emails to remove | ||||||||||||
{
"groupId": "6706578c9f1b2c0012ab34cd",
"groupName": "Acme Corp (EU)",
"addConsultants": ["john@example.com"],
"removeConsultants": ["old@example.com"],
"addTeams": ["support-team"],
"addClients": [{ "firstName": "Jo", "email": "jo@acme.com", "sendAccountEmail": true }],
"removeClients": ["former-client@acme.com"]
}Expected Output :{
"status": 1,
"data": {
"groupId": "6706578c9f1b2c0012ab34cd",
"active": true, // current active status of the group (false when disabled)
"added": 2, // members added (duplicates skipped)
"removed": 1 // members removed
}
}Errors (status 0) :"Valid groupId is required"
"Client group not found"
"Nothing to update" // none of the optional fields sent
"Group name is required" // groupName sent empty
"Users not found: a@example.com" // an add/remove email is not a user of the org
"Teams not found: sales-team"
"addClients must be a list"
"Each client needs firstName and a valid email"
"Duplicate client email"
"jo@acme.com is already in the group"
"A group can have only one WhatsApp client"
"jo@acme.com is registered for user or operator"
"jo@acme.com is blocked by admin"
the other WhatsApp errors listed under Create Client Group ("already a WhatsApp client of group" also returns groupId)
"you add only 2 new clients"
HTTP 400 when the plan's user limit is already reachedOne client group with its settings and members, split into consultants and clients. The group is picked by the groupId returned when it was created.
| Request Type | GET |
|---|---|
| Request URL | baseUrl + auth/client-group/details |
| Required Field (In query parameter) | |
| groupId | id of the client group (the groupId from Create Client Group) |
{
"status": 1,
"data": {
"groupId": "6706578c9f1b2c0012ab34cd",
"groupName": "Acme Corp",
"showSenderName": true,
"active": true, // false when the group is blocked
"createdBy": null, // { name, email } of the user who made it; null when made by the admin panel or this API
"createdAt": "2026-10-09T10:15:37.377Z",
"updatedAt": "2026-10-09T10:15:37.377Z",
"consultants": [{
"name": { "firstName": "John", "lastName": "Doe" },
"email": "john@example.com",
"chatStatus": true, // false when the member is restricted from chatting
"addedAt": "2026-10-09T10:15:37.377Z",
"addedBy": null, // { name, email } of the user who added them, if any
"isAdmin": false // group admin
}],
"clients": [{
"name": { "firstName": "Jo", "lastName": "Smith" },
"email": "jo@acme.com",
"chatStatus": true,
"addedAt": "2026-10-09T10:15:37.377Z",
"addedBy": null,
"whatsappNumber": "919876543210",
"countryCode": "+91",
"isWhatsappClient": true, // chats with the group over WhatsApp
"optedOut": false // WhatsApp client opted out of messages
}]
}
}Errors (status 0) :"Valid groupId is required" "Client group not found"
One client of the organisation, found by email.
| Request Type | GET |
|---|---|
| Request URL | baseUrl + auth/client/details |
| Required Field (In query parameter) | |
| email of the client | |
{
"status": 1,
"data": {
"name": { "firstName": "Jo", "lastName": "Smith" },
"email": "jo@acme.com",
"whatsappNumber": "919876543210", // "" when the client has no WhatsApp number
"countryCode": "+91",
"blocked": false, // true when blocked by admin
"createdAt": "2026-10-09T10:15:37.377Z",
"updatedAt": "2026-10-09T10:15:37.377Z"
}
}Errors (status 0) :"Valid email is required" "Client not found" // no client with this email (users and operators are not clients)
Change a client's name, email or WhatsApp number. The client is picked by its current email. Fields left out keep their current value. The new name also shows in every group the client is in. Send at least one of the optional fields.
| Request Type | PUT |
|---|---|
| Request URL | baseUrl + auth/client/update |
| Required Fields (In body parameter) : | |
| current email of the client | |
| Optional Fields (send at least one) : | |
| firstName | new first name; cannot be empty |
| lastName | new last name |
| newEmail | new email; must not belong to another account of the organisation |
| whatsappNumber | Full number with country code, digits only, no "+", e.g. "919876543210". Needs WhatsApp set up for client groups. Send "" to remove the number; the client then stops being a WhatsApp client in every group. |
| countryCode | required with whatsappNumber, e.g. "+91". whatsappNumber must start with these digits. |
{
"email": "jo@acme.com",
"firstName": "Joanna",
"lastName": "Smith",
"newEmail": "joanna@acme.com",
"whatsappNumber": "919876543210",
"countryCode": "+91"
}Expected Output :{
"status": 1,
"data": "Client updated successfully"
}Errors (status 0) :"Valid email is required" "Nothing to update" // none of the optional fields sent "Client not found" "First name is required" "Invalid user name" // name contains HTML tags "newEmail is not a valid email" "WhatsApp is not set up for client groups" "whatsappNumber must be the full number starting with countryCode" "Email ID Already Exist" "WhatsApp Number Already Exist"