# Update an endpoint

Source: https://checkslip.com/en/docs/update-endpoint

PATCH `https://api.checkslip.com/api/webhooks/endpoints/{endpoint_id}`

API key

Send only the fields to change (url, description, event_types, enabled) as a JSON Merge Patch (Content-Type: application/merge-patch+json). A new url is checked again as on create, and the account owner gets an email. Set enabled to false to stop sending and true to resume. While it is off, new messages are not stored at all, so turning it back on cannot recover them; the time-range resend only covers deliveries that were sent and failed (FAILED). Needs an API key with webhook:manage.

## Parameters

| Field | In | Type | Required |
| --- | --- | --- | --- |
| `endpoint_id` | path | `string` | yes |
| `traceparent` | header | `string` | no |

## Request body

`application/merge-patch+json`

| Field | Type | Required |
| --- | --- | --- |
| `url` | `string (uri)` | no |
| `description` | `string \| null` | no |
| `event_types` | `slip.checked \| webhook.test[]` | no |
| `enabled` | `boolean` | no |

## Responses

### 200 `application/json`

| Field | Type | Required |
| --- | --- | --- |
| `id` | `string` | yes |
| `url` | `string (uri)` | yes |
| `description` | `string \| null` | yes |
| `event_types` | `slip.checked \| webhook.test[]` | yes |
| `enabled` | `boolean` | yes |
| `disabled_reason` | `MANUAL \| GONE \| FAILING \| null` | yes |
| `secret_hint` | `string` | yes |
| `previous_secret_expires_at` | `string (date-time) \| null` | no |
| `created_at` | `string (date-time)` | yes |
| `updated_at` | `string (date-time)` | yes |

### Possible errors

400 401 403 404 422

An error as Problem Details. All codes are listed at [Error codes](https://checkslip.com/en/docs/errors)

**cURL**

```bash
curl -X PATCH https://api.checkslip.com/api/webhooks/endpoints/string \
  -H "Authorization: Bearer $CHECKSLIP_API_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -d '{"url":"https://example.com/hooks/checkslip","description":"string","event_types":["slip.checked"],"enabled":true}'
```

**Node.js**

```javascript
const res = await fetch("https://api.checkslip.com/api/webhooks/endpoints/string", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.CHECKSLIP_API_KEY}`,
    "Content-Type": "application/merge-patch+json",
  },
  body: JSON.stringify({
    url: "https://example.com/hooks/checkslip",
    description: "string",
    event_types: ["slip.checked"],
    enabled: true,
  }),
});
const data = await res.json();
```

**Python**

```python
import os

import requests

res = requests.patch(
    "https://api.checkslip.com/api/webhooks/endpoints/string",
    headers={
        "Authorization": f"Bearer {os.environ['CHECKSLIP_API_KEY']}",
    },
    json={
        "url": "https://example.com/hooks/checkslip",
        "description": "string",
        "event_types": ["slip.checked"],
        "enabled": True,
    },
)
data = res.json()
```

```json
{
  "id": "string",
  "url": "https://example.com/hooks/checkslip",
  "description": "string",
  "event_types": [
    "slip.checked"
  ],
  "enabled": true,
  "disabled_reason": "MANUAL",
  "secret_hint": "string",
  "previous_secret_expires_at": "2026-11-05T09:30:00+07:00",
  "created_at": "2026-11-05T09:30:00+07:00",
  "updated_at": "2026-11-05T09:30:00+07:00"
}
```
