ClickUp Chat API v3 Channel Filtering Issue
closed
Kevin Fairbanks
Issue Summary
The ClickUp Chat API v3 endpoint /api/v3/workspaces/{workspace_id}/chat/channels is not respecting the room_types parameter filter when set to CHANNEL. Despite explicitly requesting only channels of type CHANNEL, the API continues to return channels of all types including DM and GROUP_DM.
API Endpoint
Expected Behavior
When the room_types parameter is set to CHANNEL, the API should only return channels with type: "CHANNEL".
Actual Behavior
The API returns channels of all types (CHANNEL, DM, GROUP_DM) regardless of the room_types filter.
Example Request
Headers:
Authorization: Bearer {access_token}
Content-Type: application/json
Example Response (Problematic)
The API returns channels with mixed types despite the filter:
{
"channels": [
{"id": "123", "name": "General", "type": "CHANNEL"},
{"id": "456", "name": "", "type": "DM"},
{"id": "789", "name": "", "type": "GROUP_DM"},
{"id": "101", "name": "Development", "type": "CHANNEL"}
]
}
Observed channel types returned: ['GROUP_DM', 'CHANNEL', 'DM']
Expected channel types: ['CHANNEL'] only
Impact
This forces developers to implement client-side filtering after receiving the API response, which:
- Wastes bandwidth by returning unwanted data
- Defeats the purpose of server-side filtering
- May cause pagination issues when most results are filtered out client-side
Additional Context
- This affects workspace with many direct messages and group DMs
- We tested with a workspace containing ~100 channels of mixed types
- The filter works correctly for other parameters like limit and with_comment_since
- Only the room_types parameter appears to be ignored
Request
Please investigate why the room_types parameter is not being applied correctly to filter results server-side, or provide documentation if there's a different expected format for this parameter.
Log In
Brendan W
updated the status to
closed
Brendan W
Thanks for the detailed report. We reproduced it, and the endpoint is working, but the parameter names in your request aren't the ones the v3 endpoint uses:
- The type filter is channel_types, notroom_types.
- The time filter is with_message_since, notwith_comment_since.
The endpoint ignores query parameters it doesn't recognize, without returning an error. So both
room_types
and with_comment_since
were dropped, and you got every Channel, DM and Group DM back. Only limit
was actually applied.This request returns only Channels:
GET /api/v3/workspaces/{workspace_id}/chat/channels?channel_types=CHANNEL&limit=100&with_message_since=1234567890000
A few details:
- Accepted values are CHANNEL,DMandGROUP_DM. They're case-sensitive.
- To request more than one type, repeat the parameter: channel_types=CHANNEL&channel_types=GROUP_DM. Thechannel_types[]=form also works. A comma-separated list likechannel_types=CHANNEL,DMisn't supported and returns a 400.
- When with_message_sinceis set, Channels that have never had a message aren't returned, whatever timestamp you pass. Leavewith_message_sinceout if you need every Channel, including empty ones.
You're right that our API reference doesn't list the accepted
channel_types
values clearly. Thanks for flagging it.