Skip to main content
PATCH
cURL

Authorizations

Authorization
string
header
required

Send Authorization: Bearer whk_…, a webhook key from the dashboard. Webhook keys belong to one network, so pick the server that matches the key. lum_ API keys are not accepted here (401).

Headers

Idempotency-Key
string
required

Required. Choose one key per change and resend it unchanged on a retry: the same key with the same request returns the first result instead of applying the change again, and the same key with a different request returns 409.

Required string length: 1 - 128
Example:

"retry-0001-2026-10-22"

If-Match
string
required

The ETag from GET /v1/subscriptions/{id}, for example "1" (the weak form W/"1" that some proxies produce is accepted too). A stale version returns 412; a missing header returns 428.

Pattern: ^(W/)?"[1-9][0-9]*"$
Example:

"\"1\""

Path Parameters

id
string<uuid>
required

Endpoint (subscription) ID from POST /v1/subscriptions or GET /v1/subscriptions. The example ID is a placeholder and answers 404: use your own.

Example:

"00000000-0000-4000-8000-000000000000"

Body

application/json
name
string
target_url
string<uri>
Maximum string length: 2048
account
string

Empty clears this selector.

asset
string

Empty clears this selector.

contract_addr
string

Empty clears this selector.

event_types
string[]
state
enum<string>
Available options:
active,
paused
pending_policy
enum<string>

What happens to deliveries already queued: drain_old still sends them, cancel_old cancels those not yet attempted. Required when target_url changes; optional when a selector (account, asset, contract_addr, event_types) changes (default drain_old); rejected with 400 when neither changes. A change that alters nothing returns 200 with the version unchanged.

Available options:
drain_old,
cancel_old

Response

The changed endpoint.

subscription
object
required
in_flight_attempts
integer
required
pending_cancellation
boolean
required
warnings
string[]

Non-fatal filter warnings for this change.