# Webhooks

Webhooks are configured within the App (no code required) and send HTTP requests to an external service when a specific event is triggered.


# The Webhook Object

id integer
Primary key of the webhook.

name string
Name for the webhook. Shown in the Admin App.

method string
HTTP method to use. One of GET, POST.

url string
Where to send the request too.

status string
Status of the webhook. One of active, inactive.

data boolean
Whether or not to send the event data to the external endpoint.

actions csv
When to fire the webhook. Can contain create, update, delete.

collections csv
What collections to fire this webhook on.

{
	"data": {
		"id": 1,
		"name": "Build Website",
		"method": "POST",
		"url": "https://example.com/",
		"status": "active",
		"data": true,
		"actions": ["create", "update"],
		"collections": ["articles"]
	}
}

# List Webhooks

List all webhooks that exist in Directus.

# Query Parameters

Supports all global query parameters.

# Returns

An array of up to limit webhook objects. If no items are available, data will be an empty array.

# REST API

GET /webhooks
SEARCH /webhooks

Learn more about SEARCH ->

# GraphQL

POST /graphql/system
type Query {
	webhooks: [directus_webhooks]
}
# Example
query {
	webhooks {
		url
		method
	}
}

# Retrieve a Webhook

List an existing webhook by primary key.

# Query Parameters

Supports all global query parameters.

# Returns

Returns the requested webhook object.

# REST API

GET /webhooks/:id

# GraphQL

POST /graphql/system
type Query {
	webhooks_by_id(id: ID!): directus_webhooks
}
# Examples
query {
	webhooks_by_id(id: 15) {
		url
		actions
		method
	}
}

# Create a Webhook

Create a new webhook.

# Query Parameters

Supports all global query parameters.

# Request Body

A partial webhook object.

name, actions, collections, and url are required.

# Returns

Returns the webhook object for the created webhook.

# REST API

POST /webhooks
# Example
// POST /webhooks

{
	"name": "Example",
	"actions": ["create", "update"],
	"collections": ["articles"],
	"url": "https://example.com"
}

# GraphQL

POST /graphql/system
type Mutation {
	create_webhooks_item(data: create_directus_webhooks_input!): directus_webhooks
}
# Example
mutation {
	create_webhooks_item(
		data: { name: "Example", actions: ["create", "update"], collections: ["articles"], url: "https://example.com" }
	) {
		id
		name
	}
}

# Create Multiple Webhook

Create multiple new webhooks.

# Query Parameters

Supports all global query parameters.

# Request Body

An array of partial webhook object.

name, actions, collections, and url are required.

# Returns

Returns the webhook objects for the created webhooks.

# REST API

POST /webhooks
# Example
// POST /webhooks

[
	{
		"name": "Example",
		"actions": ["create", "update"],
		"collections": ["articles"],
		"url": "https://example.com"
	},
	{
		"name": "Second Example",
		"actions": ["delete"],
		"collections": ["articles"],
		"url": "https://example.com/on-delete"
	}
]

# GraphQL

POST /graphql/system
type Mutation {
	create_webhooks_items(data: [create_directus_webhooks_input!]!): [directus_webhooks]
}
# Example
mutation {
	create_webhooks_items(
		data: [
			{ name: "Example", actions: ["create", "update"], collections: ["articles"], url: "https://example.com" }
			{ name: "Second Example", actions: ["delete"], collections: ["articles"], url: "https://example.com/on-delete" }
		]
	) {
		id
		name
	}
}

# Update a Webhook

Update an existing webhook.

# Query Parameters

Supports all global query parameters.

# Request Body

A partial webhook object.

# Returns

Returns the webhook object for the updated webhook.

# REST API

PATCH /webhooks/:id
# Example
// PATCH /webhooks/15

{
	"name": "Build Website"
}

# GraphQL

POST /graphql/system
type Mutation {
	update_webhooks_item(id: ID!, data: update_directus_webhooks_input!): directus_webhooks
}
# Example
mutation {
	update_webhooks_item(id: 15, data: { name: "Build Website" }) {
		name
	}
}

# Update Multiple Webhooks

Update multiple existing webhooks.

# Query Parameters

Supports all global query parameters.

# Request Body

keys Required
Array of primary keys of the webhooks you'd like to update.

data Required
Any of the webhook object's properties.

# Returns

Returns the webhook objects for the updated webhooks.

# REST API

PATCH /webhooks
# Example
// PATCH /webhooks

{
	"keys": [15, 41],
	"data": {
		"name": "Build Website"
	}
}

# GraphQL

POST /graphql/system
type Mutation {
	update_webhooks_items(ids: [ID!]!, data: update_directus_webhooks_input!): [directus_webhooks]
}
# Example
mutation {
	update_webhooks_items(ids: [15, 41], data: { name: "Build Website" }) {
		name
	}
}

# Delete a Webhook

Delete an existing webhook.

# Returns

Empty body.

# REST API

DELETE /webhooks/:id
# Example
DELETE /webhooks/15

# GraphQL

POST /graphql/system
type Mutation {
	delete_webhooks_item(id: ID!): delete_one
}
# Example
mutation {
	delete_webhooks_item(id: 15) {
		id
	}
}

# Delete Multiple Webhooks

Delete multiple existing webhooks.

# Request Body

An array of webhook primary keys

# Returns

Empty body.

# REST API

DELETE /webhooks
# Example
// DELETE /webhooks

[2, 15, 41]

# GraphQL

POST /graphql/system
type Mutation {
	delete_webhooks_items(ids: [ID!]!): delete_many
}
# Example
mutation {
	delete_webhooks_items(ids: [2, 15, 41]) {
		ids
	}
}