Dotdigital Webhooks API

The Webhooks API API from Dotdigital — 4 operation(s) for webhooks api.

Operations 7

GET /cpaas/webhooks Get webhooks
POST /cpaas/webhooks Create webhook
GET /cpaas/webhooks/availableevents Retrieves available webhook events
GET /cpaas/webhooks/availabletemplates Get event templates
GET /cpaas/webhooks/{webhookId} Retrieves webhook configuration
PUT /cpaas/webhooks/{webhookId} Update webhook configuration
DELETE /cpaas/webhooks/{webhookId} Deletes webhook

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dotdigital-webhooks-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

dotdigital-webhooks-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Webhooks API
  description: 'Provides methods for creating, retrieving, updating, and deleting webhook

    configurations. Also exposes endpoints to list all available webhook event

    types and their associated payload templates, enabling callers to set up

    event-driven integrations.'
  version: 1.0.1
servers:
- url: https://{region}-api.dotdigital.com
  variables:
    region:
      description: The Dotdigital region id your account belongs to
      enum:
      - r1
      - r2
      - r3
      default: r1
security:
- basicAuth: []
tags:
- name: Webhooks API
paths:
  /cpaas/webhooks:
    get:
      tags:
      - Webhooks API
      summary: Get webhooks
      description: Retrieves the configured webhook configurations for the account.
      parameters:
      - name: includeDeleted
        in: query
        description: Indicates whether deleted webhooks should be returned, default is `false` only active webhook configurations.
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: The configured webhook configurations
          headers:
            ETag:
              description: A unique value representing the version of the webhook configuration, optionally used for optimistic concurrency control on PUT and DELETE
              schema:
                type: string
            Last-Modified:
              description: The date the webhook configuration was last updated in ISO 8601 format
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                type: array
                description: Webhook configurations
                items:
                  $ref: '#/components/schemas/WebhookConfiguration'
        '404':
          description: The webhookconfiguration was not found
          content: {}
    post:
      tags:
      - Webhooks API
      summary: Create webhook
      description: 'Create a new webhook configuration, and start streaming events. We strongly encourage using batching, where we will send a batch of events whenever the number of events hits `macBatchSize` or events have been waitng for the `batchTimeout` in seconds, whichever occurs first will trigger the next batch to be sent.

        <br><br>

        _**Note**: Use the batching options, and only subscribe to the event types you require to maximise efficency_

        '
      parameters:
      - name: if-match
        in: header
        description: An optional ETag for optimistic concurrency control
        required: false
        schema:
          type: string
      requestBody:
        description: Detail of the webhook configuration to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookConfigurationCreateUpdate'
        required: true
      responses:
        '201':
          description: The created webhook configuration
          headers:
            ETag:
              description: A unique value representing the version of the webhook configuration, optionally used for optimistic concurrency control on PUT and DELETE
              schema:
                type: string
            Last-Modified:
              description: The date the webhook configuration was last updated in ISO 8601 format
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookConfiguration'
        '404':
          description: The webhook configuration was not found
          content: {}
      x-codegen-request-body-name: webhookData
  /cpaas/webhooks/availableevents:
    get:
      tags:
      - Webhooks API
      summary: Retrieves available webhook events
      description: Retrieves the events you can subscribe to in a webhook and the optional filters you can use to refine event selection further.
      parameters:
      - name: includeSchemas
        in: query
        description: When set to true, schema information for each event will also be returned
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: The available webhook events
          headers:
            ETag:
              description: A unique value representing the version of the webhook configuration, optionally used for optimistic concurrency control on PUT and DELETE
              schema:
                type: string
            Last-Modified:
              description: The date the webhook configuration was last updated in ISO 8601 format
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailbleEvents'
        '404':
          description: The webhook configuration was not found
          content: {}
  /cpaas/webhooks/availabletemplates:
    get:
      tags:
      - Webhooks API
      summary: Get event templates
      description: 'Gets a list of available events templates that the caller can use when creating webhook. Event templates are pre-defined groups of events that meet common use-cases.

        '
      responses:
        '200':
          description: The available templates
          content:
            application/json:
              schema:
                type: array
                example:
                - name: Message events
                  description: All messaging-related events
                  events:
                  - message.sent
                  - message.delivered
                  - message.read
                  - message.expired
                  - message.failed
                  - message.inbound
                - name: Message and Profile events
                  description: All message and profile-related events
                  events:
                  - message.sent
                  - message.delivered
                  - message.read
                  - message.expired
                  - message.failed
                  - message.inbound
                  - profile.create
                  - profile.update
                  - profile.delete
                  - profile.undelete
                  - profile.devicesUpdated
                items:
                  $ref: '#/components/schemas/inline_response_200'
  /cpaas/webhooks/{webhookId}:
    get:
      tags:
      - Webhooks API
      summary: Retrieves webhook configuration
      description: Retrieves a single webhook configuration.
      parameters:
      - name: webhookId
        in: path
        description: The webhook id
        required: true
        schema:
          type: string
      - name: includeDeleted
        in: query
        description: Indicates whether deleted webhooks should be returned
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: The requested webhook configuration
          headers:
            ETag:
              description: A unique value representing the version of the webhook configuration, optionally used for optimistic concurrency control on PUT and DELETE
              schema:
                type: string
            Last-Modified:
              description: The date the webhook configuration was last updated in ISO 8601 format
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookConfiguration'
        '404':
          description: The webhook configuration was not found
          content: {}
    put:
      tags:
      - Webhooks API
      summary: Update webhook configuration
      description: Updates an individual webhook configuration.
      parameters:
      - name: webhookId
        in: path
        description: The webhook id
        required: true
        schema:
          type: string
      - name: if-match
        in: header
        description: An optional ETag for optimistic concurrency control
        required: false
        schema:
          type: string
      requestBody:
        description: Detail of the webhook configuration to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookConfigurationCreateUpdate'
        required: true
      responses:
        '200':
          description: The updated webhook configuration
          headers:
            ETag:
              description: A unique value representing the version of the webhook configuration, optionally used for optimistic concurrency control on PUT and DELETE
              schema:
                type: string
            Last-Modified:
              description: The date the webhook configuration was last updated in ISO 8601 format
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookConfiguration'
        '404':
          description: The webhook configuration was not found
          content: {}
      x-codegen-request-body-name: webhookData
    delete:
      tags:
      - Webhooks API
      summary: Deletes webhook
      description: Deletes an individual webhook.
      parameters:
      - name: webhookId
        in: path
        description: The webhook id
        required: true
        schema:
          type: string
      - name: if-match
        in: header
        description: An optional ETag for optimistic concurrency control
        required: false
        schema:
          type: string
      responses:
        '204':
          description: Indicates successful deletetion of an webhook configuration
          content: {}
        '404':
          description: The webhook configuration was not found
          content: {}
