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-haltsAsyncAPIWebhooksEvents
AsyncAPI Specification
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.