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

# Verificar Websocket

> Retorna a configuração atual do WebSocket da instância

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

## Descrição

Retorna a configuração atual do WebSocket da instância. Retorna `404` quando não há linha em `websocket_configs` (a instância nunca foi configurada via `POST`), não existe "config default implícita".

<Note>
  Atenção à grafia: o path correto é **`getWebsocket`** (`w` minúsculo em `socket`), diferente de `POST /websocket`. Esta inconsistência é histórica, use o literal exato do registro.
</Note>

## Parâmetros de rota

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

## Exemplo

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

  ```javascript JavaScript theme={null}
  await fetch(`https://ryzeapi.cloud/api/events/getWebsocket/${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/events/getWebsocket/{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/events/getWebsocket/"+os.Getenv("Instance_Name"), nil)
      req.Header.Set("token", os.Getenv("Token_Instance"))
      http.DefaultClient.Do(req)
  }
  ```
</CodeGroup>

## Headers

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

## Resposta de sucesso

Retorna o objeto `websocket` com a configuração atual: `enabled`, `events` e `mediaBase64`. Atenção: `404` significa "nunca foi configurado" (não há linha em `websocket_configs`), **diferente** de `enabled=false` (que retorna `200` com a linha persistida e os campos zerados). Trate os dois casos no cliente.

```json 200 OK theme={null}
{
  "success": true,
  "message": "WebSocket configuration retrieved",
  "websocket": {
    "enabled":     true,
    "events":      ["message.exchange"],
    "mediaBase64": false
  }
}
```

```json 200 OK (desabilitado) theme={null}
{
  "success": true,
  "message": "WebSocket configuration retrieved",
  "websocket": {
    "enabled":     false,
    "events":      [],
    "mediaBase64": false
  }
}
```

## Erros

| HTTP | `error.message`                              |
| ---- | -------------------------------------------- |
| 401  | `Invalid token`                              |
| 404  | `Instance not found`                         |
| 404  | `WebSocket not configured for this instance` |
| 429  | `Rate limit exceeded. Try again later.`      |
| 500  | `Failed to get instance`                     |
| 500  | `Failed to get websocket configuration`      |

Envelope:

```json theme={null}
{
  "success": false,
  "error": { "message": "WebSocket not configured for this instance" }
}
```

## Notas

<Note>
  * **`404` ≠ "desabilitado"**: `404` significa "nunca criou linha"; um `enabled=false` retorna `200` normalmente com `"enabled": false`. Trate os dois casos no cliente.
  * **Sem alias `GET /websocket/:instance`**: diferente do webhook, **não há** um alias na grafia "regular", apenas `getWebsocket` (minúsculo).
</Note>

## Próximo

<CardGroup cols={2}>
  <Card title="Configurar WebSocket" icon="plug" href="/pt/api/events/websocket-configure">
    `POST /api/events/websocket/:instance`
  </Card>

  <Card title="Conectar via WebSocket" icon="bolt" href="/pt/api/websocket">
    `GET /ws/:instance`
  </Card>
</CardGroup>
