iContact · AsyncAPI Specification

iContact Webhooks

Version 2.2

Derived AsyncAPI description of the four contact-lifecycle webhook events iContact documents at https://help.icontact.com/customers/s/article/Web-Hooks-iContact-API. NOT A PROVIDER ARTIFACT. iContact publishes no AsyncAPI. This document was derived by API Evangelist on 2026-08-13 from iContact's own published webhook reference and its contact and list field tables. Every event id, field name and payload shape below appears verbatim in iContact's documentation; nothing has been invented. Where iContact documents nothing — signature verification, retry policy, delivery guarantees, expected receiver response — this document is silent rather than filled in. Subscriptions are managed through the REST API, not through this document: POST /a/{accountId}/c/{clientFolderId}/webhooks with an eventId and a url.

View Spec View on GitHub Email MarketingMarketing AutomationCampaignsContactsListSegmentsWebhookEmail DeliverabilitySMBAsyncAPIEventsWebhooks

Channels

contactEvents
iContact POSTs a JSON array of event objects to the registered url. One registration carries one eventId, so a receiver may be registered several times at different paths to separate event types.

Messages

contactCreated
contact_created
When a new contact is created.
contactUpdated
contact_updated
When an existing contact is modified.
contactSubscribed
contact_subscribed
When a contact is subscribed to a list.
contactUnsubscribed
contact_unsubscribed
When a contact is unsubscribed from a list.

Servers

https
subscriber
The consumer-supplied endpoint registered in the webhook `url` field. iContact POSTs event batches to it. The host is chosen by the subscriber; the value here is the placeholder used in iContact's own example.

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: iContact Webhooks
  version: '2.2'
  description: >-
    Derived AsyncAPI description of the four contact-lifecycle webhook events
    iContact documents at
    https://help.icontact.com/customers/s/article/Web-Hooks-iContact-API.


    NOT A PROVIDER ARTIFACT. iContact publishes no AsyncAPI. This document was
    derived by API Evangelist on 2026-08-13 from iContact's own published
    webhook reference and its contact and list field tables. Every event id,
    field name and payload shape below appears verbatim in iContact's
    documentation; nothing has been invented. Where iContact documents nothing
    — signature verification, retry policy, delivery guarantees, expected
    receiver response — this document is silent rather than filled in.


    Subscriptions are managed through the REST API, not through this document:
    POST /a/{accountId}/c/{clientFolderId}/webhooks with an eventId and a url.
  contact:
    name: iContact API Developer Portal
    url: https://help.icontact.com/customers/s/article/API-Developer-Portal
  externalDocs:
    url: https://help.icontact.com/customers/s/article/Web-Hooks-iContact-API
defaultContentType: application/json

servers:
  subscriber:
    host: 'www.yourhost.com'
    protocol: https
    description: >-
      The consumer-supplied endpoint registered in the webhook `url` field.
      iContact POSTs event batches to it. The host is chosen by the subscriber;
      the value here is the placeholder used in iContact's own example.

channels:
  contactEvents:
    address: '/'
    title: Subscriber webhook endpoint
    description: >-
      iContact POSTs a JSON array of event objects to the registered url. One
      registration carries one eventId, so a receiver may be registered several
      times at different paths to separate event types.
    messages:
      contactCreated:
        $ref: '#/components/messages/contactCreated'
      contactUpdated:
        $ref: '#/components/messages/contactUpdated'
      contactSubscribed:
        $ref: '#/components/messages/contactSubscribed'
      contactUnsubscribed:
        $ref: '#/components/messages/contactUnsubscribed'

operations:
  receiveContactCreated:
    action: receive
    channel:
      $ref: '#/channels/contactEvents'
    summary: When a new contact is created.
    messages:
      - $ref: '#/channels/contactEvents/messages/contactCreated'
  receiveContactUpdated:
    action: receive
    channel:
      $ref: '#/channels/contactEvents'
    summary: When an existing contact is modified.
    messages:
      - $ref: '#/channels/contactEvents/messages/contactUpdated'
  receiveContactSubscribed:
    action: receive
    channel:
      $ref: '#/channels/contactEvents'
    summary: When a contact is subscribed to a list.
    messages:
      - $ref: '#/channels/contactEvents/messages/contactSubscribed'
  receiveContactUnsubscribed:
    action: receive
    channel:
      $ref: '#/channels/contactEvents'
    summary: When a contact is unsubscribed from a list.
    messages:
      - $ref: '#/channels/contactEvents/messages/contactUnsubscribed'

