Events

Appwrite provides a variety of events that allows your application to react to changes as they happen. A event will fire when a change occurs in your Appwrite project, like when a new user registers or a new file is uploaded to Appwrite. You can subscribe to these events to with Appwrite Functions, Realtime, or Webhooks.

You can subscribe to events for specific resources using their ID or subscribe to changes of all resources of the same type by using a wildcard character * instead of an ID. You can also filter for events of specific actions like create, update, or delete. You can find a list of events for Storage, Databases, Functions, and Authentication services below.

Authentication events

NamePayloadDescription
teams.*Team ObjectThis event triggers on any teams event.
teams.*.createTeam ObjectThis event triggers when a team is created.
teams.*.deleteTeam ObjectThis event triggers when a team is deleted.
teams.*.memberships.*Membership ObjectThis event triggers on any team memberships event.
teams.*.memberships.*.createMembership ObjectThis event triggers when a membership is created.
teams.*.memberships.*.deleteMembership ObjectThis event triggers when a membership is deleted.
teams.*.memberships.*.updateMembership ObjectThis event triggers when a membership is updated.
teams.*.memberships.*.update.statusMembership ObjectThis event triggers when a team memberships status is updated.
teams.*.updateTeam ObjectThis event triggers when a team is updated.
teams.*.update.prefsTeam ObjectThis event triggers when a team's preferences are updated.
users.*User ObjectThis event triggers on any user's event.
users.*.createUser ObjectThis event triggers when a user is created.
users.*.deleteUser ObjectThis event triggers when a user is deleted.
users.*.recovery.*Token ObjectThis event triggers on any user's recovery token event.
users.*.recovery.*.createToken ObjectThis event triggers when a recovery token for a user is created.
users.*.recovery.*.updateToken ObjectThis event triggers when a recovery token for a user is validated.
users.*.sessions.*Session ObjectThis event triggers on any user's sessions event.
users.*.sessions.*.createSession ObjectThis event triggers when a session for a user is created.
users.*.sessions.*.deleteSession ObjectThis event triggers when a session for a user is deleted.
users.*.updateUser ObjectThis event triggers when a user is updated.
users.*.update.emailUser ObjectThis event triggers when a user's email address is updated.
users.*.update.nameUser ObjectThis event triggers when a user's name is updated.
users.*.update.passwordUser ObjectThis event triggers when a user's password is updated.
users.*.update.prefsUser ObjectThis event triggers when a user's preferences is updated.
users.*.update.statusUser ObjectThis event triggers when a user's status is updated.
users.*.verification.*Token ObjectThis event triggers on any user's verification token event.
users.*.verification.*.createToken ObjectThis event triggers when a verification token for a user is created.
users.*.verification.*.updateToken ObjectThis event triggers when a verification token for a user is validated.

Databases events

NamePayloadDescription
databases.*Database ObjectThis event triggers on any database event.
databases.*.collections.*Collection ObjectThis event triggers on any collection event.
databases.*.collections.*.attributes.*Attribute ObjectThis event triggers on any attributes event.
databases.*.collections.*.attributes.*.createAttribute ObjectThis event triggers when an attribute is created.
databases.*.collections.*.attributes.*.deleteAttribute ObjectThis event triggers when an attribute is deleted.
databases.*.collections.*.createCollection ObjectThis event triggers when a collection is created.
databases.*.collections.*.deleteCollection ObjectThis event triggers when a collection is deleted.
databases.*.collections.*.documents.*Document ObjectThis event triggers on any documents event.
databases.*.collections.*.documents.*.createDocument ObjectThis event triggers when a document is created.
databases.*.collections.*.documents.*.deleteDocument ObjectThis event triggers when a document is deleted.
databases.*.collections.*.documents.*.updateDocument ObjectThis event triggers when a document is updated.
databases.*.collections.*.indexes.*Index ObjectThis event triggers on any indexes event.
databases.*.collections.*.indexes.*.createIndex ObjectThis event triggers when an index is created.
databases.*.collections.*.indexes.*.deleteIndex ObjectThis event triggers when an index is deleted.
databases.*.collections.*.updateCollection ObjectThis event triggers when a collection is updated.
databases.*.createDatabase ObjectThis event triggers when a database is created.
databases.*.deleteDatabase ObjectThis event triggers when a database is deleted.
databases.*.updateDatabase ObjectThis event triggers when a database is updated.

Storage events

NamePayloadDescription
buckets.*Bucket ObjectThis event triggers on any buckets event.
buckets.*.createBucket ObjectThis event triggers when a bucket is created.
buckets.*.deleteBucket ObjectThis event triggers when a bucket is deleted.
buckets.*.files.*File ObjectThis event triggers on any files event.
buckets.*.files.*.createFile ObjectThis event triggers when a file is created.
buckets.*.files.*.deleteFile ObjectThis event triggers when a file is deleted.
buckets.*.files.*.updateFile ObjectThis event triggers when a file is updated.
buckets.*.updateBucket ObjectThis event triggers when a bucket is updated.

Functions events

NamePayloadDescription
functions.*Function ObjectThis event triggers on any functions event.
functions.*.createFunction ObjectThis event triggers when a function is created.
functions.*.deleteFunction ObjectThis event triggers when a function is deleted.
functions.*.deployments.*Deployment ObjectThis event triggers on any deployments event.
functions.*.deployments.*.createDeployment ObjectThis event triggers when a deployment is created.
functions.*.deployments.*.deleteDeployment ObjectThis event triggers when a deployment is deleted.
functions.*.deployments.*.updateDeployment ObjectThis event triggers when a deployment is updated.
functions.*.executions.*Execution ObjectThis event triggers on any executions event.
functions.*.executions.*.createExecution ObjectThis event triggers when an execution is created.
functions.*.executions.*.deleteExecution ObjectThis event triggers when an execution is deleted.
functions.*.executions.*.updateExecution ObjectThis event triggers when an execution is updated.
functions.*.updateFunction ObjectThis event triggers when a function is updated.

Known limitations

When events fire, only existing subscriptions for that event will receive the update. If your client or server side integrations lose network connection temporarily, delivery of the event is not guaranteed.

For self-hosted instances, when the Appwrite containers are shut down and restarted, events with pending webhooks and subscription updates will not be delivered.

A change to a resource can cause multiple events to fire. For example adding a new document with ID "lion-king" to a collection with the ID "movies" will cause all of the below events to fire.

JSON
{
  "events": [
      "databases.default.collections.movies.documents.lion-king.create",
      "databases.*.collections.*.documents.*.create", 
      "databases.default.collections.*.documents.lion-king.create", 
      "databases.*.collections.*.documents.lion-king.create", 
      "databases.*.collections.movies.documents.lion-king.create", 
      "databases.default.collections.movies.documents.*.create", 
      "databases.*.collections.movies.documents.*.create", 
      "databases.default.collections.*.documents.*.create", 
      "databases.default.collections.movies.documents.lion-king", 
      "databases.*.collections.*.documents.*", 
      "databases.default.collections.*.documents.lion-king", 
      "databases.*.collections.*.documents.lion-king", 
      "databases.*.collections.movies.documents.lion-king", 
      "databases.default.collections.movies.documents.*", 
      "databases.*.collections.movies.documents.*", 
      "databases.default.collections.*.documents.*", 
      "databases.default.collections.movies", 
      "databases.*.collections.*", 
      "databases.default.collections.*", 
      "databases.*.collections.movies", 
      "databases.default", 
      "databases.*"
  ]
}