> ## Documentation Index
> Fetch the complete documentation index at: https://nuntly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Webhook

> Register an endpoint to start receiving webhook events for your organization.



## OpenAPI

````yaml /openapi.documented.yml post /webhooks
openapi: 3.1.0
info:
  title: Nuntly REST API 1.x
  version: 1.0.0-alpha.20
  description: Nuntly REST API definition
  termsOfService: https://nuntly.com/legal/terms-of-service
  contact:
    name: Nuntly Support
    url: https://nuntly.com/docs
    email: support@nuntly.com
servers:
  - description: Nuntly API endpoint
    url: https://api.nuntly.com
security:
  - bearerAuth: []
tags:
  - name: API Keys
    description: >-
      Create and revoke API keys used to authenticate requests to the Nuntly
      API.
  - name: Agents
    description: >-
      Read and write persistent state for an AI agent, optionally scoped to a
      specific inbox or thread.
  - name: Domains
    description: >-
      Add and verify sending and receiving domains. Manage DKIM records, SPF
      configuration, and enable inbound email routing.
  - name: Emails
    description: >-
      Send transactional emails, retrieve sending history, and track delivery
      status per message.
  - name: Inboxes
    description: >-
      Create email inboxes at a specific address on a verified receiving domain.
      Assign inboxes to namespaces or AI agents.
  - name: Messages
    description: >-
      Access received messages, download attachments, and send replies or
      forwards from an inbox.
  - name: Namespaces
    description: >-
      Isolate inboxes by tenant, client, or agent using namespaces. Use an
      external ID to map namespaces to your own data model.
  - name: Organizations
    description: >-
      Manage your organization profile, team members, and account-level
      settings.
  - name: Threads
    description: >-
      Browse email conversations grouped by subject. Mark threads as read or
      spam, and assign them to an agent.
  - name: Webhooks
    description: >-
      Register HTTP endpoints to receive real-time delivery events such as
      bounces, opens, and clicks.
  - name: Webhooks Events
    description: >-
      Inspect webhook event history and replay failed deliveries for debugging
      or recovery.
  - name: Webhooks Hook
    description: >-
      Endpoint your server implements to receive webhook events. Not a Nuntly
      API endpoint - this documents the shape your handler must accept.
externalDocs:
  description: Nuntly API Documentation
  url: https://nuntly.com/docs
paths:
  /webhooks:
    post:
      tags:
        - Webhooks
      summary: Create Webhook
      description: >-
        Register an endpoint to start receiving webhook events for your
        organization.
      operationId: create-webhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebhookRequest'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CreateWebhookResponse'
                required:
                  - data
                additionalProperties: false
        '500':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-codeSamples:
        - lang: cURL
          source: |-
            curl -X POST 'https://api.nuntly.com/webhooks' \
              -H 'Authorization: Bearer apk_xxx' \
              -H 'Content-Type: application/json' \
              -d '{"name":"Production webhook","endpointUrl":"https://example.com/webhooks","events":["email.queued"]}'
        - lang: JavaScript
          source: |-
            import { Nuntly } from '@nuntly/sdk';

            const client = new Nuntly({
              apiKey: process.env['NUNTLY_API_KEY'],
            });

            const response = await client.webhooks.create({
              name: 'Production webhook',
              endpointUrl: 'https://example.com/webhooks',
              events: ['email.queued'],
            });
        - lang: Java
          source: >-
            import com.nuntly.sdk.Nuntly;

            import com.nuntly.sdk.ClientOptions;

            import com.nuntly.sdk.models.*;


            var nuntly = Nuntly.create(ClientOptions.builder()
                .apiKey(System.getenv("NUNTLY_API_KEY"))
                .build());

            var response =
            nuntly.webhooks().create(CreateWebhookRequest.builder()
                .name("Production webhook")
                .endpointUrl("https://example.com/webhooks")
                .events(List.of(EventType.EMAIL_QUEUED))
                .build());
components:
  schemas:
    CreateWebhookRequest:
      type: object
      required:
        - endpointUrl
        - events
      properties:
        name:
          description: The name of the webhook
          type: string
          examples:
            - Production webhook
        endpointUrl:
          description: The endpoint URL of the webhook
          type: string
          examples:
            - https://example.com/webhooks
        status:
          description: The status of the webhook.
          type: string
          enum:
            - enabled
            - disabled
        events:
          description: The event types to subscribe to
          type: array
          items:
            $ref: '#/components/schemas/EventType'
    CreateWebhookResponse:
      type: object
      required:
        - id
        - endpointUrl
        - status
        - events
        - signingSecret
        - createdAt
      properties:
        id:
          description: The id of the webhook
          type: string
          examples:
            - wh_01ka8k8s80gvx9604cn9am5st4
        name:
          description: The name of the webhook
          type: string
          examples:
            - Production webhook
        endpointUrl:
          description: The endpoint URL of the webhook
          type: string
          examples:
            - https://example.com/webhooks
        status:
          description: The status of the webhook.
          type: string
          enum:
            - enabled
            - disabled
            - revoked
        events:
          description: The event types to subscribe to
          type: array
          items:
            $ref: '#/components/schemas/EventType'
        signingSecret:
          description: The signing secret of the webhook.
          type: string
        createdAt:
          description: Date at which the object was created (ISO 8601 format)
          type: string
          examples:
            - '2026-03-29T12:00:00.000Z'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
          description: >-
            This object provide you additional information about errors
            encountered while performing the operation
    EventType:
      type: string
      enum:
        - email.queued
        - email.scheduled
        - email.processed
        - email.sending
        - email.sent
        - email.delivered
        - email.opened
        - email.clicked
        - email.bounced
        - email.complained
        - email.rejected
        - email.deliveryDelayed
        - email.failed
        - email.renderingFailed
        - email.subscribed
        - email.unsubscribed
        - message.received
        - message.security.flagged
        - message.agent.triggered
        - message.sent
        - message.rejected
    Error:
      type: object
      required:
        - status
        - code
        - title
      properties:
        status:
          description: >-
            The HTTP status code generated by the origin server for this
            occurrence of the error.
          type: number
        code:
          description: An API specific code representing the type of error.
          type: string
        title:
          description: A short, human-readable summary of the error type.
          type: string
        details:
          description: >-
            A (best effort) human readable explanation specific to this
            occurrence of the error.
          type: object
          additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key (format apk_...)
      description: >-
        Use an API key from https://nuntly.com/api-keys. Required on every
        endpoint.

````