components:
  messages:
    contactCreated:
      name: contact_created
      title: contact_created
      summary: When a new contact is created.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/ContactEventBatch'
    contactUpdated:
      name: contact_updated
      title: contact_updated
      summary: When an existing contact is modified.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/ContactEventBatch'
    contactSubscribed:
      name: contact_subscribed
      title: contact_subscribed
      summary: When a contact is subscribed to a list.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/ContactListEventBatch'
    contactUnsubscribed:
      name: contact_unsubscribed
      title: contact_unsubscribed
      summary: When a contact is unsubscribed from a list.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/ContactListEventBatch'

  schemas:
    ContactEventBatch:
      type: array
      description: 'Documented payload shape: [{"contact": {contact_data}}]'
      items:
        type: object
        required: [contact]
        properties:
          contact:
            $ref: '#/components/schemas/Contact'

    ContactListEventBatch:
      type: array
      description: >-
        Documented payload shape:
        [{"contact": {contact_data}, "list": {list_data}}]
      items:
        type: object
        required: [contact, list]
        properties:
          contact:
            $ref: '#/components/schemas/Contact'
          list:
            $ref: '#/components/schemas/List'

    Contact:
      type: object
      description: >-
        "The data format will be the same as the data format for the object on
        the public API." Fields below are transcribed from the contacts
        resource reference.
      externalDocs:
        url: https://help.icontact.com/customers/s/article/Contacts-iContact-API
      properties:
        contactId:
          type: integer
          description: Unique identifier for a single contact.
          examples: [349]
        email:
          type: string
          format: email
          description: The contact's email address. Must be unique.
          examples: ['smith@icontact.com']
        prefix:
          type: string
          description: The contact's salutation.
          examples: ['Miss']
        firstName:
          type: string
          examples: ['Mary']
        lastName:
          type: string
          examples: ['Smith']
        suffix:
          type: string
          description: The contact's name qualifications.
          examples: ['III']
        street:
          type: string
        street2:
          type: string
        city:
          type: string
          examples: ['Durham']
        state:
          type: string
          maxLength: 10
          examples: ['NC']
        postalCode:
          type: string
          examples: ['27713']
        phone:
          type: string
        fax:
          type: string
        business:
          type: string
          description: The contact's business phone number.
        status:
          type: string
          description: Subscription status of the contact.
          enum: [normal, bounced, donotcontact, pending, invitable, deleted]
        createDate:
          type: string
          description: >-
            Date the contact was added to iContact. ISO 8601 per the API's
            timestamp convention.
          examples: ['2009-06-18 22:39:54']
        bounceCount:
          type: integer
          description: Number of times emails sent to this contact have bounced.
          examples: [3]

    List:
      type: object
      description: Fields transcribed from the lists resource reference.
      externalDocs:
        url: https://help.icontact.com/customers/s/article/Lists-iContact-API
      properties:
        listId:
          type: integer
          description: Unique identifier for the list.
          examples: [375628]
        name:
          type: string
          description: The name for the list.
          examples: ['My contacts']
        description:
          type: string
          description: Describes the list. Not visible to contacts on the list.
        publicname:
          type: string
          description: Publicly facing name for a list, visible to contacts.
          examples: ['Bakery Newsletter']
        emailOwnerOnChange:
          type: integer
          enum: [0, 1]
          default: 1
          description: >-
            Whether the list owner is emailed when a subscriber is added or
            removed.

x-provenance:
  generated: '2026-08-13'
  method: derived
  source: https://help.icontact.com/customers/s/article/Web-Hooks-iContact-API
  derived_by: API Evangelist enrichment pipeline
  provider_published: false
x-undocumented:
  note: >-
    iContact documents none of the following, so this description asserts
    none of them.
  items:
    - signature or shared-secret verification of the callback
    - retry, backoff or dead-letter behaviour on receiver failure
    - the status code a receiver is expected to return
    - delivery or ordering guarantees
    - an event id or timestamp inside the payload
    - any message-level event (send, delivery, bounce, open, click, complaint)
    - '"Do Not Contact" events, which iContact explicitly states are unavailable'

Work with this as data

Every AsyncAPI spec 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 asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • 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 AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/icontact-webhooks-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

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

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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