Drip · AsyncAPI Specification

Drip Webhooks

Version

View Spec View on GitHub Email MarketingMarketing AutomationE-CommerceCustomer EngagementCampaignsWorkflowsAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://developer.drip.com/#webhooks and
  https://developer.drip.com/#webhook-events — the published webhook management
  API and event catalog. Read 2026-08-13. Event names extracted from the
  worked payload examples in the reference, not from a list we composed.
description: >-
  Drip's event surface. There is NO AsyncAPI document — Drip publishes none and
  none was found at /asyncapi.yaml or /asyncapi.json on any host — so this is a
  webhook catalog rather than an AsyncAPI spec, and it is recorded as such
  rather than fabricated into one. Drip delivers 29 documented subscriber
  events as HTTP POSTs of JSON to a customer-supplied URL, and exposes a small
  management API for registering those URLs.
spec_type: null
spec_published: false
spec_probed:
  - url: https://api.getdrip.com/asyncapi.yaml
    status: 403
  - url: https://developer.drip.com/asyncapi.yaml
    status: 404

transport: HTTP POST (webhook)
content_type: application/json
docs: https://developer.drip.com/#webhook-events

envelope:
  shape: '{"event": "<name>", "data": {"account_id": "...", "subscriber": {...}}, "occurred_at": "<ISO-8601>"}'
  fields:
    event: The webhook notification's event name.
    data: Object carrying account_id and the subscriber (plus a `properties` object on some events).
    account_id: The id of the account that sent the notification.
    occurred_at: Time the event occurred, ISO-8601.
  note: >-
    Some events add a `properties` object inside `data` (e.g.
    subscriber.marked_as_deliverable carries properties.source).

delivery:
  retry: >-
    If the receiving endpoint rate-limits Drip, Drip retries for up to 3 days.
  disable_on_failure: >-
    Any other sustained error for 3 days notifies the account and temporarily
    disables the webhook.
  opt_in_events:
    - subscriber.received_email
  opt_in_note: >-
    subscriber.received_email is NOT sent by default because of its volume; it
    is enabled per-webhook with a checkbox in the webhook settings.
  signing: false
  signing_note: >-
    No webhook signature header, shared secret or replay-protection scheme is
    documented. A receiver cannot cryptographically verify that a POST came
    from Drip.
  versioning:
    field: version
    current: '2'
    note: >-
      The webhook resource carries its own version, independent of the REST API
      path version. The docs state the current stable version is 2.

management_api:
  base: https://api.getdrip.com/v2/{account_id}/webhooks
  operations:
    - name: List all webhooks
      method: GET
      path: /v2/{account_id}/webhooks
    - name: Fetch a webhook
      method: GET
      path: /v2/{account_id}/webhooks/{id}
    - name: Create a new webhook
      method: POST
      path: /v2/{account_id}/webhooks
    - name: Destroy a webhook
      method: DELETE
      path: /v2/{account_id}/webhooks/{id}
  resource_fields:
    id: Read-only Drip-generated webhook id.
    href: Self link for the webhook record.
    post_url: The URL Drip POSTs to.
    version: Webhook payload version.
    include_received_email: Whether subscriber.received_email events are delivered.
    events: Array of event names this webhook subscribes to.
    created_at: ISO-8601 creation timestamp.
  ui_alternative: >-
    Webhook URLs can also be added from the Drip Webhooks settings page without
    touching the API.
  note: >-
    These four operations are documented but are NOT present in the repo's
    openapi/ specs, which cover 22 operations and no webhook management.

event_count: 29
events:
  - name: subscriber.created
    description: A subscriber is created in the account.
  - name: subscriber.deleted
    description: A subscriber is deleted from the account.
  - name: subscriber.marked_as_deliverable
    description: A subscriber's address is marked deliverable. Carries properties.source.
  - name: subscriber.marked_as_undeliverable
    description: A subscriber's address is marked undeliverable.
  - name: subscriber.subscribed_to_email_marketing
    description: A subscriber opts in to email marketing.
  - name: subscriber.subscribed_to_campaign
    description: A subscriber is subscribed to an Email Series Campaign.
  - name: subscriber.removed_from_campaign
    description: A subscriber is removed from an Email Series Campaign.
  - name: subscriber.unsubscribed_from_campaign
    description: A subscriber unsubscribes from an Email Series Campaign.
  - name: subscriber.unsubscribed_all
    description: A subscriber unsubscribes from all mailings.
  - name: subscriber.reactivated
    description: A previously unsubscribed subscriber is reactivated.
  - name: subscriber.completed_campaign
    description: A subscriber completes an Email Series Campaign.
  - name: subscriber.applied_tag
    description: A tag is applied to a subscriber.
  - name: subscriber.removed_tag
    description: A tag is removed from a subscriber.
  - name: subscriber.updated_custom_field
    description: A subscriber custom field value changes.
  - name: subscriber.updated_email_address
    description: A subscriber's email address changes.
  - name: subscriber.updated_lifetime_value
    description: A subscriber's lifetime value changes.
  - name: subscriber.updated_time_zone
    description: A subscriber's time zone changes.
  - name: subscriber.received_email
    description: A subscriber receives an email. Off by default — high volume, opt-in per webhook.
  - name: subscriber.opened_email
    description: A subscriber opens an email.
  - name: subscriber.clicked_email
    description: A subscriber clicks a link in an email.
  - name: subscriber.bounced
    description: An email to the subscriber bounces.
  - name: subscriber.complained
    description: A subscriber files a spam complaint.
  - name: subscriber.clicked_trigger_link
    description: A subscriber clicks a trigger link.
  - name: subscriber.visited_page
    description: A subscriber visits a tracked page.
  - name: subscriber.became_lead
    description: A subscriber crosses the threshold to become a lead.
  - name: subscriber.became_non_prospect
    description: A subscriber is reclassified as a non-prospect.
  - name: subscriber.updated_lead_score
    description: A subscriber's lead score changes.
  - name: subscriber.performed_custom_event
    description: A subscriber performs a custom event recorded via the Events API.
  - name: subscriber.updated_alias
    description: A subscriber's alias changes.

inbound_events:
  note: >-
    Drip also consumes events. POST /v2/{account_id}/events and its /batches
    sibling record custom subscriber events, and the v3 Shopper Activity
    endpoints ingest cart, order and product activity. Those are the write side
    of the same event model and are covered by the OpenAPI in openapi/.

gaps:
  - No AsyncAPI document, so the event payload schemas are not machine-readable.
  - No webhook signature or shared secret — receivers cannot authenticate Drip.
  - >-
    Event catalog is subscriber-scoped only. There are no account-level,
    campaign-level or workflow-level events (e.g. campaign activated, workflow
    published).