AllTick API · AsyncAPI Specification

Alltick Api Event Surface

Version

View Spec View on GitHub Financial market dataReal-Time Datastock-market-dataforex-dataCryptocurrency Datacommodities-dataTick Datawebsocket-streamingFintechQuantitative Tradingmarket-data-apitrading-haltsAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-18'
method: searched
source: >-
  https://en.apis.alltick.co/websocket-api/websocket-interface-api/transaction-quote-subscription +
  https://en.apis.alltick.co/websocket-api/websocket-interface-api/handicap-quote-subscription +
  https://en.apis.alltick.co/websocket-api/websocket-interface-api/cancel-quote-subscription +
  https://en.apis.alltick.co/websocket-api/websocket-interface-api/ping-pong +
  https://en.apis.alltick.co/integration-process/universal-standard-header-description/websocket-common-standard-header
checked: '2026-08-18'
summary: >-
  AllTick has a genuine, production, push-based event surface — two WebSocket streams delivering
  tick-by-tick trades and order-book depth — but ships NO machine-readable event contract for it.
  The protocol is fully specified in prose (numbered cmd_id messages, request/response/push triples,
  a mandatory heartbeat) and completely absent from every machine-readable artifact: the OpenAPI
  covers only the 12 HTTP operations, and no AsyncAPI document exists on any host. This is a
  streaming-first market-data vendor whose streaming half is invisible to tooling.
asyncapi:
  present: false
  probed:
    - url: https://quote.alltick.co/asyncapi.json
      status: 401
    - url: https://en.apis.alltick.co/asyncapi.yaml
      status: 404
    - url: https://apis.alltick.co/api-reference/openapi.json
      status: 200
      note: the only machine-readable contract; HTTP only, no `webhooks` block, no callbacks
  note: >-
    quote.alltick.co returns its token gate ({"msg":"token is required","ret":401}) for every path,
    so a 401 there is a gate, not a hidden document.
webhooks:
  customer_registerable: false
  openapi_webhooks_block: false
  openapi_callbacks: false
  note: >-
    AllTick never calls a customer URL. Delivery is pull (HTTPS) or client-initiated subscribe-and-
    receive (WebSocket). No `type: Webhooks` pointer is emitted, because AllTick advertises no
    webhook surface and claiming one would be false.
streams:
  - name: Stock market data stream
    url: wss://quote.alltick.co/quote-stock-b-ws-api
    markets: [Hong Kong stocks, US stocks, A-shares]
    auth: "'?token=yourToken' appended to the handshake URL"
  - name: Forex / crypto / commodity stream
    url: wss://quote.alltick.co/quote-b-ws-api
    markets: [forex, cryptocurrencies, precious metals, crude oil]
    auth: "'?token=yourToken' appended to the handshake URL"
envelope:
  request: {cmd_id: uint32, seq_id: uint32, trace: string, data: object}
  response: {ret: int32, msg: string, cmd_id: uint32, seq_id: uint32, trace: string, data: object}
protocol:
  - cmd_id: 22000
    direction: client -> server
    name: Heartbeat (ping)
    description: Must be sent every 10 seconds.
  - cmd_id: 22001
    direction: server -> client
    name: Heartbeat response (pong)
    description: >-
      No heartbeat received within 30 seconds and the server closes the connection.
  - cmd_id: 22002
    direction: client -> server
    name: Subscribe order book (market depth)
    payload: symbol_list[]
    description: One active order-book subscription per connection; a new request replaces the old set.
  - cmd_id: 22003
    direction: server -> client
    name: Subscribe order book — acknowledgement
  - cmd_id: 22999
    direction: server -> client (push)
    name: Order book tick push
    payload: code, seq, tick_time, bids[], asks[]
  - cmd_id: 22004
    direction: client -> server
    name: Subscribe latest trade price (tick-by-tick)
    payload: symbol_list[]
  - cmd_id: 22005
    direction: server -> client
    name: Subscribe latest trade price — acknowledgement
  - cmd_id: 22998
    direction: server -> client (push)
    name: Trade tick push
    payload: code, seq, tick_time, price, volume, turnover, trade_direction
  - cmd_id: 22006
    direction: client -> server
    name: Cancel quote subscription
    payload:
      cancel_type: 0=cancel all, 1=cancel order book, 2=cancel trade, 3=cancel exchange rate
  - cmd_id: 22007
    direction: server -> client
    name: Cancel quote subscription — acknowledgement
not_supported:
  - name: K-line push
    detail: >-
      AllTick states explicitly that the WebSocket interface does NOT push candlesticks; both
      historical and real-time K-lines are HTTP-only.
    source: https://en.apis.alltick.co/websocket-api/websocket-interface-api/ping-pong-1
constraints: rate-limits/alltick-api-rate-limits.yml
errors: errors/alltick-api-error-codes.yml
pointer_note: >-
  Neither an `AsyncAPI` nor a `Webhooks` pointer is emitted in apis.yml. The event surface is real
  and this artifact documents it faithfully, but AllTick publishes no AsyncAPI document and no
  webhooks; asserting either would credit a contract that does not exist. Publishing an AsyncAPI 3.0
  document for these two channels is the highest-value single artifact AllTick could add.

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/alltick-api-event-surface"
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.