Archiving Channels

Channel members can archive a channel for themselves. This is a per-user setting that does not affect other members.

Archived channels function identically to regular channels via the API, but your UI can display them separately. When a channel is archived, the timestamp is recorded and returned as archived_at in the response.

When querying channels, filter by archived: true to retrieve only archived channels, or archived: false to exclude them.

Archive a Channel

// Get a channel
$channel = $client->channel("messaging", "general");

// Archive the channel for user amy
$userId = "amy";
$response = $channel->archive($userId);

// Query for channels that are archived
$response = $client->queryChannels([
    "archived" => true,
], null, [
    "user_id" => $userId
]);

// Unarchive the channel
$response = $channel->unarchive($userId);

Global Archiving

To archive a channel for all users, use filter_tags to tag the channel as archived. This allows you to query for globally archived channels across your application.

// Archive globally by adding an "archived" tag
$channel->update(["filter_tags" => ["archived"]]);

// Query globally archived channels
$archived = $client->queryChannels(["filter_tags" => ["$in" => ["archived"]]]);