---
title: "Public Slack channels Patricia can still join"
method: GET
path: "/v1/integrations/slack/joinable-channels"
tags: ["integrations"]
---

# Public Slack channels Patricia can still join

`GET /v1/integrations/slack/joinable-channels`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/integrations/slack/joinable-channels`
- Auth: HTTP bearer

The public channels Patricia has not joined yet, with member counts and the workspace name.

A tenant with no active Slack install answers ``connected: false`` with empty, zeroed fields
rather than an error. A Slack read that fails raises 503, never an empty channel list: that
would tell a user their workspace has none when it is really that Slack could not be read.

## Headers

- `X-Tenant-Id` string, nullable

## Response `200`

Successful Response

- SlackJoinableChannelsResponse: The public Slack channels Patricia can still join, and the counts the picker screen needs.
  - `connected` boolean, required: True when the tenant has an active Slack install to read from.
  - `workspace_name` string, nullable, required: The Slack workspace's name, or null when it is not known.
  - `channels` JoinableChannel[], required: Joinable channels in display order: #general first, then by member count, then name.
    - `id` string, required: Slack channel id.
    - `name` string, required: Channel name, without the leading '#'.
    - `member_count` integer, required: How many people are in the channel, as Slack reports it.
  - `total_public` integer, required: Every public channel in the workspace, joined or not.
  - `total_joinable` integer, required: Public channels Patricia has not joined yet.
  - `already_joined_count` integer, required: Public channels Patricia is already in.
  - `max_per_join` integer, required: The most channels one join request can submit at a time.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden. Inspect response body `code` for the specific reason (for example: PERMISSION_DENIED, EMAIL_NOT_VERIFIED, TENANT_ACCESS_REQUIRED, ROLE_UNRESOLVED)
- `404`: Not found
- `422`: Validation error
- `503`: Slack could not be read.

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
