Kit · AsyncAPI Specification

Convertkit Webhooks

Version

View Spec View on GitHub Email MarketingCreator EconomySubscribersAutomationNewslettersSequencesFormsBroadcastsWebhookMCPAgentsAuthenticationMarketing AutomationLanding PagesSegmentationEmail CampaignsSoftware-as-a-ServiceCommerceAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: https://developers.kit.com/api-reference/webhooks/create-a-webhook
spec_type: none
asyncapi_published: false
asyncapi_note: >-
  Kit publishes NO AsyncAPI document. Probed the docs host, the api host, the
  Kit GitHub organisation and /asyncapi.yaml — all miss. Kit does ship a real,
  documented webhook surface, so the event catalogue below is captured verbatim
  from the Create-a-webhook reference and wired as type: Webhooks. No AsyncAPI
  was fabricated.
transport: http-callback
delivery:
  method: POST
  target: The subscriber-supplied target_url
  subscription_model: Per-event registration — one webhook record per event type, created through the API.
management:
  create: POST /v4/webhooks
  list: GET /v4/webhooks
  delete: DELETE /v4/webhooks/{id}
  spec: openapi/convertkit-webhooks-api-openapi.yml
  request_shape:
    target_url: string (required)
    event:
      name: string (required)
      form_id: integer or null
      tag_id: integer or null
      sequence_id: integer or null
      product_id: integer or null
      initiator_value: string or null
      custom_field_id: integer or null
security:
  signing: null
  verification: null
  note: >-
    Kit documents no webhook signing secret, HMAC signature header, or replay
    protection for webhook deliveries. Recorded as a gap.
events:
- name: subscriber.subscriber_activate
  domain: subscriber
  required_parameter: null
- name: subscriber.subscriber_unsubscribe
  domain: subscriber
  required_parameter: null
- name: subscriber.subscriber_bounce
  domain: subscriber
  required_parameter: null
- name: subscriber.subscriber_complain
  domain: subscriber
  required_parameter: null
- name: subscriber.form_subscribe
  domain: subscriber
  required_parameter: form_id
  parameter_type: integer
- name: subscriber.course_subscribe
  domain: subscriber
  required_parameter: sequence_id
  parameter_type: integer
  note: "\"Course\" is Kit's legacy name for a sequence."
- name: subscriber.course_complete
  domain: subscriber
  required_parameter: sequence_id
  parameter_type: integer
- name: subscriber.link_click
  domain: subscriber
  required_parameter: initiator_value
  parameter_type: string
  note: initiator_value is the link URL to watch.
- name: subscriber.product_purchase
  domain: subscriber
  required_parameter: product_id
  parameter_type: integer
- name: subscriber.tag_add
  domain: subscriber
  required_parameter: tag_id
  parameter_type: integer
- name: subscriber.tag_remove
  domain: subscriber
  required_parameter: tag_id
  parameter_type: integer
- name: purchase.purchase_create
  domain: purchase
  required_parameter: null
- name: custom_field.field_created
  domain: custom_field
  required_parameter: null
- name: custom_field.field_deleted
  domain: custom_field
  required_parameter: null
- name: custom_field.field_value_updated
  domain: custom_field
  required_parameter: custom_field_id
  parameter_type: integer
event_count: 15
domains:
- subscriber
- purchase
- custom_field
related_async:
  bulk_callback:
    param: callback_url
    description: >-
      Separate from webhooks: bulk endpoints accept a callback_url and POST the
      synchronous 200-OK response shape to it when async processing completes.
    docs: https://developers.kit.com/api-reference/bulk-and-async-processing