D
API Reference

Group API

Endpoint group — POST /api/group/create (buat grup), GET /api/group/info (metadata), POST /api/group/participants (add/remove/promote/demote). Suffix @g.us otomatis.

Endpoint group mengelola grup WhatsApp — buat, ambil info, update partisipan.

POST /api/group/create — Buat grup baru

Handler: GroupController.create (src/controller/GroupController.ts:11)

Request fields

FieldWajibTipeCatatan
instance✅stringUUID sesi — harus CONNECTED
groupName✅stringNama grup
numbers✅string[]Array nomor partisipan

Contoh request

json
{
  "instance": "0c1a968c-...",
  "groupName": "Tim Dazo",
  "numbers": ["628111", "628222", "628333"]
}

Response

json
{
  "success": true,
  "message": "Group Berhasil dibuat",
  "data": { ...groupMetadata }
}

Aksi service

WhatsAppService.createGroup (src/service/whatsappService.ts:781-795):

  1. getSocket(instanceId) — throw jika tidak CONNECTED
  2. Format nomor partisipan via formatNumber(p) per item
  3. sock.groupCreate(title, pList) — Baileys create group

GET /api/group/info — Ambil info grup

Handler: GroupController.getInfo (src/controller/GroupController.ts:30)

Request

Query parameter:

FieldWajibTipeCatatan
instance✅stringUUID sesi
group_id✅stringID grup — suffix @g.us ditambahkan otomatis bila belum ada
plaintext
GET /api/group/info?instance=0c1a968c-...&group_id=120363xxx

Response

json
{
  "success": true,
  "message": "Info Group Berhasil diretrieve",
  "data": {
    "id": "120363xxx@g.us",
    "subject": "Tim Dazo",
    "participants": [
      { "id": "628111@s.whatsapp.net", "admin": null },
      { "id": "628222@s.whatsapp.net", "admin": "superadmin" }
    ]
  }
}

Aksi service

WhatsAppService.getGroupMetadata (src/service/whatsappService.ts:800-809):

  1. getSocket(instanceId) — throw jika tidak CONNECTED
  2. Jika groupId belum ada @g.us → tambahkan
  3. sock.groupMetadata(groupId) — Baileys get metadata

POST /api/group/participants — Update partisipan

Handler: GroupController.updateParticipants (src/controller/GroupController.ts:50)

Request fields

FieldWajibTipeCatatan
instance✅stringUUID sesi
group_id✅stringID grup — @g.us ditambahkan otomatis
numbers✅string[]Array nomor partisipan
action✅stringadd / remove / promote / demote

Contoh request

json
{
  "instance": "0c1a968c-...",
  "group_id": "120363xxx",
  "numbers": ["628444", "628555"],
  "action": "add"
}

Response

json
{
  "success": true,
  "message": "Partisipan digrup berhasil diupdate",
  "data": [
    { "id": "628444@s.whatsapp.net", "status": "200", ... },
    { "id": "628555@s.whatsapp.net", "status": "200", ... }
  ]
}

action yang valid

ActionFungsi
addTambah partisipan ke grup
removeHapus partisipan dari grup
promoteJadikan admin grup
demoteCabut status admin

Aksi service

WhatsAppService.updateGroupParticipants (src/service/whatsappService.ts:814-828):

  1. getSocket(instanceId) — throw jika tidak CONNECTED
  2. Jika groupId belum ada @g.us → tambahkan
  3. Format nomor via formatNumber(p) per item
  4. sock.groupParticipantsUpdate(groupId, pList, action) — Baileys update

Catatan

  • Suffix @g.us ditambahkan otomatis bila group_id belum memilikinya — tidak perlu manual
  • numbers wajib array — string dipisah koma tidak didukung (berbeda dari send-broadcast)
  • Tidak ada endpoint untuk update nama grup — WhatsAppService.updateGroupSubject ada di service tapi tidak didaftarkan di router
  • Partisipan diformat via formatNumber() — lihat Conventions

Langkah berikutnya