Appwrite · AsyncAPI Specification

Appwrite Webhooks

Version

View Spec View on GitHub ApplicationBackendMobileOpen SourceDatabaseStorageServerlessAuthenticationHostingAgentsAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-09-12'
method: searched
source: https://appwrite.io/docs/apis/events and https://appwrite.io/docs/apis/webhooks (read 2026-09-12)
provider: Appwrite
providerId: appwrite
type: Webhooks
note: Appwrite publishes NO AsyncAPI document. What it publishes is a single event vocabulary shared by three delivery
  channels — Webhooks (HTTP POST), Functions (event triggers) and Realtime (WebSocket channels) — so one event name
  subscribes you through whichever channel you pick. The catalogue below is that vocabulary, transcribed from Appwrite's
  own events page. The realtime channel surface is described separately in asyncapi/appwrite-asyncapi.yml, which
  is API Evangelist's AsyncAPI description of Appwrite's WebSocket protocol, not a provider publication.
delivery_channels:
- name: Webhooks
  transport: HTTP POST
  docs: https://appwrite.io/docs/apis/webhooks
- name: Functions
  transport: event-triggered execution
  docs: https://appwrite.io/docs/products/functions
- name: Realtime
  transport: WebSocket
  docs: https://appwrite.io/docs/apis/realtime
subscription:
  wildcards: Use * in place of a resource ID to subscribe to every resource of that type.
  action_filters:
  - create
  - update
  - upsert
  - delete
  example: users.*.create subscribes to every user creation; tablesdb.*.tables.*.rows.*.upsert to every row upsert.
webhook_delivery:
  method: POST
  user_agent: Appwrite-Server
  payload: Mirrors the REST payload of the resource the event names.
  headers:
  - name: X-Appwrite-Webhook-Id
    description: ID of the webhook that triggered the delivery.
  - name: X-Appwrite-Webhook-Events
    description: Names of the events that triggered this delivery.
  - name: X-Appwrite-Webhook-Name
    description: Name of the webhook as configured.
  - name: X-Appwrite-Webhook-User-Id
    description: User ID of the user who triggered the event; empty when an API key triggered it, and absent for
      guest-user events such as account.create.
  - name: X-Appwrite-Webhook-Project-Id
    description: ID of the project that owns the webhook.
  - name: X-Appwrite-Webhook-Signature
    description: HMAC-SHA1 signature of the payload.
  signature:
    header: X-Appwrite-Webhook-Signature
    algorithm: HMAC-SHA1
    encoding: base64
    signed_value: webhook URL concatenated with the raw request body, no separator
    key: the webhook's signature key, shown in the Console and returned once on webhooksCreate
    note: SHA-1, not SHA-256 — worth knowing before wiring a verifier.
  management_api:
    scopes:
    - webhooks.read
    - webhooks.write
    operations:
    - webhooksList
    - webhooksCreate
    - webhooksGet
    - webhooksUpdate
    - webhooksUpdateSecret
    - webhooksDelete
    openapi: openapi/appwrite-webhooks-api-openapi.yml
    secret_note: The signing secret is returned only on create; it is not readable again afterwards.
  options:
  - Certificate verification (SSL/TLS) toggle
  - HTTP authentication credentials on the endpoint
event_count: 91
events_by_service:
  tablesdb: 21
  users: 18
  functions: 12
  teams: 10
  buckets: 8
  sites: 8
  topics: 6
  providers: 4
  messages: 4
events:
- name: teams.*
  group: Authentication
  description: This event triggers on any teams event. Returns [Team Object](/docs/references/cloud/models/team)
- name: teams.*.create
  group: Authentication
  description: This event triggers when a team is created. Returns [Team Object](/docs/references/cloud/models/team)
- name: teams.*.delete
  group: Authentication
  description: This event triggers when a team is deleted. Returns [Team Object](/docs/references/cloud/models/team)
