Skip to content

Channels

Channels define which Appwrite resources you want to subscribe to. When subscribing to a channel, you will receive callbacks for events related to that channel's resources. The Appwrite SDKs provide a Channel helper class to build type-safe channel subscriptions using a fluent API.

Channel helpers

Instead of manually writing channel strings, you can use the Channel helper class to build type-safe channel subscriptions. The helper provides a fluent API that makes it easier to construct channel strings and reduces errors.

The Channel helper supports all available channels and allows you to:

  • Build channels with a fluent, chainable API
  • Optionally specify resource IDs (omit IDs to subscribe to all resources)
  • Add event filters like .create(), .update(), or .delete()

Available channels

A list of all channels available you can subscribe to. When using Channel helpers, leaving an ID blank will subscribe using *.

ChannelChannel HelperDescription
account
Channel.account()
All account related events (session create, name update...)
tablesdb.<ID>.tables.<ID>.rows
Channel.tablesdb('<DATABASE_ID>').table('<TABLE_ID>').row()
Any create/update/delete events to any row in a table
rows
Channel.rows()
Any create/update/delete events to any row
tablesdb.<ID>.tables.<ID>.rows.<ID>
Channel.tablesdb('<DATABASE_ID>').table('<TABLE_ID>').row('<ROW_ID>')
Any update/delete events to a given row
files
Channel.files()
Any create/update/delete events to any file
buckets.<ID>.files.<ID>
Channel.bucket('<BUCKET_ID>').file('<FILE_ID>')
Any update/delete events to a given file of the given bucket
buckets.<ID>.files
Channel.bucket('<BUCKET_ID>').file()
Any update/delete events to any file of the given bucket
teams.*
Channel.teams()
Any create/update/delete events to any team
teams.<ID>
Channel.team('<TEAM_ID>')
Any update/delete events to a given team
memberships
Channel.memberships()
Any create/update/delete events to any membership
memberships.<ID>
Channel.membership('<MEMBERSHIP_ID>')
Any update/delete events to a given membership
executions
Channel.executions()
Any update to executions
executions.<ID>
Channel.execution('<ID>')
Any update to a given execution
functions.<ID>
Channel.function('<FUNCTION_ID>')
Any execution event to a given function

Event filters

You can also filter events by appending event methods to the channel helpers:

  • .create() - Listen only to create events
  • .update() - Listen only to update events
  • .delete() - Listen only to delete events

For example, Channel.tablesdb('<DATABASE_ID>').table('<TABLE_ID>').row('<ROW_ID>').update() will only trigger on row updates.