Skip to main content
POST
/
api
/
group
/
create
/
:instance
Create Group
curl --request POST \
  --url https://api.example.com/api/group/create/:instance \
  --header 'Content-Type: <content-type>' \
  --header 'token: <token>' \
  --data '
{
  "name": "<string>",
  "participants": [
    "<string>"
  ],
  "description": "<string>",
  "image": "<string>",
  "communityJid": "<string>",
  "groupSettings": {}
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.ryzeapi.cloud/llms.txt

Use this file to discover all available pages before exploring further.

Auth: TokenAccount or TokenInstanceRate-limit: Global (100/min) • Idempotent: no

Description

Creates a WhatsApp group and optionally links it to an existing community (communityJid). You can set the name, description, picture, and initial permissions (groupSettings) in the same call. The picture and description are applied in subsequent calls after the group is created.

Examples

Minimum

Creates a “Dev Team” group with 2 initial participants (5511999999999, 5521988888888), with no description, picture, community, or custom permissions.
curl -X POST "https://ryzeapi.cloud/api/group/create/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Dev Team",
    "participants": ["5511999999999", "5521988888888"]
  }'

With description and picture

Creates the group with the description “Technical discussions” and a picture from a public URL. Description and image are applied in subsequent calls after the group is created.
curl -X POST "https://ryzeapi.cloud/api/group/create/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Dev Team",
    "description": "Technical discussions",
    "image": "https://example.com/logo.png",
    "participants": ["5511999999999", "5521988888888"]
  }'

With permissions

Creates an “Announcements” group with initial restrictions: only admins can send messages (membersCanSendMessages: false) and new joins require approval (requireAdminApproval: true).
curl -X POST "https://ryzeapi.cloud/api/group/create/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Announcements",
    "participants": ["5511999999999"],
    "groupSettings": {
      "membersCanSendMessages": false,
      "requireAdminApproval": true
    }
  }'

Linked to a community

Creates the “General Subgroup” already linked to the community 120363406289005073@g.us via communityJid, avoiding the extra step of calling /community/link after creation.
curl -X POST "https://ryzeapi.cloud/api/group/create/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "General Subgroup",
    "participants": ["5511999999999"],
    "communityJid": "120363406289005073@g.us"
  }'

Success response

The response includes the freshly created group.jid (use it as the identifier in subsequent calls), the inviteCode and inviteLink ready to share, and the participants list already flagged with isAdmin/isSuperAdmin. The creator joins automatically as super-admin. The groupSettings fields reflect the initial permissions (defaults or whatever you sent).
200 OK
{
  "success": true,
  "message": "Group created successfully",
  "group": {
    "name": "Dev Team",
    "jid": "120363406289005073@g.us",
    "description": "Technical discussions",
    "inviteCode": "ABC123XYZ",
    "inviteLink": "https://chat.whatsapp.com/ABC123XYZ",
    "createdBy": "5511999999999@s.whatsapp.net",
    "participantCount": 3,
    "participants": [
      { "jid": "5511999999999@s.whatsapp.net", "isAdmin": true, "isSuperAdmin": false }
    ],
    "groupSettings": {
      "membersCanEditInfo": true,
      "membersCanSendMessages": true,
      "membersCanAddOthers": false,
      "requireAdminApproval": false
    },
    "isCommunity": false,
    "isParent": false,
    "linkedParentJid": null
  }
}

Path parameters

instance
string
required
Instance name (e.g., $Instance_Name).

Headers

token
string
required
TokenAccount or TokenInstance.
Content-Type
string
required
application/json

Request body

name
string
required
Group name. Max 25 characters.
participants
string[]
required
List of numbers (5511999999999) or JIDs (5511999999999@s.whatsapp.net). At least 1 item.
description
string
Group description (topic). Applied via SetGroupTopic after creation.
image
string
Public URL or base64 data URI. The image is converted to JPEG.
communityJid
string
Creates the group already linked to a community (parent group).
groupSettings
object
Initial permissions. Subfields: membersCanEditInfo, membersCanSendMessages, membersCanAddOthers, requireAdminApproval.

Notes

  • The group creator joins automatically as super-admin.
  • Invalid numbers (not registered on WhatsApp) are rejected; the error indicates which participant failed.
  • If image is provided and the upload fails, group creation continues normally, the image error is not fatal on this route. Use PUT /update to reapply the picture.

Errors

HTTPMessage
400The 'name' field is required
400At least one participant is required
400group name must be 25 characters or less
400invalid participant <number>: <reason>
400Instance is not connected to WhatsApp
429rate limit exceeded (429): wait before creating again
Envelope:
{
  "success": false,
  "error": { "message": "The 'name' field is required" }
}