# List channels

> Every public channel of the workspace, each flagged `is_member`, so an integration can offer them in a picker and let people choose where the app goes.

**GET** `/api/public/apps/v1/channels`

Needs the `channels:read` permission (and `groups:read` to widen the result).

Every public channel of the workspace, each flagged `is_member`, so an integration can offer them in a picker and let people choose where the app goes. With `groups:read` it also lists the private channels the app already belongs to; a private channel the app was not added to is never listed.

## Example

**curl**

```sh
curl "https://amedeus.app/api/public/apps/v1/channels" \
  -H "Authorization: Bearer $TOKEN"
```

**JavaScript**

```js
const response = await fetch("https://amedeus.app/api/public/apps/v1/channels", {
  headers: { Authorization: `Bearer ${process.env.TOKEN}` },
});
const result = await response.json(); // { ok: true, … } or { ok: false, error, message }
```

**Python**

```python

request = urllib.request.Request(
    "https://amedeus.app/api/public/apps/v1/channels",
    headers={
        "Authorization": f"Bearer {os.environ['TOKEN']}",
        "User-Agent": "my-app/1.0",
    },
)
with urllib.request.urlopen(request) as response:
    result = json.load(response)  # a 4xx or 5xx raises urllib.error.HTTPError
```

## Response

| Field | Type | Required | Meaning |
| --- | --- | --- | --- |
| `ok` | `true` | yes |  |
| `channels` | array of object | yes |  |

```json
{
  "ok": true,
  "channels": [
    {
      "id": "52f4c823-8e7f-4349-bb98-1ac8683aad13",
      "name": "…",
      "topic": "…",
      "kind": "public",
      "is_member": true,
      "created_at": "2026-11-12T19:18:43.527829+00:00"
    }
  ]
}
```

## Errors

Failures answer `{ "ok": false, "error": "<code>", "message": "…" }`; see [Errors](/reference/errors/).

- `401`: The token is missing, wrong or revoked.
- `403`: A missing scope (the message names it), or a channel the app isn't in.
- `429`: Slow down; `Retry-After` says for how many seconds.

