---
title: "Update hook"
method: PATCH
path: "/api/hooks/{id}"
tags: ["Hooks"]
---

# Update hook

`PATCH /api/hooks/{id}`

Update hook details by ID with the given data.

## Path parameters

- `id` string, required

## Request body

- object
  - `tenantId` string
  - `name` string — The updated name of the hook.
  - `event` 'PostRegister' | 'PostSignIn' | 'PostSignInAdaptiveMfaTriggered' | 'PostResetPassword' | 'User.Created' | 'User.Deleted' | 'User.Data.Updated' | 'User.SuspensionStatus.Updated' | 'Role.Created' | 'Role.Deleted' | 'Role.Data.Updated' | 'Role.Scopes.Updated' | 'Scope.Created' | 'Scope.Deleted' | 'Scope.Data.Updated' | 'Organization.Created' | 'Organization.Deleted' | 'Organization.Data.Updated' | 'Organization.Membership.Updated' | 'OrganizationRole.Created' | 'OrganizationRole.Deleted' | 'OrganizationRole.Data.Updated' | 'OrganizationRole.Scopes.Updated' | 'OrganizationScope.Created' | 'OrganizationScope.Deleted' | 'OrganizationScope.Data.Updated' | 'Identifier.Lockout' | 'Message.RateLimited' | 'Grant.LimitExceeded', nullable — Use `events` instead.
  - `events` string[] — An array of updated hook events.
  - `config` object
    - `url` string, required
    - `headers` object
    - `retries` number — Now the retry times is fixed to 3. Keep for backward compatibility.
  - `enabled` boolean
  - `createdAt` number

## Response `200`

The hook was updated successfully.

- object
  - `tenantId` string, required
  - `id` string, required
  - `name` string, required
  - `event` 'PostRegister' | 'PostSignIn' | 'PostSignInAdaptiveMfaTriggered' | 'PostResetPassword' | 'User.Created' | 'User.Deleted' | 'User.Data.Updated' | 'User.SuspensionStatus.Updated' | 'Role.Created' | 'Role.Deleted' | 'Role.Data.Updated' | 'Role.Scopes.Updated' | 'Scope.Created' | 'Scope.Deleted' | 'Scope.Data.Updated' | 'Organization.Created' | 'Organization.Deleted' | 'Organization.Data.Updated' | 'Organization.Membership.Updated' | 'OrganizationRole.Created' | 'OrganizationRole.Deleted' | 'OrganizationRole.Data.Updated' | 'OrganizationRole.Scopes.Updated' | 'OrganizationScope.Created' | 'OrganizationScope.Deleted' | 'OrganizationScope.Data.Updated' | 'Identifier.Lockout' | 'Message.RateLimited' | 'Grant.LimitExceeded', nullable, required
  - `events` string[], required
  - `config` object, required
    - `url` string, required
    - `headers` object
    - `retries` number
  - `signingKey` string, required
  - `enabled` boolean, required
  - `createdAt` number, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

---

[API](https://skmtc.net/logto/apis/logto-api-references.md) · [All operations](https://skmtc.net/logto/apis/logto-api-references/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/logto/logto-api-references/versions/a163dc77d842/schema)
