# Register a webhook endpoint

> **The signing secret is in this response and in no other.** Store it before you close the connection; it cannot be retrieved afterwards. The URL must be https on port 443 and must resolve to a public address — it is re-checked on every delivery, not only here.

`POST https://api-notetaker.nabrah.ai/ext/v1/webhooks`

Requires an API key in the `Authorization` header.

**The signing secret is in this response and in no other.** Store it before you close the connection; it cannot be retrieved afterwards. The URL must be https on port 443 and must resolve to a public address — it is re-checked on every delivery, not only here.

## Body

- `url` (string · uri, required)
- `events` (enum[], required)

## Example request body

```json
{
  "url": "string",
  "events": [
    "meeting.started"
  ]
}
```

## Responses

- `201` — The endpoint, with its signing secret — returned once and never again.
- `401` — No key, an unknown key, or one that has been revoked or has expired.
- `403` — The key is read only, or lacks the reach for this route.
- `404` — No such record — or one that belongs to another account.
- `422` — The body or query failed validation; `details` names the field.
- `429` — Too many requests. `Retry-After` says how long to wait.

### 201 example

```json
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "url": "string",
    "events": [
      "string"
    ],
    "status": "active",
    "consecutiveFailures": 0,
    "lastDeliveryAt": "string",
    "lastStatus": 0,
    "disabledReason": "string",
    "createdAt": "2026-01-01T09:00:00.000Z"
  }
}
```

### 401 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```

### 403 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```

### 404 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```

### 422 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```

### 429 example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      {
        "path": "string",
        "message": "string"
      }
    ]
  }
}
```
