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
const channel = client.channel("messaging", "example");

// Archive the channel
await channel.archive();

// Query for channels that are not archived
const resp = await client.queryChannels({ archived: false });

// Unarchive the channel
await channel.unarchive();

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
await channel.update({ filter_tags: ["archived"] });

// Query globally archived channels
const archived = await client.queryChannels({
  filter_tags: { $in: ["archived"] },
});