China Mobile · AsyncAPI Specification

China Mobile Onenet Webhooks

Version

View Spec View on GitHub TelecommunicationsChinaMobile Network OperatorNetwork APIsCAMARAGSMA Open GatewayIoT5GBroadbandQuality on DemandNumber AuthenticationSatelliteAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-07-25'
method: searched
source: https://open.iot.10086.cn/doc/iot_platform/book/application-develop/push/http_push.html
spec: asyncapi/china-mobile-onenet-asyncapi.yml
summary: >-
  OneNET publishes a real, fully documented outbound webhook surface. Two families exist:
  the platform-wide 数据推送 (HTTP data push) service, driven by the rule engine, and the
  Voice Call Service per-call status callbacks. Both are plain HTTP(S) POST to a
  subscriber-controlled URL, both are signed, and the data-push family adds a mandatory
  address-validation handshake, optional AES payload encryption and a published
  exponential-backoff retry schedule. No other China Mobile capability platform
  (api.iot.10086.cn, ct.open.10086.cn, dev.10086.cn) publishes a webhook catalogue
  anonymously.
webhooks:
- name: HTTP 数据推送 (HTTP data push)
  direction: outbound
  transport: HTTP/HTTPS POST
  configuration: >-
    Created as a 推送实例 (push instance) in the console under 应用开发 → 消息推送. Maximum 10
    instances per user. Fields: push address (must accept both GET and POST), token, and
    message encryption mode (明文 plaintext or 安全 secure).
  event_sources:
  - 设备生命周期 (device lifecycle)
  - 设备物模型 (device thing-model data)
  - 场景联动触发日志 (scene-linkage trigger log)
  routing: >-
    Message source is configured per project through the rule engine; the destination is
    selected as HTTP 推送 and bound to a validated push instance.
  payload_fields: [msg, nonce, signature, time, id]
  signature: base64(md5(token + nonce + msg))
  encryption: >-
    Optional 安全模式 — msg is AES encrypted in CBC mode with PKCS7 padding using a
    platform-generated 16-byte key.
  validation_handshake: >-
    GET {url}?msg=…&nonce=…&signature=… ; verify signature, then echo msg verbatim.
    Instance states are 待验证 (pending), 验证成功 (validated) and 验证失败 (failed).
  delivery_contract:
    ack_timeout_seconds: 5
    required_status: 200
    retries: 16
    strategy: exponential backoff
    total_retry_window: 2h 45m 04s
    schedule_seconds: [5, 10, 30, 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 1200,
      1800, 3600]
    note: >-
      Receivers must be idempotent — OneNET replays a message up to 16 times when an ack
      is late or non-200, and the platform itself offers no idempotency key.
  docs: https://open.iot.10086.cn/doc/iot_platform/book/application-develop/push/http_push.html
  sdk: https://github.com/cm-heclouds/data-push
- name: 语音通知状态呼叫通知 (voice notification call-status callback)
  direction: outbound
  transport: HTTP/HTTPS POST
  configuration: notify_url field on the voiceNotify request, else the platform-configured URL
  statuses: [CallingCallee, Connected, Disconnected, CollectResult]
  payload_fields: [user_id, call_id, caller, callee, status, reason, operation_result,
    call_duration]
  auth: OneNET signed Authorization header on the inbound request
  ack_envelope: [request_id, code_no, code, message]
  docs: https://open.iot.10086.cn/doc/iot_platform/book/vcs/vcs_api/notify-status.html
- name: 点击拨号状态呼叫通知 (click-to-dial call-status callback)
  direction: outbound
  transport: HTTP/HTTPS POST
  configuration: notify_url field on the dialNotify request, else the platform-configured URL
  statuses: [CallingCaller, CallingCallee, Connected, Disconnected]
  payload_fields: [user_id, call_id, caller, callee, status, report_date, reason,
    call_duration, caller_call_duration]
  auth: OneNET signed Authorization header on the inbound request
  ack_envelope: [request_id, code_no, code, message]
  docs: https://open.iot.10086.cn/doc/iot_platform/book/vcs/vcs_api/ctd-status.html
other_event_transports:
- name: 消息队列 MQ
  note: >-
    OneNET also offers a managed message-queue destination on the rule engine as an
    alternative to HTTP push. Documented at
    https://open.iot.10086.cn/doc/iot_platform/book/transfer/mq_introduce.html
- name: MQTT device access
  note: >-
    Devices connect over MQTT/CoAP/LwM2M/HTTP; topics are documented under
    https://open.iot.10086.cn/doc/iot_platform/book/device-connect&manager/MQTT/topic.html
    but the broker host is not published anonymously.

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/china-mobile-onenet-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.