Kit · AsyncAPI Specification
Convertkit Webhooks
Version
View Spec
View on GitHub
Email MarketingCreator EconomySubscribersAutomationNewslettersSequencesFormsBroadcastsWebhookMCPAgentsAuthenticationMarketing AutomationLanding PagesSegmentationEmail CampaignsSoftware-as-a-ServiceCommerceAsyncAPIWebhooksEvents
AsyncAPI Specification
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