# Channel status

Before sending something over a channel, it is worth knowing whether that channel is connected and healthy. `GET /workspaces/{workspaceId}/channels/status` tells you for all four types —WhatsApp, Instagram, Messenger and email— in a single call.

> Scope `channels:read`. It does not consume Energy. **It does not return credentials**: no tokens, no PIN, no webhook path. Connecting, reconnecting and disconnecting a channel is done from the Meteor panel.

```ts
import { Met } from '@meteor.ia/sdk';

const met = new Met(process.env.MET_KEY!, { workspaceId: 42 });
const { data } = await met.channels.status();

for (const channel of data) {
  console.log(channel.type, channel.connected, channel.health, channel.reason);
  for (const account of channel.accounts) console.log('  ', account.display, account.health);
}
```

All four types always arrive, in the same order, connected or not.

## What each field says

| Field | What it means |
|---|---|
| `connected` | The channel is connected in your workspace. |
| `channel_id` | The channel's `id` for the rest of the operations (`GET /channels/{channelId}/config`, WhatsApp sends). `null` if it was never connected. |
| `accounts[]` | Each WhatsApp number, Instagram account, Facebook Page or email inbox, with `display` (what your customer sees), `is_active` and its own health. |
| `health` | `ok`, `attention`, `disconnected` or `not_connected`. It is the worst health among its active accounts. |
| `reason` | Why it is not `ok` (below). |
| `last_synced_at` | When Meteor last synced that account with the provider. |

## The reasons

| `reason` | What to do |
|---|---|
| `line_not_operational` | The WhatsApp number did not finish verifying or registering. Finish the setup from the panel. |
| `quality_low` | Meta rated the number's quality as red. Lower the volume of marketing templates. |
| `authorization_expiring` | The account's permission expires in less than 7 days. Reconnect it from the panel. |
| `authorization_expired` | The permission expired: what comes in through that account no longer arrives. Reconnect it from the panel. |
| `account_inactive` | The account is turned off in the panel; it does not count toward the channel's health. |
| `no_accounts` | The channel is connected but has no active account. |

If one account goes down and the others stay healthy, the channel is in `attention`: it keeps answering through the others. It is only `disconnected` when all of them went down.

## What it does not do

Health comes from what Meteor last synced, not from a live query to Meta: calling it in a loop does not give you fresher information. To diagnose a channel in detail —which flow handles each line, which Met answers— use [`GET /channels/{channelId}/config`](../../reference.html).
