Webhooks

Update a webhook

Change the destination, the subscription, the label, the signing secret or whether deliveries are attempted at all. At least one field is required. A secret sent here is never returned. Setting active: false is the reversible half of DELETE: deliveries stop, the endpoint and its history stay. It is what to reach for while a receiver is being repaired.

patch/v1/projects/{project_id}/webhooks/{webhook_id}

Request

  • Base URL: https://api.naturali.ai
  • URL: https://api.naturali.ai/v1/projects/{project_id}/webhooks/{webhook_id}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://api.naturali.ai/authorize, token URL https://api.naturali.ai/token, scopes: mcp:access)

Request body

urlstring uri
eventsstring[]

Which events this endpoint receives. Each entry is an exact type (generation.completed), a resource wildcard (generation.*), or * for everything. A bare resource name (generation) matches nothing and is rejected.

descriptionstring nullable
activeboolean
secretstring

A signing key of your choosing, 32 to 256 characters with no whitespace. Omit it on create to have one generated.

Example request

{
  "url": "https://example.com/hooks/naturali-v2",
  "events": [
    "generation.*",
    "message.received"
  ],
  "description": "billing service (staging)",
  "secret": "my-receiver-signing-key-0123456789ab"
}

Response

Webhook updated.

idstring required

Public webhook ID (whk_ prefix).

project_idstring required
urlstring uri required

Where deliveries are POSTed.

eventsstring[] required

Which events this endpoint receives. Each entry is an exact type (generation.completed), a resource wildcard (generation.*), or * for everything. A bare resource name (generation) matches nothing and is rejected.

descriptionstring nullable required

Operator-facing label.

activeboolean required

Whether deliveries are attempted.

created_atstring date-time required
updated_atstring date-time required

Example response

{
  "id": "whk_V1StGXR8Z5jdHi6B",
  "project_id": "proj_V1StGXR8Z5jdHi6B",
  "url": "https://example.com/hooks/naturali",
  "events": [
    "generation.*",
    "message.received"
  ],
  "description": "billing service",
  "active": true,
  "created_at": "2026-07-31T00:00:00.000Z",
  "updated_at": "2026-07-31T00:00:00.000Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.