---
title: "Create a signed Item-change webhook"
method: POST
path: "/api/webhooks"
tags: ["Webhooks"]
---

# Create a signed Item-change webhook

`POST /api/webhooks`

## Request

- Base URL: `https://keep.md`
- URL: `https://keep.md/api/webhooks`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `keep.session_token`

Create a signed Item-change webhook.

## Headers

- `Keep-API-Version` string

## Request body

- object
  - `name` string
  - `url` string, uri, required
  - `eventTypes` string[]
  - `resourceScope` ResourceScope
    - `tagSlugs` string[]
    - `collectionIds` string[]
  - `status` 'active' | 'disabled'

## Response `201`

Created webhook. The signing secret is returned once.

- object
  - `webhook` Webhook, required
    - `id` string, required
    - `name` string
    - `url` string, uri, required
    - `eventTypes` string[], required
    - `resourceScope` ResourceScope
      - `tagSlugs` string[]
      - `collectionIds` string[]
    - `includeContent` false
    - `status` 'active' | 'disabled', required
    - `failureCount` integer, required
    - `lastSuccessAt` integer
    - `lastFailureAt` integer
    - `lastError` string
    - `createdAt` integer, required
    - `updatedAt` integer, required
  - `secret` string, required

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: The credential lacks access or the plan does not include the feature

---

[API](https://skmtc.dev/keep/apis/keep-api.md) · [All operations](https://skmtc.dev/keep/apis/keep-api/llms.txt) · [OpenAPI document](https://skmtc.dev/keep/apis/keep-api/revisions/a338a455bd0f?raw)
