openapi: 3.0.3 info: title: Kit Accounts Webhooks API version: '4.0' servers: - url: https://api.kit.com tags: - name: Webhooks paths: /v4/webhooks: get: summary: List webhooks description: Webhooks are automations that will receive subscriber data when a subscriber event is triggered, such as when a subscriber completes a sequence.

When a webhook is triggered, a `POST` request will be made to your URL with a JSON payload. tags: - Webhooks security: - API Key: [] - OAuth2: [] parameters: - name: after description: To fetch next page of results, use `?after=` in: query required: false schema: nullable: true - name: before description: To fetch previous page of results, use `?before=` in: query required: false schema: nullable: true - name: include_total_count description: Set to `true` to include the `total_count` in the response. This option can cause slow responses; if paging through results, request it only on the first page and reuse the value for subsequent pages. in: query required: false schema: type: boolean example: false - name: per_page description: Number of results per page. Default 500, maximum 1000. in: query required: false schema: nullable: true responses: '200': description: Returns a paginated list of webhooks content: application/json: schema: type: object properties: webhooks: type: array items: type: object properties: id: type: integer account_id: type: integer event: type: object properties: name: type: string description: Product name tag_id: type: integer nullable: true form_id: type: integer nullable: true required: - name target_url: type: string required: - id - account_id - event - target_url pagination: type: object properties: has_previous_page: type: boolean has_next_page: type: boolean start_cursor: type: string end_cursor: type: string per_page: type: integer required: - has_previous_page - has_next_page - start_cursor - end_cursor - per_page required: - webhooks - pagination example: webhooks: - id: 2 account_id: 1617 event: name: tag_add tag_id: 44 target_url: http://example.convertkit.dev/tags - id: 1 account_id: 1617 event: name: form_subscribe form_id: 10 target_url: http://example.convertkit.dev/ pagination: has_previous_page: false has_next_page: false start_cursor: WzJd end_cursor: WzFd per_page: 500 '401': description: Returns a 401 if the token and/or account cannot be authenticated content: application/json: schema: type: object properties: errors: type: array items: type: string required: - errors example: errors: - The access token is invalid x-mcp: enabled: true post: summary: Create a webhook description: Available event types:
- `subscriber.subscriber_activate`
- `subscriber.subscriber_unsubscribe`
- `subscriber.subscriber_bounce`
- `subscriber.subscriber_complain`
- `subscriber.form_subscribe`, required parameter `form_id` [Integer]
- `subscriber.course_subscribe`, required parameter `sequence_id` [Integer]
- `subscriber.course_complete`, required parameter `sequence_id` [Integer]
- `subscriber.link_click`, required parameter `initiator_value` [String] as a link URL
- `subscriber.product_purchase`, required parameter `product_id` [Integer]
- `subscriber.tag_add`, required parameter `tag_id` [Integer]
- `subscriber.tag_remove`, required parameter `tag_id` [Integer]
- `purchase.purchase_create`
- `custom_field.field_created`
- `custom_field.field_deleted`
- `custom_field.field_value_updated`, required parameter `custom_field_id` [Integer] tags: - Webhooks security: - API Key: [] - OAuth2: [] parameters: [] responses: '201': description: Creates the webhook content: application/json: schema: type: object properties: webhook: type: object properties: id: type: integer account_id: type: integer event: type: object properties: name: type: string description: Product name initiator_value: nullable: true required: - name - initiator_value target_url: type: string required: - id - account_id - event - target_url required: - webhook example: webhook: id: 9 account_id: 1643 event: name: subscriber_activate initiator_value: null target_url: https://example.convertkit.dev/ '401': description: Returns a 401 if the token and/or account cannot be authenticated content: application/json: schema: type: object properties: errors: type: array items: type: string required: - errors example: errors: - The access token is invalid '422': description: Returns an error when missing required params content: application/json: schema: type: object properties: errors: type: array items: type: string required: - errors example: errors: - '`event` and `target` parameters must be provided' requestBody: content: application/json: schema: type: object properties: target_url: type: string event: type: object properties: name: type: string form_id: nullable: true tag_id: nullable: true sequence_id: nullable: true product_id: nullable: true initiator_value: nullable: true custom_field_id: nullable: true required: - name - form_id - tag_id - sequence_id - product_id - initiator_value required: - target_url - event example: target_url: https://example.convertkit.dev/ event: name: subscriber.subscriber_activate form_id: null tag_id: null sequence_id: null product_id: null initiator_value: null custom_field_id: null x-mcp: enabled: true /v4/webhooks/{id}: delete: summary: Delete a webhook tags: - Webhooks security: - API Key: [] - OAuth2: [] parameters: - name: id in: path required: true schema: type: integer example: 31 responses: '204': description: Deletes the webhook '401': description: Returns a 401 if the token and/or account cannot be authenticated content: application/json: schema: type: object properties: errors: type: array items: type: string required: - errors example: errors: - The access token is invalid '404': description: Returns a 404 when the provided id does not exist content: application/json: schema: type: object properties: errors: type: array items: type: string required: - errors example: errors: - Not Found '422': description: Returns a 422 when the webhook cannot be deleted content: application/json: schema: type: object properties: errors: type: array items: type: string required: - errors example: errors: - Unable to destroy the webhook. x-mcp: enabled: true components: securitySchemes: API Key: description: Authenticate API requests via an API Key type: apiKey in: header name: X-Kit-Api-Key OAuth2: description: Authenticate API requests via an OAuth token type: oauth2 flows: authorizationCode: authorizationUrl: https://api.kit.com/v4/oauth/authorize tokenUrl: https://api.kit.com/v4/oauth/token refreshUrl: https://api.kit.com/v4/oauth/token scopes: read: Read access to Kit API v4 write: Write access to Kit API v4 x-mint: mcp: enabled: true