# updateWebhookSubscription

Mutation

Partial-update a webhook subscription.

Available to agents as MCP tool `updateWebhookSubscription` — see [Write tools](/api/v2/docs/mcp/write-tools#update-webhook-subscription).

## Arguments

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `id` | `ID!` | Yes | — | UUID of the subscription to update. |
| `input` | [`UpdateWebhookSubscriptionInput!`](/api/v2/docs/types/update-webhook-subscription-input) | Yes | — | Partial-update input. Only provided fields are updated. |

## Returns

| Name | Type | Description |
| --- | --- | --- |
| `userErrors` | [`[UserError!]!`](/api/v2/docs/types/user-error) | List of user-facing validation errors. Empty on success. |
| `webhookSubscription` | [`WebhookSubscription`](/api/v2/docs/types/webhook-subscription) | The updated subscription. Null on failure or when not found. |

## Examples

### Update a webhook subscription

Partial-update a subscription — only the fields you send change. Setting status to DISABLED_BY_USER is how you pause deliveries without deleting the subscription.

```graphql
mutation UpdateWebhookSubscriptionDefault($id: ID!, $input: UpdateWebhookSubscriptionInput!) {
  updateWebhookSubscription(id: $id, input: $input) {
    webhookSubscription {
      id
      name
      url
      status
      metadata
    }
    userErrors {
      field
      message
    }
  }
}
```

Variables:

```json
{
  "id": "eb418e28-bf9d-5350-b87b-446a6813bca4",
  "input": {
    "name": "Northwind Order Fulfilment (paused)",
    "status": "DISABLED_BY_USER"
  }
}
```

Response — HTTP 200:

```json
{
  "data": {
    "updateWebhookSubscription": {
      "webhookSubscription": {
        "id": "eb418e28-bf9d-5350-b87b-446a6813bca4",
        "name": "Northwind Order Fulfilment (paused)",
        "url": "https://hooks.northwind-botanicals.example/archive",
        "status": "DISABLED_BY_USER",
        "metadata": {
          "team": "growth"
        }
      },
      "userErrors": []
    }
  }
}
```
