Clix · AsyncAPI Specification

Clix So Webhooks

Version

View Spec View on GitHub Push NotificationsMobileMessagingCampaignsEvent TrackingCustomer EngagementA2AMCPAgentsSDKUnited StatesCompanyAsyncAPIEvents

AsyncAPI Specification

Raw ↑
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.
All 92 tools →

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.