- name: teams.*.memberships.*
  group: Authentication
  description: This event triggers on any team memberships event. Returns [Membership Object](/docs/references/cloud/models/membership)
- name: teams.*.memberships.*.create
  group: Authentication
  description: This event triggers when a membership is created. Returns [Membership Object](/docs/references/cloud/models/membership)
- name: teams.*.memberships.*.delete
  group: Authentication
  description: This event triggers when a membership is deleted. Returns [Membership Object](/docs/references/cloud/models/membership)
- name: teams.*.memberships.*.update
  group: Authentication
  description: This event triggers when a membership is updated. Returns [Membership Object](/docs/references/cloud/models/membership)
- name: teams.*.memberships.*.update.status
  group: Authentication
  description: This event triggers when a team memberships status is updated. Returns [Membership Object](/docs/references/cloud/models/membership)
- name: teams.*.update
  group: Authentication
  description: This event triggers when a team is updated. Returns [Team Object](/docs/references/cloud/models/team)
- name: teams.*.update.prefs
  group: Authentication
  description: This event triggers when a team's preferences are updated. Returns [Team Object](/docs/references/cloud/models/team)
- name: users.*
  group: Authentication
  description: This event triggers on any user's event. Returns [User Object](/docs/references/cloud/models/user)
- name: users.*.create
  group: Authentication
  description: This event triggers when a user is created. Returns [User Object](/docs/references/cloud/models/user)
- name: users.*.delete
  group: Authentication
  description: This event triggers when a user is deleted. Returns [User Object](/docs/references/cloud/models/user)
- name: users.*.recovery.*
  group: Authentication
  description: This event triggers on any user's recovery token event. Returns [Token Object](/docs/references/cloud/models/token)
- name: users.*.recovery.*.create
  group: Authentication
  description: This event triggers when a recovery token for a user is created. Returns [Token Object](/docs/references/cloud/models/token)
- name: users.*.recovery.*.update
  group: Authentication
  description: This event triggers when a recovery token for a user is validated. Returns [Token Object](/docs/references/cloud/models/token)
- name: users.*.sessions.*
  group: Authentication
  description: This event triggers on any user's sessions event. Returns [Session Object](/docs/references/cloud/models/session)
- name: users.*.sessions.*.create
  group: Authentication
  description: This event triggers when a session for a user is created. Returns [Session Object](/docs/references/cloud/models/session)
- name: users.*.sessions.*.delete
  group: Authentication
  description: This event triggers when a session for a user is deleted. Returns [Session Object](/docs/references/cloud/models/session)
- name: users.*.update
  group: Authentication
  description: This event triggers when a user is updated. Returns [User Object](/docs/references/cloud/models/user)
- name: users.*.update.email
  group: Authentication
  description: This event triggers when a user's email address is updated. Returns [User Object](/docs/references/cloud/models/user)
- name: users.*.update.name
  group: Authentication
  description: This event triggers when a user's name is updated. Returns [User Object](/docs/references/cloud/models/user)
- name: users.*.update.password
  group: Authentication
  description: This event triggers when a user's password is updated. Returns [User Object](/docs/references/cloud/models/user)
- name: users.*.update.prefs
  group: Authentication
  description: This event triggers when a user's preferences is updated. Returns [User Object](/docs/references/cloud/models/user)
- name: users.*.update.status
  group: Authentication
  description: This event triggers when a user's status is updated. Returns [User Object](/docs/references/cloud/models/user)
- name: users.*.verification.*
  group: Authentication
  description: This event triggers on any user's verification token event. Returns [Token Object](/docs/references/cloud/models/token)
- name: users.*.verification.*.create
  group: Authentication
  description: This event triggers when a verification token for a user is created. Returns [Token Object](/docs/references/cloud/models/token)
- name: users.*.verification.*.update
  group: Authentication
  description: This event triggers when a verification token for a user is validated. Returns [Token Object](/docs/references/cloud/models/token)
    **Databases** Name Description
