> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trusset.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Hook

> Partially update an existing hook

Updates a hook in place. Every field from [Create Hook](/endpoints/external-securities-lending/create-hook) is accepted and all of them are optional. Only the fields you send are changed.

Cross-field validation runs against the merged record, not the request body alone. Clearing `webhookUrl` on a hook whose `actionType` is `inform` is therefore rejected.

<Note>
  Unlike create, `riskFields` is not re-required on update. A `monitorRisk` hook that already has risk fields keeps them when you send only `checkFrequency`.
</Note>

## Path Parameters

<ParamField path="marketId" type="string" required>Market ID.</ParamField>
<ParamField path="hookId" type="string" required>Hook ID.</ParamField>

## Body Parameters

Any subset of the [Create Hook](/endpoints/external-securities-lending/create-hook) body. Same types, same ranges.

<RequestExample>
  ```bash cURL theme={null}
  curl -X PUT "https://api.trusset.org/lending-external-securities/api/hooks/{marketId}/{hookId}" \
    -H "X-API-Key: trusset_your_key_here" \
    -H "Content-Type: application/json" \
    -d '{"checkFrequency": "1h"}'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "id": "hook_003",
      "marketId": "clx_secmarket_001",
      "hookType": "monitorRisk",
      "checkFrequency": "1h",
      "active": true,
      "updatedAt": "2025-06-15T12:05:00.000Z"
    }
  }
  ```
</ResponseExample>
