---
title: Create Organization Webhook Endpoint
url: https://platform.claude.com/docs/en/api/php/beta/organization/webhooks/create
---

# Create Organization Webhook Endpoint

`$client->beta->organization->webhooks->create(list<EnabledEvent> enabledEvents, string url, ?string description, ?string name, ?list<AnthropicBeta> betas): NewOrganizationWebhookEndpoint`

**POST** `/v1/organizations/webhooks`

Create an organization webhook endpoint.

An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization
webhook endpoints, enabled or disabled.

The response includes the endpoint's signing secret. No read returns it, so store
it when you receive it.

Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled.

## Parameters

- `enabledEvents: list<EnabledEvent>`

  The event types to deliver to the endpoint. Must list at least one.

- `url: string`

  The HTTPS URL that deliveries are sent to.

- `description?: optional string`

  Notes about the endpoint.

- `name?: optional string`

  A short label for the endpoint.

- `betas?: optional list<AnthropicBeta>` (header parameter)

  This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header.

## Returns

- `class NewOrganizationWebhookEndpoint`

  - `string id`

    ID of the webhook endpoint.

  - `\Datetime createdAt`

    When the endpoint was created, in RFC 3339 format.

  - `string description`

    Notes about the endpoint. An empty string when none were given.

  - `string disabledReason`

    Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it.

  - `list<EnabledEvent> enabledEvents`

    The event types delivered to the endpoint.

  - `string name`

    A short label for the endpoint. An empty string when none was given.

  - `string signingSecret`

    The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret.

  - `OrganizationWebhookEndpointState state`

    Whether deliveries are sent to the endpoint.

  - `\Datetime updatedAt`

    When the endpoint was last changed, in RFC 3339 format.

  - `string url`

    The HTTPS URL that deliveries are sent to.

## Example

```php
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Anthropic\Client;
use Anthropic\Beta\AnthropicBeta;

$client = new Client(apiKey: 'my-anthropic-api-key');

$betaNewOrganizationWebhookEndpoint = $client
  ->beta
  ->organization
  ->webhooks
  ->create(
  enabledEvents: ['user_profile.enforcement_action_opened'],
  url: 'x',
  description: 'description',
  name: 'name',
  betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24],
);

var_dump($betaNewOrganizationWebhookEndpoint);
```

### Response (200)

```json
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "description": "description",
  "disabled_reason": "disabled_reason",
  "enabled_events": [
    "user_profile.enforcement_action_opened"
  ],
  "name": "name",
  "signing_secret": "signing_secret",
  "state": "disabled",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "url": "url"
}
```
