# Create webhook endpoint

Add a single pre-verified outbound webhook endpoint to a dashboard.

Source: https://statusdashboard.com/docs/api/integrations/webhooks/outbound/endpoints/create

`POST /app/integrations/webhooks/outbound/endpoints`

Creates one pre-verified webhook endpoint. Admin-trusted — no verification email is sent.

Requires the `admin` or `subscriber` role and the **integrations** feature entitlement.

***

## Request
See [API Basics](/docs/api) for required headers.

### Body
| Field             | Type    | Required | Description                                                                                                                             |
| ----------------- | ------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `dashboardId`     | uuid    | Yes      | Target dashboard                                                                                                                        |
| `url`             | string  | Yes      | Absolute HTTPS endpoint URL (max 2048 chars). Must use `https://` on port 443 with no embedded credentials. Must be publicly reachable. |
| `managementEmail` | string  | Yes      | Management contact email (max 254 chars). Receives verify/manage flows for public endpoints and delivery-failure alerts.                |
| `componentIds`    | uuid\[] | Yes      | At least one component on that dashboard                                                                                                |
| `locked`          | boolean | No       | Admin-managed flag. When `true`, blocks dashboard self-service subscribe/manage. Default: `false`.                                      |

***

## Sample request
```bash
curl -X POST https://api.statusdashboard.com/app/integrations/webhooks/outbound/endpoints \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "dashboardId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "url": "https://hooks.example.com/status",
    "managementEmail": "ops@acme.com",
    "componentIds": ["b2c3d4e5-f6a7-8901-bcde-f12345678901"],
    "locked": false
  }'
```

## Sample response
**Status: `201 Created`**

The create response includes the full `url` **and** the **signing secret** once. Subsequent list/update responses expose only `urlDisplay` and never re-return the secret. Every event delivery is signed with `X-SD-Signature` using this secret (see [Outbound Webhooks — Signing](/docs/integrations/webhooks/outbound#signing)).

```json
{
  "endpoint": {
    "channel": "webhook",
    "dashboardId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "dashboardName": "Acme Status",
    "urlHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "url": "https://hooks.example.com/status",
    "urlDisplay": "hooks.example.com/status",
    "managementEmail": "ops@acme.com",
    "verified": true,
    "verifiedAt": "2026-06-01T14:22:00.000Z",
    "paused": false,
    "locked": false,
    "suppressed": false,
    "componentIds": ["b2c3d4e5-f6a7-8901-bcde-f12345678901"],
    "consecutiveFailures": 0,
    "createdAt": "2026-06-01T14:22:00.000Z",
    "updatedAt": "2026-06-01T14:22:00.000Z"
  },
  "signingSecret": "whout_a1b2c3d4e5f6…"
}
```

***

## Error responses
| Status | When                                                                                                             |
| ------ | ---------------------------------------------------------------------------------------------------------------- |
| `400`  | Invalid body, invalid URL, or component not on dashboard                                                         |
| `403`  | Requires admin or subscriber role, integrations feature disabled, or unique-endpoint organization limit exceeded |
| `404`  | Dashboard not found                                                                                              |
| `409`  | Endpoint already subscribed on this dashboard                                                                    |
