# Update an endpoint

> Change an endpoint's URL, headers, delivery settings, or active state.

`PATCH https://inboundr.net/api/v1/endpoints/{id}`

Updates any subset of an [endpoint's](/concepts/endpoints) settings. The signing
secret can't be changed here. Provide at least one field.

<ParamField path="id" type="string" required>
  The endpoint id (`ep_…`).
</ParamField>
<ParamField body="name" type="string">
  Label (1–100 chars).
</ParamField>
<ParamField body="url" type="string">
  Delivery URL (`http`/`https`). Must resolve to a public host — and match
  the provider's incoming-webhook host on a Slack/Discord endpoint.
</ParamField>
<ParamField body="headers" type="object">
  Replaces the custom headers. Up to 10; reserved headers can't be overridden.
</ParamField>
<ParamField body="timeoutSeconds" type="integer">
  Per-request timeout, 1–30 seconds.
</ParamField>
<ParamField body="maxAttempts" type="integer">
  Total attempts (first + retries), 1–10.
</ParamField>
<ParamField body="active" type="boolean">
  Whether the endpoint receives deliveries.
</ParamField>

<ResponseExample>
```json 200
{
  "id": "ep_123",
  "name": "Production handler",
  "url": "https://api.example.com/hooks/v2",
  "headers": { "X-Team": "growth" },
  "timeoutSeconds": 15,
  "maxAttempts": 8,
  "active": true,
  "createdAt": "2026-07-20T10:00:00.000Z"
}
```
</ResponseExample>

<Note>
  Returns `400` for an invalid URL, a private/internal host, or invalid headers;
  `404` if the endpoint isn't yours.
</Note>
