Appwrite Webhooks API
The Webhooks service allows you to manage your project webhooks. 6 operations across 3 paths in the Appwrite 2.0.0 OpenAPI.
The Webhooks service allows you to manage your project webhooks. 6 operations across 3 paths in the Appwrite 2.0.0 OpenAPI.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/appwrite-webhooks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.0.0
info:
title: Appwrite Webhooks API
description: Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
version: 2.0.0
termsOfService: https://appwrite.io/policy/terms
contact:
name: Appwrite Team
url: https://appwrite.io/support
email: team@appwrite.io
license:
name: BSD-3-Clause
url: https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE
servers:
- url: https://cloud.appwrite.io/v1
description: Appwrite Cloud endpoint.
- url: https://{region}.cloud.appwrite.io/v1
description: Appwrite Cloud regional endpoint. Replace `{region}` with your project region.
variables:
region:
default: fra
description: Appwrite Cloud region.
tags:
- name: webhooks
description: The Webhooks service allows you to manage your project webhooks.
paths:
/webhooks:
get:
summary: List webhooks
operationId: webhooksList
tags:
- webhooks
description: Get a list of all webhooks belonging to the project. You can use the query params to filter your results.
responses:
'200':
description: Webhooks List
content:
application/json:
schema:
$ref: '#/components/schemas/webhookList'
deprecated: false
x-appwrite:
group: null
demo: webhooks/list.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: webhooks.read
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: queries
description: 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, url, authUsername, tls, events, enabled, logs, attempts'
required: false
schema:
type: array
items:
type: string
default: []
in: query
- name: total
description: When set to false, the total count returned will be 0 and will not be calculated.
required: false
schema:
type: boolean
example: false
default: true
in: query
post:
summary: Create webhook
operationId: webhooksCreate
tags:
- webhooks
description: Create a new webhook. Use this endpoint to configure a URL that will receive events from Appwrite when specific events occur.
responses:
'201':
description: Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/webhook'
deprecated: false
x-appwrite:
group: null
demo: webhooks/create.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: webhooks.write
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
requestBody:
content:
application/json:
schema:
type: object
properties:
webhookId:
description: Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
type: string
example: <WEBHOOK_ID>
x-appwrite:
idGenerator: ID.unique
url:
description: Webhook URL.
type: string
example: https://example.com/webhook
name:
description: 'Webhook name. Max length: 128 chars.'
type: string
example: <NAME>
events:
description: Events list. Maximum of 100 events are allowed.
type: array
items:
type: string
enabled:
description: Enable or disable a webhook.
type: boolean
default: true
example: false
tls:
description: Certificate verification, false for disabled or true for enabled.
type: boolean
default: false
example: false
authUsername:
description: 'Webhook HTTP user. Max length: 256 chars.'
type: string
default: ''
example: <AUTH_USERNAME>
authPassword:
description: 'Webhook HTTP password. Max length: 256 chars.'
type: string
default: ''
example: password
format: password
secret:
description: Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.
type: string
example: <SECRET>
nullable: true
required:
- webhookId
- url
- name
- events
/webhooks/{webhookId}:
get:
summary: Get webhook
operationId: webhooksGet
tags:
- webhooks
description: 'Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. '
responses:
'200':
description: Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/webhook'
deprecated: false
x-appwrite:
group: null
demo: webhooks/get.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: webhooks.read
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: webhookId
description: Webhook ID.
required: true
schema:
type: string
example: <WEBHOOK_ID>
in: path
put:
summary: Update webhook
operationId: webhooksUpdate
tags:
- webhooks
description: Update a webhook by its unique ID. Use this endpoint to update the URL, events, or status of an existing webhook.
responses:
'200':
description: Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/webhook'
deprecated: false
x-appwrite:
group: null
demo: webhooks/update.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: webhooks.write
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: webhookId
description: Webhook ID.
required: true
schema:
type: string
example: <WEBHOOK_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
description: 'Webhook name. Max length: 128 chars.'
type: string
example: <NAME>
url:
description: Webhook URL.
type: string
example: https://example.com/webhook
events:
description: Events list. Maximum of 100 events are allowed.
type: array
items:
type: string
enabled:
description: Enable or disable a webhook.
type: boolean
default: true
example: false
tls:
description: Certificate verification, false for disabled or true for enabled.
type: boolean
default: false
example: false
authUsername:
description: 'Webhook HTTP user. Max length: 256 chars.'
type: string
default: ''
example: <AUTH_USERNAME>
authPassword:
description: 'Webhook HTTP password. Max length: 256 chars.'
type: string
default: ''
example: password
format: password
required:
- name
- url
- events
delete:
summary: Delete webhook
operationId: webhooksDelete
tags:
- webhooks
description: 'Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. '
responses:
'204':
description: No content
deprecated: false
x-appwrite:
group: null
demo: webhooks/delete.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: webhooks.write
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: webhookId
description: Webhook ID.
required: true
schema:
type: string
example: <WEBHOOK_ID>
in: path
/webhooks/{webhookId}/secret:
patch:
summary: Update webhook secret key
operationId: webhooksUpdateSecret
tags:
- webhooks
description: Update the webhook signing key. This endpoint can be used to regenerate the signing key used to sign and validate payload deliveries for a specific webhook.
responses:
'200':
description: Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/webhook'
deprecated: false
x-appwrite:
group: null
demo: webhooks/update-secret.md
rate-limit: 0
rate-time: 3600
rate-key: url:{url},ip:{ip}
scope: webhooks.write
platforms:
- console
- server
packaging: false
public: true
auth:
console:
Project: []
server:
Project: []
Key: []
security:
- Project: []
Key: []
parameters:
- name: webhookId
description: Webhook ID.
required: true
schema:
type: string
example: <WEBHOOK_ID>
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
secret:
description: Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.
type: string
example: <SECRET>
nullable: true
components:
schemas:
webhook:
description: Webhook
type: object
properties:
$id:
type: string
description: Webhook ID.
example: 5e5ea5c16897e
$createdAt:
type: string
description: Webhook creation date in ISO 8601 format.
example: '2020-10-15T06:38:00.000+00:00'
$updatedAt:
type: string
description: Webhook update date in ISO 8601 format.
example: '2020-10-15T06:38:00.000+00:00'
name:
type: string
description: Webhook name.
example: My Webhook
url:
type: string
description: Webhook URL endpoint.
example: https://example.com/webhook
events:
type: array
description: Webhook trigger events.
items:
type: string
example:
- databases.tables.update
- databases.collections.update
tls:
type: boolean
description: Indicates if SSL / TLS certificate verification is enabled.
example: true
authUsername:
type: string
description: HTTP basic authentication username.
example: username
authPassword:
type: string
description: HTTP basic authentication password.
format: password
example: webhook-password
secret:
type: string
description: Signature key which can be used to validate incoming webhook payloads. Only returned on creation and secret rotation.
example: ad3d581ca230e2b7059c545e5a
enabled:
type: boolean
description: Indicates if this webhook is enabled.
example: true
logs:
type: string
description: Webhook error logs from the most recent failure.
example: Failed to connect to remote server.
attempts:
type: integer
description: Number of consecutive failed webhook attempts.
format: int32
example: 10
required:
- $id
- $createdAt
- $updatedAt
- name
- url
- events
- tls
- authUsername
- authPassword
- secret
- enabled
- logs
- attempts
example:
$id: 5e5ea5c16897e
$createdAt: '2020-10-15T06:38:00.000+00:00'
$updatedAt: '2020-10-15T06:38:00.000+00:00'
name: My Webhook
url: https://example.com/webhook
events:
- databases.tables.update
- databases.collections.update
tls: true
authUsername: username
authPassword: webhook-password
secret: ad3d581ca230e2b7059c545e5a
enabled: true
logs: Failed to connect to remote server.
attempts: 10
webhookList:
description: Webhooks List
type: object
properties:
total:
type: integer
description: Total number of webhooks that matched your query.
format: int32
example: 5
webhooks:
type: array
description: List of webhooks.
items:
$ref: '#/components/schemas/webhook'
example: []
required:
- total
- webhooks
example:
total: 5
webhooks: ''
securitySchemes:
Key:
type: apiKey
name: X-Appwrite-Key
description: Your secret API key
in: header
x-appwrite:
platforms:
- server
- console
- manager
demo: <YOUR_API_KEY>
Project:
type: apiKey
name: X-Appwrite-Project
description: Your project ID
in: header
x-appwrite:
platforms:
- client
- server
- console
demo: <YOUR_PROJECT_ID>
externalDocs:
description: Full API docs, specs and tutorials
url: https://appwrite.io/docs