Clix · AsyncAPI Specification
Clix So Webhooks
Version
View Spec
View on GitHub
Push NotificationsMobileMessagingCampaignsEvent TrackingCustomer EngagementA2AMCPAgentsSDKUnited StatesCompanyAsyncAPIEvents
AsyncAPI Specification
generated: '2026-09-19'
method: searched
source: https://docs.clix.so/integrations/webhook
docs:
- https://docs.clix.so/integrations/webhook
- https://docs.clix.so/a2a/advanced-features
asyncapi_published: false
summary: >-
Clix documents two outbound webhook surfaces and ships no AsyncAPI for either, so this is a webhook catalog
(not a generated AsyncAPI). (1) Project webhooks, configured in the console, POST a JSON event to a customer
HTTPS URL when a push notification is sent or fails — two event types, PUSH_SENT and PUSH_FAILED, one
payload shape. There is no signature header; authentication is whatever static custom headers the customer
configures. (2) A2A task webhooks, registered per task through CreateTaskPushNotificationConfig, POST a
JSON-RPC request (method tasks/pushNotification) carrying a statusUpdate; Clix sends Authorization and
X-A2A-Token when configured and refuses local-only destinations. Retry policy is not documented for either.
webhooks:
configuration:
where: Console > Project settings > Webhook tab > "Create a webhook"
fields:
name: descriptive label
triggers: 'Sent, Failed (one or both)'
http_method: POST (only)
url: 'must be a valid HTTPS URL, publicly reachable (firewall allow-listing of Clix IPs is required; the IP list is not published on the page)'
timeout_ms: 'default 5000'
custom_headers: 'optional — Content-Type application/json is added automatically; customers add Authorization or other headers themselves'
activation: immediate on save
security:
signature_header: none
verification: 'none built in — rely on your own custom header (e.g. Authorization) configured on the webhook'
replay_protection: 'none — the docs recommend "implement idempotency using message_id to handle duplicates"'
delivery:
expected_response: '2xx within the configured timeout, "ideally under 1 second"; process asynchronously'
retries: not documented
logs: 'per-webhook Sent/Failed counts and detailed delivery logs in the console (connection timeouts, invalid SSL certificates, non-2xx responses, connection refusals)'
load_warning: '"High volumes of push notifications can generate significant traffic to your webhook endpoint" — TPS/stress test before enabling in production'
events:
- name: PUSH_SENT
trigger: Sent — a push notification was successfully sent to a device
payload:
project_id: string
event_type: PUSH_SENT
timestamp: RFC 3339 with nanoseconds (e.g. 2025-12-16T07:42:54.168140781Z)
message_id: string (uuid-like)
device_id: string (uuid-like)
platform: 'string enum — ANDROID observed in the example; iOS implied by the product'
notification: {title: string, body: string, image_url: string, landing_url: string}
- name: PUSH_FAILED
trigger: Failed — a push notification failed to be delivered
payload: same shape as PUSH_SENT with event_type PUSH_FAILED
example:
project_id: YOUR_PROJECT_ID
event_type: PUSH_SENT
timestamp: '2025-12-16T07:42:54.168140781Z'
message_id: abcdefgh-b3f9-7950-9b24-abcdefgh
device_id: abcdefgh-9171-4292-8382-abcdefgh
platform: ANDROID
notification: {title: '👋 Hello from Clix!', body: 'This is a test message to check your push setup 🚀', image_url: '', landing_url: ''}
a2a_task_webhooks:
register: 'JSON-RPC CreateTaskPushNotificationConfig {taskId, url, token?, authentication?: {scheme, credentials}} (V0: tasks/pushNotificationConfig/set)'
manage: [GetTaskPushNotificationConfig, ListTaskPushNotificationConfigs, DeleteTaskPushNotificationConfig]
callback:
method: POST
body: 'JSON-RPC request {jsonrpc: "2.0", method: "tasks/pushNotification", params: {result: {statusUpdate: {taskId, contextId, status: {state, timestamp}}}}}'
headers: ['Authorization: <scheme> <credentials> (when authentication configured)', 'X-A2A-Token: <token> (when token configured)']
url_safety: 'Loopback, link-local, site-local and other local-only addresses are rejected; use a publicly reachable HTTPS endpoint.'
scope: 'Task lifecycle events only — "They are not device push notifications."'
states_emitted: [submitted, working, completed, failed, canceled, rejected, input-required, auth-required]
streaming:
protocol: Server-Sent Events over POST https://api.clix.so/a2a
methods: [SendStreamingMessage, SubscribeToTask]
note: 'Built-in skills emit statusUpdate events only (no artifactUpdate). SubscribeToTask returns a single snapshot and closes; it is not a resumable stream.'
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.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/clix-so-webhooks"
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.