---
title: "Create a new webhook publisher configuration"
method: POST
path: "/api/v1/webhook-publishers"
tags: ["webhook-publishers"]
---

# Create a new webhook publisher configuration

`POST /api/v1/webhook-publishers`

## Request body

- WebhookPublisherCreateRequestDTO
  - `active` boolean — When false, no events are emitted through this publisher. The configuration is preserved.
  - `clientType` 'xapi', required
  - `config` object, required
    - `actorIfiMode` 'mbox' | 'mbox_sha1sum', required — Actor IFI mode: "mbox" sends learner emails to the LRS; "mbox_sha1sum" sends a hex SHA-1 of mailto:<email>.
    - `authBasicKey` string — HTTP Basic Auth key (LRS-issued). Basic auth mode only.
    - `authBasicSecret` string — HTTP Basic Auth secret (LRS-issued). Basic auth mode only.
    - `authMode` 'basic' | 'oauth2_client_credentials' — How to authenticate against the LRS: HTTP Basic, or an OAuth 2.0 client-credentials bearer token.
    - `lrsEndpointUrl` string, uri, required — Customer LRS xAPI endpoint, e.g. https://lrs.customer.com/xapi/
    - `oauthClientId` string — OAuth 2.0 client id issued by the LRS provider.
    - `oauthClientSecret` string — OAuth 2.0 client secret issued by the LRS provider.
    - `oauthScope` string — Optional OAuth 2.0 scope. The scope parameter is always sent; an empty string sends it blank.
    - `oauthTokenUrl` string — OAuth 2.0 token endpoint issuing the client-credentials bearer token.
  - `name` string, required — Admin-supplied label for this publisher.

## Response `201`

- WebhookPublisherResponseDTO
  - `active` boolean, required
  - `clientType` 'xapi', required
  - `config` object, required
    - `actorIfiMode` 'mbox' | 'mbox_sha1sum', required
    - `authMode` 'basic' | 'oauth2_client_credentials', required
    - `lrsEndpointUrl` string, uri, required
    - `oauthScope` string, required
    - `oauthTokenUrl` string, required
  - `createdAt` string, date-time, required
  - `id` string, uuid, required
  - `lastSuccessfulDeliveryAt` string, date-time, nullable, required
  - `lastUpdatedAt` string, date-time, required
  - `name` string, required
  - `organizationId` string, uuid, required
  - `pausedReason` string, nullable, required

---

[API](https://skmtc.net/wejam/apis/jam.md) · [All operations](https://skmtc.net/wejam/apis/jam/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/wejam/jam/revisions/bd5a5f406bca/schema)
