# List Slack channels

Retrieve a paginated list of outbound Slack channel subscriptions for the organization.

Source: https://statusdashboard.com/docs/api/integrations/slack/channels/list

`GET /app/integrations/slack/channels`

Returns a paginated list of Slack channel records (one row per dashboard + `(slackTeamId, slackChannelId)` contact key). Includes org-wide unique channel quota usage.

Requires the `admin` or `subscriber` role and the **integrations** feature entitlement.

List rows never include bot tokens — only `displayName`, `urlDisplay`, and Slack ids.

***

## Request
See [API Basics](/docs/api) for required headers.

### Query parameters
| Parameter     | Type    | Required | Description                                                                                             |
| ------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------- |
| `limit`       | integer | No       | Max items per page. Range: 1–100. Default: `10`.                                                        |
| `nextToken`   | string  | No       | Next-page bookmark from the previous response — pass unchanged. See [Pagination](/docs/api#pagination). |
| `dashboardId` | uuid    | No       | Scope the page to one status dashboard.                                                                 |
| `urlHash`     | string  | No       | 64-character lowercase hex contact hash.                                                                |

***

## Sample request
```bash
curl "https://api.statusdashboard.com/app/integrations/slack/channels?limit=10" \
  -H "Authorization: Bearer bcf847abf5c6:def456"
```

## Sample response
**Status: `200 OK`**

```json
{
  "endpoints": [
    {
      "channel": "slack",
      "dashboardId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "dashboardName": "Acme Status",
      "urlHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "displayName": "#incidents · Acme Corp",
      "urlDisplay": "#incidents · Acme Corp",
      "slackTeamId": "T01234567",
      "slackChannelId": "C01234567",
      "managementEmail": "ops@acme.com",
      "verified": true,
      "paused": false,
      "locked": true,
      "suppressed": false,
      "componentIds": ["b2c3d4e5-f6a7-8901-bcde-f12345678901"],
      "consecutiveFailures": 0,
      "createdAt": "2026-06-01T14:20:00.000Z",
      "updatedAt": "2026-06-26T14:30:00.000Z"
    }
  ],
  "nextToken": null,
  "usage": {
    "uniqueEndpoints": 3,
    "limit": 100
  }
}
```

***

## Response fields
| Field                   | Type           | Description                                                                         |
| ----------------------- | -------------- | ----------------------------------------------------------------------------------- |
| `endpoints`             | array          | Page of Slack channel records.                                                      |
| `nextToken`             | string \| null | Next-page bookmark when more results exist. See [Pagination](/docs/api#pagination). |
| `usage.uniqueEndpoints` | number         | Unique Slack `(teamId, channelId)` pairs org-wide.                                  |
| `usage.limit`           | number         | Organization limit (`slackChannels`, default 100).                                  |

### Endpoint fields
Each `endpoints[]` item:

| Field                 | Type      | Description                                                  |
| --------------------- | --------- | ------------------------------------------------------------ |
| `channel`             | string    | Always `slack`.                                              |
| `dashboardId`         | string    | Dashboard UUID.                                              |
| `dashboardName`       | string    | Dashboard display name.                                      |
| `urlHash`             | string    | Stable contact hash (SHA-256 hex).                           |
| `displayName`         | string    | `#channel · workspace` display label.                        |
| `urlDisplay`          | string    | Same redacted display as `displayName` (never a bot token).  |
| `slackTeamId`         | string    | Slack workspace ID.                                          |
| `slackChannelId`      | string    | Slack channel ID.                                            |
| `managementEmail`     | string    | Failure alerts and manage links.                             |
| `verified`            | boolean   | Admin OAuth channels are created verified.                   |
| `paused`              | boolean   | When `true`, notifications are paused.                       |
| `locked`              | boolean   | When `true`, blocks dashboard self-service subscribe/manage. |
| `suppressed`          | boolean   | When `true`, the channel is on the suppression list.         |
| `componentIds`        | string\[] | Component UUIDs notified for this channel.                   |
| `consecutiveFailures` | number    | Consecutive failed event deliveries since last success.      |
| `createdAt`           | string    | ISO 8601 timestamp when the channel was connected.           |
| `updatedAt`           | string    | ISO 8601 timestamp of the last update.                       |

***

## Pagination
See [Pagination](/docs/api#pagination) in API Basics. Re-send the same query parameters on every page request.

***

## Error responses
| Status | When                                                            |
| ------ | --------------------------------------------------------------- |
| `400`  | Invalid query parameters.                                       |
| `403`  | Requires admin or subscriber role, or integrations not enabled. |
| `404`  | `dashboardId` provided but dashboard not found.                 |
