Webhooks

Update an endpoint

Changes the URL, the events or the description, or pauses the endpoint.

PATCH
/v1/webhooks/endpoints/{id}

Changes only the fields you send, and at least one must be there: an empty body {} gives 400. Use enabled: false to pause the endpoint without losing it, and enabled: true to turn it back on. The secret stays the same.

A new URL follows the same rule as creation: in production, only public https.

Authorization

api_key
headerAuthorizationBearer <token>

API key (mk_...)

Path Parameters

id*string

Identifier of the resource, as returned by the API.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Request Body

application/json
  1. body

Fields to change. Only the fields you send are updated.

url?string

New URL, with the same rules as on creation. Omit it to keep the current one.

Formaturi
Lengthlength <= 2048
description?|

New note. Omit it to keep the current one; send null to clear it.

Length1 <= length <= 200
events?array<|>

New list of event types. Omit it to keep the current one.

Items1 <= items <= 36
enabled?boolean

false pauses the endpoint, true turns it back on. Omit it to keep the current state.

Response Body

The endpoint after the change.

application/json
  1. response

An endpoint of your system that receives our webhooks.

id*string

Opaque unique identifier of the endpoint, generated by the API. Use it in the /v1/webhooks/endpoints/{id} routes and to filter deliveries.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
url*string

Where we send the events, with a POST.

description*|

Your note about the endpoint. null when there is none.

events*array<|>

Event types the endpoint receives, or ["*"] for every type, including future ones.

enabled*boolean

false pauses the endpoint: new events skip it, and its pending deliveries fail without a call.

createdAt*string

When the endpoint was created, in ISO-8601 (UTC).

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
updatedAt*string

When the endpoint last changed, in ISO-8601 (UTC).

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
curl -X PATCH "https://example.com/v1/webhooks/endpoints/3d1c8a52-7f0e-4b0a-8a65-9c1b2f6d7e01" \  -H "Content-Type: application/json" \  -d '{    "enabled": false  }'
{  "id": "c2d3e4f5-a6b7-4c8d-9e0f-1a2b3c4d5e6f",  "url": "https://your-app.com/webhooks/marketapi",  "description": "Production",  "events": [    "*"  ],  "enabled": true,  "createdAt": "2026-10-06T14:20:00.000Z",  "updatedAt": "2026-10-06T14:20:00.000Z"}