Skip to main content
Use client.Groups for WhatsApp group operations on an instance. Common fields on every call:
FieldTypeRequiredDescription
InstanceIDstringYesInstance ID.
InstanceTokenstringYesInstance token.
Group-specific operations also require GroupID in the payload.

Groups.List(ctx, req)

Lists groups with pagination.
groups, err := client.Groups.List(ctx, vzaps.GroupListRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	Page:     1,
	PageSize: 20,
})
fmt.Printf("%#v\n", groups)
Return: envelope { code, success, data.groups[] } with pagination when applicable.

Groups.Get(ctx, req)

Gets group metadata.
group, err := client.Groups.Get(ctx, vzaps.GroupInfoRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	GroupID: "120363012345678901@g.us",
})
fmt.Printf("%#v\n", group)
Return: envelope { code, success, data } with group metadata (jid, name, topic, participants, etc.). Gets or resets the invite link.
invite, err := client.Groups.InviteLink(ctx, vzaps.GroupInviteLinkRequest{
	GroupInfoRequest: vzaps.GroupInfoRequest{
		InstanceScopedRequest: vzaps.InstanceScopedRequest{
			InstanceID:    "VZ...",
			InstanceToken: "instance-token",
		},
		GroupID: "120363012345678901@g.us",
	},
	Reset: false,
})
fmt.Printf("%#v\n", invite)
Return: envelope { code, success, data.invite_link }. With reset:
newInvite, err := client.Groups.InviteLink(ctx, vzaps.GroupInviteLinkRequest{
	GroupInfoRequest: vzaps.GroupInfoRequest{
		InstanceScopedRequest: vzaps.InstanceScopedRequest{
			InstanceID:    "VZ...",
			InstanceToken: "instance-token",
		},
		GroupID: "120363012345678901@g.us",
	},
	Reset: true,
})

Groups.SetPhoto(ctx, req)

Changes the group photo. Accepts a public URL or base64 data URL.
_, err := client.Groups.SetPhoto(ctx, vzaps.GroupMutationRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	GroupID: "120363012345678901@g.us",
	Image:   "https://cdn.example.com/groups/photo.jpg",
})
Return: envelope { code, success, data.details } confirming the change.

Groups.SetName(ctx, req)

Changes the group name.
_, err := client.Groups.SetName(ctx, vzaps.GroupMutationRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	GroupID: "120363012345678901@g.us",
	Name:    "VIP Support",
})
Return: envelope { code, success, data.details } confirming the change.

Groups.SetDescription(ctx, req)

Changes the group description.
_, err := client.Groups.SetDescription(ctx, vzaps.GroupMutationRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	GroupID:     "120363012345678901@g.us",
	Description: "Official support channel",
})
Return: envelope { code, success, data.details } confirming the change.

Groups.SetSettings(ctx, req)

Changes group settings.
_, err := client.Groups.SetSettings(ctx, vzaps.GroupMutationRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	GroupID:           "120363012345678901@g.us",
	AdminOnlyMessage:  true,
	AdminOnlySettings: false,
	DelayMessage:      0,
})
Return: envelope { code, success, data.details } confirming the change.

Groups.Create(ctx, req)

Creates a group with participants.
_, err := client.Groups.Create(ctx, vzaps.GroupMutationRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	GroupName:        "VIP Support",
	GroupDescription: "Support channel",
	GroupImage:       "https://cdn.example.com/groups/photo.jpg",
	Participants:     []string{"5511999999999", "5511888888888"},
})
Return: envelope { code, success, data } with created group fields.

Groups.AddAdmin(ctx, req)

Promotes participants to admin.
_, err := client.Groups.AddAdmin(ctx, vzaps.GroupMutationRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	GroupID:      "120363012345678901@g.us",
	Participants: []string{"5511999999999"},
})
Return: envelope { code, success, data.details } confirming the change.

Groups.RemoveAdmin(ctx, req)

Removes admins from the group.
_, err := client.Groups.RemoveAdmin(ctx, vzaps.GroupMutationRequest{
	InstanceScopedRequest: vzaps.InstanceScopedRequest{
		InstanceID:    "VZ...",
		InstanceToken: "instance-token",
	},
	GroupID:      "120363012345678901@g.us",
	Participants: []string{"5511999999999"},
})
Return: envelope { code, success, data.details } confirming the change.