components:
  schemas:
    WebhookConfigurationCreateUpdate:
      required:
      - name
      - url
      type: object
      properties:
        name:
          type: string
          description: The name of the webhook configuration
          example: crm_system
        url:
          type: string
          description: The target url of the webhook
          example: https://mycrm.example.com/webhooksReceive
        secret:
          type: string
          description: The secret used to create HMAC secure hash
          example: f946b0e7-5fe9-4f57-9d8f-62b3ac0b4a13
        subscriptions:
          type: array
          description: Events for webhook
          items:
            $ref: '#/components/schemas/WebhookEvents'
        batch:
          type: boolean
          description: Whether to use event batching, or send single events
          example: true
        maxBatchSize:
          maximum: 500
          minimum: 1
          type: number
          description: Maximum number of events to batch before it is sent
          example: 100
        batchTimeout:
          maximum: 60
          minimum: 1
          type: number
          description: Maximum duration in seconds to wait before a batch is sent
          example: 60
    AvailbleEvents_inner:
      type: object
      properties:
        type:
          type: string
          description: Event type
          example: message.delivered
        description:
          type: string
          description: Description of event type
          example: Details of any outbound message \"delivered\" status updates.
        filters:
          type: array
          description: Filters for event
          items:
            $ref: '#/components/schemas/AvailableEventsFilters'
    AvailbleEvents:
      type: array
      items:
        $ref: '#/components/schemas/AvailbleEvents_inner'
    AvailableEventsFilters:
      type: object
      properties:
        name:
          type: string
          description: Name of filter
          example: channel
        path:
          type: string
          description: Path of filter - used when type=path
        required:
          type: boolean
          description: Is filter setting required
          example: false
        description:
          type: string
          description: Description of filter
          example: Channel that the event relates to e.g `sms`
    WebhookConfiguration:
      allOf:
      - type: object
        properties:
          id:
            pattern: ^([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})|[a-f0-9]{32}$
            type: string
            description: The Api Space's unique identifier
          _createdOn:
            type: string
            description: The date (in UTC, ISO 8601 format) that the webhook was created
            format: date-time
            readOnly: true
          _createdBy:
            type: string
            description: The identity that created the webhook
          _updatedOn:
            type: string
            description: The date (in UTC, ISO 8601 format) that the webhook was last updated
            format: date-time
            readOnly: true
          _updatedBy:
            type: string
            description: The identity that created the webhook
            readOnly: true
      - $ref: '#/components/schemas/WebhookConfigurationCreateUpdate'
    EventFilters:
      type: object
      properties:
        name:
          type: string
          description: name of filter
          example: channel
        value:
          type: string
          description: value to watch
          example: sms
    WebhookEvents:
      type: object
      properties:
        type:
          type: string
          description: type of event
          example: message.delivered
        filters:
          type: array
          description: Array of used filters
          items:
            $ref: '#/components/schemas/EventFilters'
      example:
      - type: message.sent
        filters: []
      - type: message.delivered
        filters: []
      - type: message.expired
        filters: []
      - type: message.failed
        filters: []
      - type: message.inbound
        filters: []
      - type: message.read
        filters: []
    inline_response_200:
      type: object
      properties:
        name:
          type: string
          description: Name of the events template
        description:
          type: string
          description: Describes the template
        events:
          type: array
          items:
            type: string
            description: The event id
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
x-readme.samples-languages:
- curl
- csharp
- java
- javascript
- node
- python
- php
- ruby
x-readme:
  explorer-enabled: true
  proxy-enabled: true
  samples-enabled: true