> ## 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.

# Listar Grupos

> Retorna todos os grupos dos quais a instância faz parte

**Auth:** `TokenAccount` ou `TokenInstance` • **Rate-limit:** `Global` (100/min) • **Idempotente:** sim

## Descrição

Lista todos os grupos da instância. Por padrão, retorna apenas metadados leves (nome, JID, descrição, criador, contagem). Passe `includeMembers=true` na query para incluir a lista completa de membros, neste caso o timeout da operação é estendido para **60s**.

## Exemplos

### Listar (sem membros)

Retorna todos os grupos da instância apenas com metadados leves (nome, JID, descrição, criador, contagem). É o modo padrão, mais rápido em contas com muitos grupos.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://ryzeapi.cloud/api/group/list/$Instance_Name" \
    -H "token: $Token_Instance"
  ```

  ```javascript JavaScript theme={null}
  await fetch(`https://ryzeapi.cloud/api/group/list/${process.env.Instance_Name}`, {
    method: "GET",
    headers: {
      "token": process.env.Token_Instance
    }
  });
  ```

  ```python Python theme={null}
  import os, requests

  requests.get(
      f"https://ryzeapi.cloud/api/group/list/{os.environ['Instance_Name']}",
      headers={
          "token": os.environ["Token_Instance"]
      }
  )
  ```

  ```go Go theme={null}
  package main

  import (
      "net/http"
      "os"
  )

  func main() {
      req, _ := http.NewRequest("GET", "https://ryzeapi.cloud/api/group/list/"+os.Getenv("Instance_Name"), nil)
      req.Header.Set("token", os.Getenv("Token_Instance"))
      http.DefaultClient.Do(req)
  }
  ```
</CodeGroup>

### Listar com membros

Adiciona `includeMembers=true` para incluir a lista completa de participantes de cada grupo. O timeout interno é estendido para 60s, útil quando você precisa de uma snapshot completa em uma única chamada.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://ryzeapi.cloud/api/group/list/$Instance_Name?includeMembers=true" \
    -H "token: $Token_Instance"
  ```

  ```javascript JavaScript theme={null}
  await fetch(`https://ryzeapi.cloud/api/group/list/${process.env.Instance_Name}?includeMembers=true`, {
    method: "GET",
    headers: {
      "token": process.env.Token_Instance
    }
  });
  ```

  ```python Python theme={null}
  import os, requests

  requests.get(
      f"https://ryzeapi.cloud/api/group/list/{os.environ['Instance_Name']}?includeMembers=true",
      headers={
          "token": os.environ["Token_Instance"]
      }
  )
  ```

  ```go Go theme={null}
  package main

  import (
      "net/http"
      "os"
  )

  func main() {
      req, _ := http.NewRequest("GET", "https://ryzeapi.cloud/api/group/list/"+os.Getenv("Instance_Name")+"?includeMembers=true", nil)
      req.Header.Set("token", os.Getenv("Token_Instance"))
      http.DefaultClient.Do(req)
  }
  ```
</CodeGroup>

## Resposta de sucesso

Retorna todos os grupos da instância em `groups[]`, com `meta.total` indicando a quantidade. Cada item carrega metadados leves (`name`, `groupJid`, `description`, `creatorJid`, `memberCount`); o array `members` só vem populado quando `includeMembers=true`. Não há paginação, todos os grupos vêm em uma única resposta.

```json 200 OK theme={null}
{
  "success": true,
  "message": "2 Groups found",
  "groups": [
    {
      "name": "Time de Dev",
      "groupJid": "120363406289005073@g.us",
      "description": "Discussões técnicas",
      "creatorJid": "5511999999999@s.whatsapp.net",
      "memberCount": 3,
      "members": [
        { "jid": "5511999999999@s.whatsapp.net", "isAdmin": true, "isSuperAdmin": false }
      ]
    }
  ],
  "meta": { "total": 2 }
}
```

## Parâmetros de rota

<ParamField path="instance" type="string" required>
  Nome da instância.
</ParamField>

## Headers

<ParamField header="token" type="string" required>
  `TokenAccount` ou `TokenInstance`.
</ParamField>

## Query

<ParamField query="includeMembers" type="boolean" default="false">
  Quando `true`, inclui a lista completa de membros de cada grupo.
</ParamField>

## Notas

<Note>
  * O array `members` só aparece quando `includeMembers=true`.
  * Para uma conta com muitos grupos, use `includeMembers=false` e busque os membros sob demanda via [`GET /info`](/pt/api/groups/info).
  * Não há paginação, todos os grupos vêm em uma única resposta.
</Note>

## Erros

| HTTP | Mensagem                                |
| ---- | --------------------------------------- |
| 400  | `Instance is not connected to WhatsApp` |
| 404  | `Instance not found`                    |

Envelope:

```json theme={null}
{
  "success": false,
  "error": { "message": "Instance is not connected to WhatsApp" }
}
```