- name: tablesdb.*
  group: Databases
  description: This event triggers on any database event. Returns [Database Object](/docs/references/cloud/models/database)
- name: tablesdb.*.tables.*
  group: Databases
  description: This event triggers on any table event. Returns [Table Object](/docs/references/cloud/models/table)
- name: tablesdb.*.tables.*.columns.*
  group: Databases
  description: This event triggers on any columns event. Returns [Column Object](/docs/references/cloud/models/columnList)
- name: tablesdb.*.tables.*.columns.*.create
  group: Databases
  description: This event triggers when a column is created. Returns [Column Object](/docs/references/cloud/models/columnList)
- name: tablesdb.*.tables.*.columns.*.update
  group: Databases
  description: This event triggers when a column is updated. Returns [Column Object](/docs/references/cloud/models/columnList)
- name: tablesdb.*.tables.*.columns.*.delete
  group: Databases
  description: This event triggers when a column is deleted. Returns [Column Object](/docs/references/cloud/models/columnList)
- name: tablesdb.*.tables.*.create
  group: Databases
  description: This event triggers when a table is created. Returns [Table Object](/docs/references/cloud/models/table)
- name: tablesdb.*.tables.*.delete
  group: Databases
  description: This event triggers when a table is deleted. Returns [Table Object](/docs/references/cloud/models/table)
- name: tablesdb.*.tables.*.rows.*
  group: Databases
  description: This event triggers on any rows event. Returns [Row Object](/docs/references/cloud/models/row)
- name: tablesdb.*.tables.*.rows.*.create
  group: Databases
  description: This event triggers when a row is created. Returns [Row Object](/docs/references/cloud/models/row)
- name: tablesdb.*.tables.*.rows.*.delete
  group: Databases
  description: This event triggers when a row is deleted. Returns [Row Object](/docs/references/cloud/models/row)
- name: tablesdb.*.tables.*.rows.*.update
  group: Databases
  description: This event triggers when a row is updated. Returns [Row Object](/docs/references/cloud/models/row)
- name: tablesdb.*.tables.*.rows.*.upsert
  group: Databases
  description: This event triggers when a row is upserted. Returns [Row Object](/docs/references/cloud/models/row)
- name: tablesdb.*.tables.*.indexes.*
  group: Databases
  description: This event triggers on any indexes event. Returns [Index Object](/docs/references/cloud/models/columnIndex)
- name: tablesdb.*.tables.*.indexes.*.create
  group: Databases
  description: This event triggers when an index is created. Returns [Index Object](/docs/references/cloud/models/columnIndex)
- name: tablesdb.*.tables.*.indexes.*.update
  group: Databases
  description: This event triggers when an index is updated. Returns [Index Object](/docs/references/cloud/models/columnIndex)
- name: tablesdb.*.tables.*.indexes.*.delete
  group: Databases
  description: This event triggers when an index is deleted. Returns [Index Object](/docs/references/cloud/models/columnIndex)
- name: tablesdb.*.tables.*.update
  group: Databases
  description: This event triggers when a table is updated. Returns [Table Object](/docs/references/cloud/models/table)
- name: tablesdb.*.create
  group: Databases
  description: This event triggers when a database is created. Returns [Database Object](/docs/references/cloud/models/database)
- name: tablesdb.*.delete
  group: Databases
  description: This event triggers when a database is deleted. Returns [Database Object](/docs/references/cloud/models/database)
- name: tablesdb.*.update
  group: Databases
  description: This event triggers when a database is updated. Returns [Database Object](/docs/references/cloud/models/database)
    **Note** Collections, documents, and attributes have been deprecated in favour of tables, rows, and columns.
    The `databases.*` event prefix has been replaced by `tablesdb.*`. **Storage** Name Description
- name: buckets.*
  group: Storage
  description: This event triggers on any buckets event. Returns [Bucket Object](/docs/references/cloud/models/bucket)
- name: buckets.*.create
  group: Storage
  description: This event triggers when a bucket is created. Returns [Bucket Object](/docs/references/cloud/models/bucket)
