AWeber · AsyncAPI Specification

Aweber Webhooks

Version

View Spec View on GitHub Email MarketingMarketing AutomationEmailNewslettersSubscribersCampaignsLanding PagesWeb FormsSegmentsWebhookAuthenticationSmall BusinessAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: https://api.aweber.com/#tag/Webhooks
docs: https://api.aweber.com/#tag/Webhooks
spec_type: webhook-catalog
asyncapi_published: false
note: >-
  AWeber publishes no AsyncAPI document. It DOES publish a complete, well-specified webhook
  contract inside the API reference — three events, an HMAC-SHA256 signature scheme, a versioned
  vendor media type, documented batching, delivery-id tracing and a documented retry posture.
  This artifact captures that catalog verbatim from AWeber's own reference; no event, field or
  header here was invented. Event payload field lists are the provider's own tables.
transport: http-post-callback
delivery:
  callback_configuration: >-
    The integration registers a Callback URL Allow-list (one or more exact URL prefixes) and
    selects the events it wants; the AWeber customer then sets the actual Webhook URL in the
    AWeber control panel at https://www.aweber.com/users/apps, and it must match a registered
    prefix. Since Webhooks 1.3.0 (2022-06-21) this no longer requires a request to the API team —
    it can be enabled for any OAuth 2 application on labs.aweber.com.
  required_scopes: [subscriber.read, account.read]
  content_type: application/vnd.aweber.webhook+json; version=1.0
  batching: >-
    Events occurring in short succession are batched into one callback. The payload's data[] array
    carries multiple {event, payload} objects; batch size is not fixed.
  expected_response: 'Return a 2XX (documented as 200); the response body is ignored.'
  failure_behavior: >-
    A non-2XX response may cause AWeber to retry the message or to stop sending webhooks
    entirely. The retry schedule is not published.
security:
  scheme: hmac-sha256
  header: AWeber-Signature
  format: '<hash-type>=<hex digest>, e.g. sha256=99e0837d...  (RFC 2104 HMAC)'
  verification_docs: https://api.aweber.com/#tag/Webhooks
headers:
  - {name: AWeber-Delivery-ID, description: Unique identifier for this delivery; quote it when contacting support}
  - {name: AWeber-Signature, description: Hash type and message digest separated by '='; sha256 is the only defined type}
  - {name: Date, description: 'RFC 7231 date the message was generated'}
envelope:
  fields:
    - {name: account, type: string, description: Uniquely identifies the account the event fired for}
    - {name: client_id, type: string, description: OAuth 2 client ID of the application}
    - {name: callback, type: string, description: Unique identifier for the callback registration}
    - {name: data, type: array, description: 'Array of {event, payload} objects'}
events:
  - name: subscriber.added
    since: '2019-11-26'
    description: >-
      Triggered when a subscriber is added to a list, regardless of status — fired for BOTH
      verified and unverified subscribers.
    payload_fields:
      [account, ad_tracking, custom_fields, email, id, links, list, misc_notes, name, signup_ip,
       signup_location, status, subscribed_at, subscription_method, subscription_url, tags,
       unsubscribe_method, unsubscribed_at, verified_at]
    related_operations: [addSubscriber, getSubscriber]
  - name: subscriber.subscribed
    since: '2020-01-03'
    description: >-
      Triggered when a subscriber is subscribed to a list. Fires for subscribers on both
      confirmed-opt-in (COI) and single-opt-in (SOI) lists.
    payload_fields:
      [account, ad_tracking, custom_fields, email, id, links, list, misc_notes, name, signup_ip,
       signup_location, status, subscribed_at, subscription_method, subscription_url, tags,
       unsubscribe_method, unsubscribed_at, verified_at]
    related_operations: [getSubscriber]
  - name: subscriber.unsubscribed
    since: '2020-01-03'
    description: Triggered when a subscriber unsubscribes from a list.
    related_operations: [getSubscriber]
enumerations:
  status: [subscribed, unconfirmed, unsubscribed, deleted]
  subscription_method: [api, email, import, webform]
  unsubscribe_method: ['unsubscribe link', 'customer cp', undeliverable, 'api: unsubscribe', 'api: move']
links:
  note: >-
    Every event payload carries a links object with absolute REST URLs for the account, list and
    subscriber, so a consumer can hydrate straight into the REST API without constructing paths.
gaps:
  - No AsyncAPI (or CloudEvents) document — the contract is human-readable tables only.
  - No published retry schedule or backoff; "may retry or stop sending entirely".
  - No event types beyond the subscriber lifecycle; nothing for broadcasts, campaigns, purchases or forms.
  - No replay/redelivery endpoint and no delivery-log API.