---
title: Webhooks API
path: reference/api/webhooks
status: published
---

# Webhooks API

Reference for the `Webhooks` endpoint group — 12 endpoints.

Generated from the live OpenAPI spec. Re-run `_generate_api_reference.py` after backend changes.

## Authentication

All endpoints require a Bearer JWT in the `Authorization` header unless noted otherwise. See [Concepts → Tokens and scopes](/docs/scaikey/concepts/tokens-and-scopes) and [Reference → OAuth endpoints](/docs/scaikey/reference/oauth-endpoints) for how to obtain one.

## Endpoints

### **GET** `/api/v1/admin/webhooks/`

_List Webhooks_

List webhook endpoints.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `page` | query | no | `integer` |  |
| `per_page` | query | no | `integer` |  |
| `tenant_id` | query | no | `string` \| `null` |  |
| `partner_id` | query | no | `string` \| `null` | Filter by partner (all tenants in partner) |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **POST** `/api/v1/admin/webhooks/`

_Create Webhook_

Create a new webhook endpoint.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `authorization` | header | no | `string` \| `null` |  |

**Request body:**

Required.

- `application/json` → object

**Responses:**

| Status | Body |
|---|---|
| `201` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **GET** `/api/v1/admin/webhooks/events`

_List Supported Events_

List supported event types for webhooks.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **DELETE** `/api/v1/admin/webhooks/{webhook_id}`

_Delete Webhook_

Delete a webhook.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `webhook_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `204` | Successful Response |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **GET** `/api/v1/admin/webhooks/{webhook_id}`

_Get Webhook_

Get a webhook by ID.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `webhook_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **PATCH** `/api/v1/admin/webhooks/{webhook_id}`

_Update Webhook_

Update a webhook.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `webhook_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Request body:**

Required.

- `application/json` → object

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **GET** `/api/v1/admin/webhooks/{webhook_id}/deliveries`

_List Webhook Deliveries_

List delivery history for a webhook.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `webhook_id` | path | yes | `string` |  |
| `page` | query | no | `integer` |  |
| `per_page` | query | no | `integer` |  |
| `status` | query | no | `string` \| `null` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **GET** `/api/v1/admin/webhooks/{webhook_id}/deliveries/{delivery_id}`

_Get Webhook Delivery_

Get details of a specific delivery.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `webhook_id` | path | yes | `string` |  |
| `delivery_id` | path | yes | `integer` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **POST** `/api/v1/admin/webhooks/{webhook_id}/deliveries/{delivery_id}/retry`

_Retry Webhook Delivery_

Manually retry a failed delivery.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `webhook_id` | path | yes | `string` |  |
| `delivery_id` | path | yes | `integer` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **POST** `/api/v1/admin/webhooks/{webhook_id}/rotate-secret`

_Rotate Webhook Secret_

Rotate a webhook's signing secret.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `webhook_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **GET** `/api/v1/admin/webhooks/{webhook_id}/stats`

_Get Webhook Stats_

Get delivery statistics for a webhook.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `webhook_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **POST** `/api/v1/admin/webhooks/{webhook_id}/test`

_Test Webhook_

Send a test event to a webhook.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `webhook_id` | path | yes | `string` |  |
| `authorization` | header | no | `string` \| `null` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → _any_ |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

## Schemas

Definitions for every type referenced by the endpoints above. Schema-to-schema references on this page link within the page; cross-page references would require visiting the linked page.

### `HTTPValidationError`

| Field | Type | Required | Description |
|---|---|---|---|
| `detail` | array of [`ValidationError`](#schema-validationerror) | no |  |

### `ValidationError`

| Field | Type | Required | Description |
|---|---|---|---|
| `loc` | array of `string` \| `integer` | yes |  |
| `msg` | `string` | yes |  |
| `type` | `string` | yes |  |
