> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/open-webui/open-webui/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Channel

> Get detailed information about a specific channel

Retrieves detailed information about a channel, including members, access control, and unread message counts.

## Authentication

Requires a valid user session. User must have read access to the channel.

## Path Parameters

<ParamField path="id" type="string" required>
  The unique identifier of the channel
</ParamField>

## Response

Returns a detailed channel object with user information and metadata.

<ResponseField name="id" type="string" required>
  Unique channel identifier
</ResponseField>

<ResponseField name="user_id" type="string" required>
  ID of the user who created the channel
</ResponseField>

<ResponseField name="type" type="string">
  Channel type: `standard`, `group`, or `dm`
</ResponseField>

<ResponseField name="name" type="string" required>
  Channel name
</ResponseField>

<ResponseField name="description" type="string">
  Channel description
</ResponseField>

<ResponseField name="is_private" type="boolean">
  Whether the channel is private
</ResponseField>

<ResponseField name="data" type="object">
  Additional channel data
</ResponseField>

<ResponseField name="meta" type="object">
  Channel metadata
</ResponseField>

<ResponseField name="access_grants" type="array">
  Access control grants for the channel
</ResponseField>

<ResponseField name="user_ids" type="array">
  Array of member user IDs (for group/dm channels only)
</ResponseField>

<ResponseField name="users" type="array">
  Array of member user objects with activity status (for group/dm channels only)

  <Expandable title="User Object">
    <ResponseField name="id" type="string" required>
      User ID
    </ResponseField>

    <ResponseField name="name" type="string" required>
      User display name
    </ResponseField>

    <ResponseField name="is_active" type="boolean" required>
      Whether the user is currently active
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="is_manager" type="boolean" required>
  Whether the current user is a manager of this channel
</ResponseField>

<ResponseField name="write_access" type="boolean" required>
  Whether the current user has write access to this channel
</ResponseField>

<ResponseField name="user_count" type="integer">
  Total number of users with access to the channel
</ResponseField>

<ResponseField name="last_read_at" type="integer">
  Timestamp when the current user last read messages (epoch time in nanoseconds)
</ResponseField>

<ResponseField name="unread_count" type="integer" required>
  Number of unread messages for the current user
</ResponseField>

<ResponseField name="created_at" type="integer" required>
  Creation timestamp (epoch time in nanoseconds)
</ResponseField>

<ResponseField name="updated_at" type="integer" required>
  Last update timestamp (epoch time in nanoseconds)
</ResponseField>

<ResponseField name="updated_by" type="string">
  ID of user who last updated the channel
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://your-domain.com/api/channels/ch_abc123" \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -H "Content-Type: application/json"
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://your-domain.com/api/channels/ch_abc123",
      headers={"Authorization": "Bearer YOUR_TOKEN"}
  )

  channel = response.json()
  print(f"Channel: {channel['name']}")
  print(f"Unread messages: {channel['unread_count']}")
  print(f"Write access: {channel['write_access']}")
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK (Group Channel) theme={null}
  {
    "id": "ch_abc123",
    "user_id": "user_123",
    "type": "group",
    "name": "Engineering Team",
    "description": "Team discussions",
    "is_private": true,
    "data": {},
    "meta": {},
    "access_grants": [],
    "user_ids": ["user_123", "user_456", "user_789"],
    "users": [
      {
        "id": "user_123",
        "name": "Alice",
        "is_active": true
      },
      {
        "id": "user_456",
        "name": "Bob",
        "is_active": false
      },
      {
        "id": "user_789",
        "name": "Charlie",
        "is_active": true
      }
    ],
    "is_manager": true,
    "write_access": true,
    "user_count": 3,
    "last_read_at": 1709567890123456789,
    "unread_count": 5,
    "created_at": 1709500000000000000,
    "updated_at": 1709567890123456789,
    "updated_by": "user_456"
  }
  ```

  ```json 200 OK (Standard Channel) theme={null}
  {
    "id": "ch_general",
    "user_id": "admin_123",
    "type": "standard",
    "name": "general",
    "description": "General discussion",
    "is_private": false,
    "data": {},
    "meta": {},
    "access_grants": [
      {
        "principal_type": "user",
        "principal_id": "*",
        "permission": "read"
      }
    ],
    "user_ids": null,
    "users": null,
    "is_manager": false,
    "write_access": true,
    "user_count": 42,
    "last_read_at": 1709567890123456789,
    "unread_count": 0,
    "created_at": 1709500000000000000,
    "updated_at": 1709567890123456789,
    "updated_by": "admin_123"
  }
  ```

  ```json 404 Not Found theme={null}
  {
    "detail": "Not found"
  }
  ```

  ```json 403 Forbidden theme={null}
  {
    "detail": "ERROR"
  }
  ```
</ResponseExample>

## Notes

* For `group` and `dm` channels, the response includes the `user_ids` and `users` arrays with member information
* For `standard` channels, these fields are null and the `user_count` represents all users with read access
* The `is_manager` field indicates if the current user can modify channel settings
* The `write_access` field indicates if the current user can post messages
* Admins always have full access to all channels
