---
title: Вебхуки организации
url: https://platform.claude.com/docs/ru/manage-claude/organization-webhooks
description: Регистрируйте конечные точки вебхуков для получения событий о мерах воздействия в отношении профилей пользователей вашей организации.
featureMetadata:
  status: beta
  betaHeader: webhooks-2026-10-07
  supportedPlatforms:
    Claude API: beta
---

«Organization webhook endpoint» (конечная точка вебхука организации) получает событие, когда Anthropic ограничивает или блокирует один из [профилей пользователей](https://platform.claude.com/docs/ru/manage-claude/user-profiles) вашей организации, а также когда ограничение или блокировка завершается. Вы управляете ею с помощью Admin API по пути `/v1/organizations/webhooks`.

<Note>
  Доставка событий пока не работает: Anthropic не отправляет эти два события, поэтому зарегистрированная вами конечная точка ничего не получает. Вы можете регистрировать конечные точки и создавать свой обработчик на основе формата событий, описанного на этой странице.
</Note>

Любой участник вашей организации может просматривать список конечных точек вебхуков организации и отдельные конечные точки через API, но только участники с ролью администратора, владельца или основного владельца могут создавать, изменять или удалять их, а также заменять их секрет подписи.

## Перед началом работы

Вам понадобится следующее:

* Организация в Claude API, для которой включены вебхуки организации и не включена [готовность к HIPAA](https://platform.claude.com/docs/ru/manage-claude/api-and-data-retention#hipaa-readiness). Чтобы запросить доступ, свяжитесь со своей командой по работе с клиентами Anthropic.

* Одни из следующих учётных данных:

  * [Ключ Admin API](https://platform.claude.com/docs/ru/manage-claude/admin-api-keys).
  * [OAuth bearer-токен](https://platform.claude.com/docs/ru/manage-claude/admin-api#oauth-bearer-token) с областью действия `org:admin`.
  * [Персональный ключ или ключ сервисного аккаунта](https://platform.claude.com/docs/ru/manage-claude/authentication#key-types), не ограниченный рабочим пространством.

## Типы событий

Конечные точки вебхуков организации принимают два типа событий. Оба относятся к «enforcement actions» (мерам воздействия) в отношении профилей пользователей. Мера воздействия — это ограничение или блокировка, которую Anthropic применяет к конечному клиенту, представленному профилем.

| Событие                                    | Триггер                                                                                  |
| ------------------------------------------ | ---------------------------------------------------------------------------------------- |
| `user_profile.enforcement_action_opened`   | Anthropic открывает меру воздействия в отношении профиля пользователя.                   |
| `user_profile.enforcement_action_resolved` | Мера воздействия завершается. Anthropic снимает её, или наступает её время `expires_at`. |

Удаление профиля завершает его открытые меры без события `user_profile.enforcement_action_resolved`.

### Перед вашим первым событием

В ваших профилях не будет полей `enforcement_status` и `enforcement_actions`, пока для вашей организации не включены меры воздействия. До этого момента, а также в любом запросе, заголовок `anthropic-beta` которого содержит `user-profiles-2026-09-04` или более раннее значение, ответы не включают эти поля, а фильтр списка `enforcement_status[]` возвращает `400`. Чтобы получить эти поля, удалите это значение из своих запросов.

Если мера воздействия была открыта до того, как Anthropic включила меры воздействия и доставку событий для вашей организации, или до того, как вы зарегистрировали свою конечную точку, вы не получите для неё событие `user_profile.enforcement_action_opened`. Мера всё равно отображается в профиле. Чтобы найти такие меры, [получите список своих профилей](https://platform.claude.com/docs/ru/api/user_profiles/list) с параметрами `enforcement_status[]=restricted` и `enforcement_status[]=banned`. Ответ может вернуть меньше профилей, чем `limit`, или ни одного, ещё до окончания списка, поэтому продолжайте запрашивать страницы, пока `next_page` не станет `null`.

### Что содержит событие

События содержат идентификаторы, а не саму меру или профиль. `data.id` — это идентификатор профиля, а `data.enforcement_action_id` — идентификатор меры, который начинается с `enac_`:

```json
{
  "type": "event",
  "id": "whe_4f2a9c1e7b3d5a8f0e6c2b9d1a7f3e5c",
  "created_at": "2026-10-15T17:02:41Z",
  "data": {
    "type": "user_profile.enforcement_action_opened",
    "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9",
    "enforcement_action_id": "enac_011CZkZEq4TnWb7xLfRgPm2v",
    "organization_id": "org_011CZkZBj9RsYd3wNcHvKq6t"
  }
}
```

Чтобы узнать, что изменилось, [получите профиль](https://platform.claude.com/docs/ru/api/user_profiles/retrieve) с помощью `GET /v1/user_profiles/{id}` (python, ruby: `client.user_profiles.retrieve()`; typescript: `client.userProfiles.retrieve()`; go: `client.UserProfiles.Get()`; java: `client.userProfiles().retrieve()`; csharp: `client.UserProfiles.Retrieve()`; php: `$client->userProfiles->retrieve()`; cli: `ant user-profiles retrieve`), используя `data.id`. Его список `enforcement_actions` показывает открытые меры. У каждой меры есть `type` (`restriction` или `ban`), `id`, `reason`, время `opened_at` и время `expires_at` или `null`. `enforcement_status` обобщает их: `banned`, пока открыта блокировка, `restricted`, пока открыта любая другая мера, и `unrestricted`, когда открытых мер нет. Любое другое значение рассматривайте как `restricted`.

Anthropic отправляет событие только после того, как изменение отразится в профиле, поэтому полученный вами профиль показывает это изменение или более позднее. События могут приходить с задержкой или не по порядку, поэтому ориентируйтесь на текущее состояние профиля, а не на порядок поступления событий. После `user_profile.enforcement_action_resolved` завершённая мера больше не отображается в списке. Ответ `404` означает, что профиль был удалён.

## Поля конечной точки

Конечная точка вебхука организации имеет следующие поля:

| Поле              | Тип              | Описание                                                                                                                                                                                                                                 |
| ----------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`              | string           | Идентификатор конечной точки, который начинается с `wep_`. Устанавливается Anthropic.                                                                                                                                                    |
| `url`             | string           | Адрес, на который Anthropic отправляет события. Должен использовать HTTPS на порту 443 и публичное доменное имя, а не IP-адрес. Две включённые конечные точки вебхуков организации в вашей организации не могут иметь один и тот же URL. |
| `enabled_events`  | array of strings | [Типы событий](https://platform.claude.com/docs/ru/manage-claude/organization-webhooks#event-types), которые получает эта конечная точка. Запрос на создание должен содержать хотя бы один.                                              |
| `name`            | string           | Необязательная метка для вашего собственного использования.                                                                                                                                                                              |
| `description`     | string           | Необязательное описание для вашего собственного использования.                                                                                                                                                                           |
| `state`           | string           | `enabled` или `disabled`.                                                                                                                                                                                                                |
| `disabled_reason` | string           | Причина, по которой Anthropic отключила конечную точку. В остальных случаях пусто.                                                                                                                                                       |
| `created_at`      | string           | Время создания конечной точки. Устанавливается Anthropic.                                                                                                                                                                                |
| `updated_at`      | string           | Время последнего изменения конечной точки. Устанавливается Anthropic.                                                                                                                                                                    |
| `signing_secret`  | string           | Секрет с префиксом `whsec_`, создаваемый вместе с конечной точкой. Он включается только в ответы на создание конечной точки или замену секрета, поэтому храните его в надёжном месте.                                                    |

```json
{
  "id": "wep_011CZkZDf8HnUq2mTxRbVn4s",
  "url": "https://example.com/anthropic-webhooks",
  "name": "Enforcement actions",
  "description": "",
  "enabled_events": [
    "user_profile.enforcement_action_opened",
    "user_profile.enforcement_action_resolved"
  ],
  "state": "enabled",
  "disabled_reason": "",
  "created_at": "2026-10-20T19:00:00Z",
  "updated_at": "2026-10-20T19:00:00Z"
}
```

Организация может иметь до 32 конечных точек вебхуков организации. Отключённые конечные точки вебхуков также учитываются в этом лимите.

## Доставки

Доставки соответствуют спецификации [Standard Webhooks](https://www.standardwebhooks.com/). Каждая из них содержит заголовки `webhook-id`, `webhook-timestamp` и `webhook-signature`. Прежде чем доверять событию, проверьте его подпись с помощью секрета подписи конечной точки, используя любую библиотеку Standard Webhooks.

Возвращайте любой статус `2xx` в течение 5 секунд, а медленную работу выполняйте после этого. Любой другой ответ или отсутствие ответа считается неудачной попыткой.

* **Дубликаты:** Конечная точка может получить одно и то же событие более одного раза с тем же `id` события (тем же значением, что и в заголовке `webhook-id`). Выполняйте дедупликацию по нему.

* **Повторные попытки:** Если доставка не удалась, Anthropic повторяет её несколько раз в течение следующих нескольких минут. Если все попытки неудачны, Anthropic отбрасывает событие. Чтобы наверстать упущенное, получите список своих профилей по статусу мер воздействия, как описано в разделе [Перед вашим первым событием](https://platform.claude.com/docs/ru/manage-claude/organization-webhooks#before-your-first-event).

* **Автоматическое отключение:** Anthropic отключает конечную точку, когда:

  * Она возвращает перенаправление (`3xx`).
  * Её URL разрешается в непубличный IP-адрес.
  * Доставки на неё продолжают завершаться неудачей.

  Anthropic пропускает события для отключённой конечной точки и не отправляет их позже.

## Управление конечными точками

С помощью Admin API вы можете выполнять следующие запросы:

| Задача                                                                             | Запрос                                                                                                                                                                            |
| ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Получить список конечных точек вашей организации                                   | [`GET /v1/organizations/webhooks`](https://platform.claude.com/docs/ru/api/beta/organization/webhooks/list)                                                                       |
| Создать конечную точку                                                             | [`POST /v1/organizations/webhooks`](https://platform.claude.com/docs/ru/api/beta/organization/webhooks/create)                                                                    |
| Получить одну конечную точку                                                       | [`GET /v1/organizations/webhooks/{webhook_endpoint_id}`](https://platform.claude.com/docs/ru/api/beta/organization/webhooks/retrieve)                                             |
| Обновить `url`, `name`, `description`, `enabled_events` или `state` конечной точки | [`POST /v1/organizations/webhooks/{webhook_endpoint_id}`](https://platform.claude.com/docs/ru/api/beta/organization/webhooks/update)                                              |
| Удалить конечную точку                                                             | [`DELETE /v1/organizations/webhooks/{webhook_endpoint_id}`](https://platform.claude.com/docs/ru/api/beta/organization/webhooks/delete)                                            |
| Заменить секрет подписи                                                            | [`POST /v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret`](https://platform.claude.com/docs/ru/api/beta/organization/webhooks/regenerate_signing_secret) |

При обновлении `enabled_events` заменяет весь список типов событий конечной точки. Пустой список не очищает список: конечная точка сохраняет имевшиеся у неё типы событий. Чтобы остановить доставки, отправьте `"state": "disabled"` или удалите конечную точку.

Чтобы снова включить конечную точку, в том числе после того, как Anthropic её отключила, отправьте `"state": "enabled"` в запросе на обновление.

Когда вы заменяете секрет подписи, старый секрет сразу перестаёт работать. Все последующие доставки, включая повторные попытки доставки более ранних событий, подписываются новым секретом, поэтому немедленно обновите свой обработчик.

Отправляйте заголовок `anthropic-beta: webhooks-2026-10-07` с каждым запросом. SDK и CLI отправляют его за вас. В этом примере выводится список конечных точек вашей организации с использованием ключа Admin API из `ANTHROPIC_API_KEY`.

<CodeGroup>
  ```bash cURL
  curl "https://api.anthropic.com/v1/organizations/webhooks" \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: webhooks-2026-10-07"
  ```

  ```bash CLI
  ant beta:organization:webhooks list
  ```

  ```python Python
  client = anthropic.Anthropic()

  endpoints = client.beta.organization.webhooks.list()

  for endpoint in endpoints:
      print(f"{endpoint.id}: {endpoint.url} ({endpoint.state})")
  ```

  ```typescript TypeScript
  const client = new Anthropic();

  const endpoints = await client.beta.organization.webhooks.list();

  for await (const endpoint of endpoints) {
    console.log(`${endpoint.id}: ${endpoint.url} (${endpoint.state})`);
  }
  ```

  ```csharp C#
  AnthropicClient client = new();

  var page = await client.Beta.Organization.Webhooks.List();

  await foreach (var endpoint in page.Paginate())
  {
      Console.WriteLine($"{endpoint.ID}: {endpoint.Url} ({endpoint.State.Raw()})");
  }
  ```

  ```go Go
  client := anthropic.NewClient()

  endpoints := client.Beta.Organization.Webhooks.ListAutoPaging(context.Background(), anthropic.BetaOrganizationWebhookListParams{})

  for endpoints.Next() {
  	endpoint := endpoints.Current()
  	fmt.Printf("%s: %s (%s)\n", endpoint.ID, endpoint.URL, endpoint.State)
  }
  if err := endpoints.Err(); err != nil {
  	log.Fatal(err)
  }
  ```

  ```java Java
  AnthropicClient client = AnthropicOkHttpClient.fromEnv();

  var endpoints = client.beta().organization().webhooks().list();

  for (var endpoint : endpoints.autoPager()) {
      IO.println(endpoint.id() + ": " + endpoint.url() + " (" + endpoint.state().asString() + ")");
  }
  ```

  ```php PHP
  $client = new Client();

  $endpoints = $client->beta->organization->webhooks->list();

  foreach ($endpoints->pagingEachItem() as $endpoint) {
      echo "{$endpoint->id}: {$endpoint->url} ({$endpoint->state})\n";
  }
  ```

  ```ruby Ruby
  client = Anthropic::Client.new

  endpoints = client.beta.organization.webhooks.list

  endpoints.auto_paging_each do |endpoint|
    puts "#{endpoint.id}: #{endpoint.url} (#{endpoint.state})"
  end
  ```
</CodeGroup>

Если конечных точек нет, API возвращает пустой список:

```json
{
  "data": [],
  "has_more": false
}
```

По умолчанию список возвращает до 20 конечных точек. Установите `limit`, чтобы получить до 100. Если `has_more` равно `true`, передайте `last_id` из ответа в качестве `after_id`, чтобы получить следующую страницу.

В этом примере создаётся конечная точка, которая получает оба типа событий:

<CodeGroup>
  ```bash cURL
  curl "https://api.anthropic.com/v1/organizations/webhooks" \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: webhooks-2026-10-07" \
    -H "content-type: application/json" \
    -d '{
      "url": "https://example.com/anthropic-webhooks",
      "name": "Enforcement actions",
      "enabled_events": [
        "user_profile.enforcement_action_opened",
        "user_profile.enforcement_action_resolved"
      ]
    }'
  ```

  ```bash CLI
  ant beta:organization:webhooks create \
    --url https://example.com/anthropic-webhooks \
    --name "Enforcement actions" \
    --enabled-event user_profile.enforcement_action_opened \
    --enabled-event user_profile.enforcement_action_resolved
  ```

  ```python Python
  client = anthropic.Anthropic()

  endpoint = client.beta.organization.webhooks.create(
      url="https://example.com/anthropic-webhooks",
      name="Enforcement actions",
      enabled_events=[
          "user_profile.enforcement_action_opened",
          "user_profile.enforcement_action_resolved",
      ],
  )

  print(endpoint.id)
  ```

  ```typescript TypeScript
  const client = new Anthropic();

  const endpoint = await client.beta.organization.webhooks.create({
    url: "https://example.com/anthropic-webhooks",
    name: "Enforcement actions",
    enabled_events: [
      "user_profile.enforcement_action_opened",
      "user_profile.enforcement_action_resolved"
    ]
  });

  console.log(endpoint.id);
  ```

  ```csharp C#
  using Anthropic.Models.Beta.Organization.Webhooks;

  AnthropicClient client = new();

  var endpoint = await client.Beta.Organization.Webhooks.Create(new WebhookCreateParams
  {
      UrlValue = "https://example.com/anthropic-webhooks",
      Name = "Enforcement actions",
      EnabledEvents =
      [
          EnabledEvent.UserProfileEnforcementActionOpened,
          EnabledEvent.UserProfileEnforcementActionResolved,
      ],
  });

  Console.WriteLine(endpoint.ID);
  ```

  ```go Go
  client := anthropic.NewClient()

  endpoint, err := client.Beta.Organization.Webhooks.New(context.Background(), anthropic.BetaOrganizationWebhookNewParams{
  	URL:  "https://example.com/anthropic-webhooks",
  	Name: anthropic.String("Enforcement actions"),
  	EnabledEvents: []string{
  		"user_profile.enforcement_action_opened",
  		"user_profile.enforcement_action_resolved",
  	},
  })
  if err != nil {
  	log.Fatal(err)
  }

  fmt.Println(endpoint.ID)
  ```

  ```java Java
  import com.anthropic.models.beta.organization.webhooks.WebhookCreateParams;

  void main() {
      AnthropicClient client = AnthropicOkHttpClient.fromEnv();

      var params = WebhookCreateParams.builder()
          .url("https://example.com/anthropic-webhooks")
          .name("Enforcement actions")
          .addEnabledEvent(WebhookCreateParams.EnabledEvent.USER_PROFILE_ENFORCEMENT_ACTION_OPENED)
          .addEnabledEvent(WebhookCreateParams.EnabledEvent.USER_PROFILE_ENFORCEMENT_ACTION_RESOLVED)
          .build();

      var endpoint = client.beta().organization().webhooks().create(params);

      IO.println(endpoint.id());
  }
  ```

  ```php PHP
  $client = new Client();

  $endpoint = $client->beta->organization->webhooks->create(
      url: 'https://example.com/anthropic-webhooks',
      name: 'Enforcement actions',
      enabledEvents: [
          'user_profile.enforcement_action_opened',
          'user_profile.enforcement_action_resolved',
      ],
  );

  echo $endpoint->id, "\n";
  ```

  ```ruby Ruby
  client = Anthropic::Client.new

  endpoint = client.beta.organization.webhooks.create(
    url: "https://example.com/anthropic-webhooks",
    name: "Enforcement actions",
    enabled_events: [
      "user_profile.enforcement_action_opened",
      "user_profile.enforcement_action_resolved"
    ]
  )

  puts endpoint.id
  ```
</CodeGroup>

Ответ содержит новую конечную точку, как показано в разделе [Поля конечной точки](https://platform.claude.com/docs/ru/manage-claude/organization-webhooks#endpoint-fields), а также её `signing_secret`.

## Ошибки

Запрос возвращает `400`, если:

* Его `url` не соответствует правилам из раздела [Поля конечной точки](https://platform.claude.com/docs/ru/manage-claude/organization-webhooks#endpoint-fields), или запрос на создание не содержит ни одного типа событий. В сообщении об ошибке указано, что не так.
* У вашей организации нет рабочего пространства по умолчанию.
* Вебхуки организации недоступны для вашей организации, поскольку её рабочее пространство по умолчанию использует [ключ шифрования, управляемый клиентом](https://platform.claude.com/docs/ru/manage-claude/cmek). Об этом говорится в сообщении об ошибке.
* Он привёл бы к тому, что у вашей организации будет более 32 конечных точек вебхуков организации.
* Он указывает в `enabled_events` тип события, отличный от двух, перечисленных в разделе [Типы событий](https://platform.claude.com/docs/ru/manage-claude/organization-webhooks#event-types). В сообщении об ошибке перечислены допустимые типы.

Запрос возвращает `403`, если роль вашего аккаунта не включает разрешение, необходимое для запроса. В ошибке указывается это разрешение.

Запрос возвращает `404`, если:

* Он не отправляет заголовок `anthropic-beta: webhooks-2026-10-07`.
* Anthropic не включила вебхуки организации для вашей организации.
* Для вашей организации включена готовность к HIPAA.
* Он использует тип учётных данных, который эти запросы не принимают.
* Его `webhook_endpoint_id` не соответствует ни одной конечной точке в вашей организации.

Запрос возвращает `409`, если:

* Он привёл бы к тому, что две включённые конечные точки вебхуков организации будут иметь один и тот же URL.
* Другой запрос одновременно изменил конечные точки вашей организации. Повторите запрос.
