---
title: "Register webhook"
method: POST
path: "/v1/default/banks/{bank_id}/webhooks"
tags: ["Webhooks"]
---

# Register webhook

`POST /v1/default/banks/{bank_id}/webhooks`

## Request

- Base URL: `https://hindsight.vectorize.io` (the document declares no server; this is the origin it was published from)
- URL: `https://hindsight.vectorize.io/v1/default/banks/{bank_id}/webhooks`
- Auth: none declared
- TypeScript: <https://skmtc.dev/vectorize/apis/hindsight-http-api/docs/v1/default/banks/:bank_id/webhooks/post.ts> (a function with typed inputs; its response is checked against the schema)

Register a webhook endpoint to receive event notifications for this bank.

## Path parameters

- `bank_id` string, required

## Headers

- `authorization` string, nullable

## Request body

- CreateWebhookRequest: Request model for registering a webhook.
  - `url` string, required: HTTP(S) endpoint URL to deliver events to
  - `secret` string, nullable: HMAC-SHA256 signing secret (optional)
  - `event_types` string[]: List of event types to deliver. Supported: 'retain.completed', 'consolidation.completed', 'memory_defense.triggered'.
  - `enabled` boolean: Whether this webhook is active
  - `http_config` WebhookHttpConfig: HTTP delivery configuration for a webhook.
    - `method` string: HTTP method: GET or POST
    - `timeout_seconds` integer: HTTP request timeout in seconds
    - `headers` object: Custom HTTP headers
    - `params` object: Custom HTTP query parameters

## Response `201`

Successful Response

- WebhookResponse: Response model for a webhook.
  - `id` string, required
  - `bank_id` string, nullable, required
  - `url` string, required
  - `secret` string, nullable: Signing secret (redacted in responses)
  - `event_types` string[], required
  - `enabled` boolean, required
  - `http_config` WebhookHttpConfig: HTTP delivery configuration for a webhook.
    - `method` string: HTTP method: GET or POST
    - `timeout_seconds` integer: HTTP request timeout in seconds
    - `headers` object: Custom HTTP headers
    - `params` object: Custom HTTP query parameters
  - `created_at` string, nullable
  - `updated_at` string, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-04** `4fda98b75f63`: 1 warning
  - removed the optional property `detail/items/url` from the response with the `422` status
- **2026-05-15** `0d08f271b9db`: 3 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status
  - added the optional property `detail/items/url` to the response with the `422` status

[Operation history](https://skmtc.dev/vectorize/apis/hindsight-http-api/changes/v1/default/banks/:bank_id/webhooks/post.md)

---

[API](https://skmtc.dev/vectorize/apis/hindsight-http-api.md) - [All operations](https://skmtc.dev/vectorize/apis/hindsight-http-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vectorize/apis/hindsight-http-api/revisions/45e711cd0897?raw)