- name: buckets.*.delete
  group: Storage
  description: This event triggers when a bucket is deleted. Returns [Bucket Object](/docs/references/cloud/models/bucket)
- name: buckets.*.files.*
  group: Storage
  description: This event triggers on any files event. Returns [File Object](/docs/references/cloud/models/file)
- name: buckets.*.files.*.create
  group: Storage
  description: Since the Appwrite SDK chunks files in 5MB increments, this event will trigger for each 5MB chunk.
    A file is fully uploaded when `chunksTotal` equals `chunksUploaded`. Returns [File Object](/docs/references/cloud/models/file)
- name: buckets.*.files.*.delete
  group: Storage
  description: This event triggers when a file is deleted. Returns [File Object](/docs/references/cloud/models/file)
- name: buckets.*.files.*.update
  group: Storage
  description: This event triggers when a file is updated. Returns [File Object](/docs/references/cloud/models/file)
- name: buckets.*.update
  group: Storage
  description: This event triggers when a bucket is updated. Returns [Bucket Object](/docs/references/cloud/models/bucket)
    **Functions** Name Description
- name: functions.*
  group: Functions
  description: This event triggers on any functions event. Returns [Function Object](/docs/references/cloud/models/function)
- name: functions.*.create
  group: Functions
  description: This event triggers when a function is created. Returns [Function Object](/docs/references/cloud/models/function)
- name: functions.*.delete
  group: Functions
  description: This event triggers when a function is deleted. Returns [Function Object](/docs/references/cloud/models/function)
- name: functions.*.deployments.*
  group: Functions
  description: This event triggers on any deployments event. Returns [Deployment Object](/docs/references/cloud/models/deployment)
- name: functions.*.deployments.*.create
  group: Functions
  description: This event triggers when a deployment is created. Returns [Deployment Object](/docs/references/cloud/models/deployment)
- name: functions.*.deployments.*.delete
  group: Functions
  description: This event triggers when a deployment is deleted. Returns [Deployment Object](/docs/references/cloud/models/deployment)
- name: functions.*.deployments.*.update
  group: Functions
  description: This event triggers when a deployment is updated. Returns [Deployment Object](/docs/references/cloud/models/deployment)
- name: functions.*.executions.*
  group: Functions
  description: This event triggers on any executions event. Returns [Execution Object](/docs/references/cloud/models/execution)
- name: functions.*.executions.*.create
  group: Functions
  description: This event triggers when an execution is created. Returns [Execution Object](/docs/references/cloud/models/execution)
- name: functions.*.executions.*.delete
  group: Functions
  description: This event triggers when an execution is deleted. Returns [Execution Object](/docs/references/cloud/models/execution)
- name: functions.*.executions.*.update
  group: Functions
  description: This event triggers when an execution is updated. Returns [Execution Object](/docs/references/cloud/models/execution)
- name: functions.*.update
  group: Functions
  description: This event triggers when a function is updated. Returns [Function Object](/docs/references/cloud/models/function)
    **Sites** Name Description
- name: sites.*
  group: Sites
  description: This event triggers on any sites event. Returns [Site Object](/docs/references/cloud/models/site)
- name: sites.*.create
  group: Sites
  description: This event triggers when a site is created. Returns [Site Object](/docs/references/cloud/models/site)
- name: sites.*.delete
  group: Sites
  description: This event triggers when a site is deleted. Returns [Site Object](/docs/references/cloud/models/site)
- name: sites.*.deployments.*
  group: Sites
  description: This event triggers on any deployments event. Returns [Deployment Object](/docs/references/cloud/models/deployment)
- name: sites.*.deployments.*.create
  group: Sites
  description: This event triggers when a deployment is created. Returns [Deployment Object](/docs/references/cloud/models/deployment)
- name: sites.*.deployments.*.delete
  group: Sites
  description: This event triggers when a deployment is deleted. Returns [Deployment Object](/docs/references/cloud/models/deployment)
