Kapost · AsyncAPI Specification
Kapost Webhooks
Version
View Spec
View on GitHub
Content OperationsContent MarketingContent ManagementMarketingSales EnablementWebhooksREST APIB2BUpland SoftwareAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-13'
method: searched
type: Webhooks
source: https://developer.kapost.com/webhooks ; https://github.com/kapost/http-destination-samples
spec_type: none
description: >-
Kapost publishes outbound webhooks (no AsyncAPI document). You register a
destination URL in the Kapost instance webhook settings and Kapost sends an
HTTP POST with a JSON body whenever content is created, modified, deleted, or
published. A test button is available on the webhook settings page. You may
configure an SSL endpoint so payloads are encrypted in transit; the docs do
not document an HMAC signature / signing-secret verification mechanism.
delivery:
method: POST
content_type: application/json
transport_security: SSL endpoint supported (no documented HMAC signature)
envelope:
fields:
- name: operation
description: The type of change. One of create, update, publish, delete.
- name: type
description: Object type. Currently only "content" (subject to change as webhooks expand).
- name: payload
description: Contains full_post with content metadata (id, creator_id, assignee_id, content_type, timestamps, draft status, custom fields).
- name: instance
description: Identifies the Kapost instance (id and subdomain).
events:
- name: content.create
operation: create
type: content
description: Fired when a content item is created.
- name: content.update
operation: update
type: content
description: Fired when a content item is modified.
- name: content.publish
operation: publish
type: content
description: Fired when a content item is published.
- name: content.delete
operation: delete
type: content
description: Fired when a content item is deleted.
testing:
test_button: true
detail: >-
The Kapost webhook settings page carries a test button that fires a sample delivery so an
integrator can confirm their server responds correctly.
outbound_destinations:
- name: Generic HTTP Destination
kind: outbound-publish-callback
docs: https://developer.kapost.com/http-destination
samples: https://github.com/kapost/http-destination-samples
samples_license: Unlicense
samples_last_push: '2024-01-10'
configured_in: Kapost App Center
gate: "Contact your customer success manager to enable."
description: >-
A second, richer outbound surface distinct from content webhooks. Kapost POSTs to a
customer-built HTTP endpoint to publish content. The endpoint must implement three actions
signalled by a header rather than by path.
actions:
- {action: auth, method: POST, description: Connection/authentication handshake.}
- {action: publish, method: POST, description: Publish a content item to the destination.}
- {action: republish, method: POST, description: Re-publish a previously published item.}
mandatory_headers:
- {name: Content-Type, value: application/json}
- {name: X-Kapost-Platform, value: HTTP}
- {name: X-Kapost-Action, value: 'auth | publish | republish'}
authentication_options:
- {mode: None, detail: No authentication.}
- {mode: Basic Auth, detail: 'Authorization: Basic base64(username:password)'}
- {mode: Bearer (API Key), detail: 'Authorization: Bearer <api_key>'}
- {mode: Payload (JSON), detail: User-defined custom JSON key/value payload sent with every request.}
signature_options:
- {mode: None}
- {mode: SHA1, detail: SHA1 signature computed over a configured shared secret.}
- {mode: SHA256, detail: SHA256 signature computed over a configured shared secret.}
custom_header:
supported: true
detail: 'An optional additional request header, required to be named in the form X-Your-Header-Name.'
- name: XML-RPC (MetaWeblog subset)
kind: outbound-publish-rpc
docs: https://developer.kapost.com/xmlrpc-docs
files_docs: https://developer.kapost.com/xmlrpc-files
description: >-
For publishing into a CMS, Kapost calls a customer-hosted standards-compliant XML-RPC
endpoint implementing a subset of the MetaWeblog API, plus Kapost-specific file methods.
required_methods:
- {method: blogger.getUsersBlogs, detail: 'Returns [{blogid, blogName}]; must return at least one blog. The blog_id plus username/password authenticate all subsequent calls.'}
- {method: metaWeblog.newPost, detail: 'newPost(blog_id, username, password, content, publish) — creates a post.'}
- {method: kapost.newFile, detail: 'Pushes an individual file (e.g. a Word or PDF document) to the CMS.'}
error_contract: >-
All methods are expected to raise standards-compliant XML-RPC faults on error. Kapost states
it cannot debug faults in customer-implemented endpoints.
reference_implementation: >-
A WordPress sample is provided and explicitly marked NOT production ready; the shipping
first-party integration is the Kapost Byline WordPress plugin.
asyncapi_document:
published: false
detail: >-
No AsyncAPI document exists for any of these three outbound surfaces. Probed
/asyncapi.yaml, /asyncapi.json on developer.kapost.com and api.kapost.com — 404/401.
Recorded as a Webhooks surface only; no `AsyncAPI` pointer is emitted.