- name: sites.*.deployments.*.update
  group: Sites
  description: This event triggers when a deployment is updated. Returns [Deployment Object](/docs/references/cloud/models/deployment)
- name: sites.*.update
  group: Sites
  description: This event triggers when a site is updated. Returns [Site Object](/docs/references/cloud/models/site)
    **Messaging** Name Description
- name: providers.*
  group: Messaging
  description: This event triggers on any providers event. Returns [Provider Object](/docs/references/cloud/models/provider)
- name: providers.*.create
  group: Messaging
  description: This event triggers when a provider is created. Returns [Provider Object](/docs/references/cloud/models/provider)
- name: providers.*.delete
  group: Messaging
  description: This event triggers when a provider is deleted. Returns [Provider Object](/docs/references/cloud/models/provider)
- name: providers.*.update
  group: Messaging
  description: This event triggers when a provider is updated. Returns [Provider Object](/docs/references/cloud/models/provider)
- name: topics.*
  group: Messaging
  description: This event triggers on any topic event. Returns [Topic Object](/docs/references/cloud/models/topic)
- name: topics.*.create
  group: Messaging
  description: This event triggers when a topic is created. Returns [Topic Object](/docs/references/cloud/models/topic)
- name: topics.*.delete
  group: Messaging
  description: This event triggers when a topic is deleted. Returns [Topic Object](/docs/references/cloud/models/topic)
- name: topics.*.update
  group: Messaging
  description: This event triggers when a topic is updated. Returns [Topic Object](/docs/references/cloud/models/topic)
- name: topics.*.subscribers.*.create
  group: Messaging
  description: This event triggers when a subscriber to a topic is created. Returns [Topic Object](/docs/references/cloud/models/topic)
- name: topics.*.subscribers.*.delete
  group: Messaging
  description: This event triggers when a subscriber to a topic is deleted. Returns [Topic Object](/docs/references/cloud/models/topic)
- name: messages.*
  group: Messaging
  description: This event triggers on any message event. Returns [Message Object](/docs/references/cloud/models/message)
- name: messages.*.create
  group: Messaging
  description: This event triggers when a message is created. Returns [Message Object](/docs/references/cloud/models/message)
- name: messages.*.delete
  group: Messaging
  description: This event triggers when a message is deleted. Returns [Message Object](/docs/references/cloud/models/message)
- name: messages.*.update
  group: Messaging
  description: 'This event triggers when a message is updated. Returns [Message Object](/docs/references/cloud/models/message)
    ### 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 row with ID `"lion-king"` to a table with the ID `"movies"` will cause all
    of the below events to fire. ```json { "events": [ "tablesdb.default.tables.movies.rows.lion-king.create", "tablesdb.*.tables.*.rows.*.create",
    "tablesdb.default.tables.*.rows.lion-king.create", "tablesdb.*.tables.*.rows.lion-king.create", "tablesdb.*.tables.movies.rows.lion-king.create",
    "tablesdb.default.tables.movies.rows.*.create", "tablesdb.*.tables.movies.rows.*.create", "tablesdb.default.tables.*.rows.*.create",
    "tablesdb.default.tables.movies.rows.lion-king", "tablesdb.*.tables.*.rows.*", "tablesdb.default.tables.*.rows.lion-king",
    "tablesdb.*.tables.*.rows.lion-king", "tablesdb.*.tables.movies.rows.lion-king", "tablesdb.default.tables.movies.rows.*",
    "tablesdb.*.tables.movies.rows.*", "tablesdb.default.tables.*.rows.*", "tablesdb.default.tables.movies", "tablesdb.*.tables.*",
    "tablesdb.default.tables.*", "tablesdb.*.tables.movies", "tablesdb.default", "tablesdb.*" ] } ```'
related:
  asyncapi: asyncapi/appwrite-asyncapi.yml
  conventions: conventions/appwrite-conventions.yml
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/appwrite-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.