身份验证
在每个请求中通过 token 查询参数或 Authorization 请求头传入 API 密钥。
涵盖身份验证、REST 快照查询和 WebSocket 实时逐笔数据流所需的一切内容。
在全部五类资产中完成身份验证、通过 REST 查询并通过 WebSocket 获取数据流。
创建密钥、发起首次 REST 调用并打开 WebSocket 数据流。
阅读在每个请求中通过 token 查询参数或 Authorization 请求头传入 API 密钥。
限制随套餐扩展。免费层允许每秒 10 个请求和 5 个并发 WebSocket 订阅。
使用简单的 GET 端点查询最新报价、OHLC K 线和历史时间序列。
订阅代码以接收推送式逐笔与报价更新,并自动处理心跳。
查询全部五类资产支持的代码和标识符。
只需三步即可获取第一条市场逐笔数据:取得密钥、调用 REST API,然后打开 WebSocket 连接。
创建免费账户,并在客户中心生成密钥。无需信用卡,也无需销售沟通。请妥善保管密钥——像保护密码一样保护它。
使用简单的 GET 请求获取任意代码的最新报价。通过 token 查询参数传入密钥。
# AllTick — Real-time Financial Market Data API
# Real-time Forex, Stocks, Crypto, Commodities and Indices market data
curl --get "https://quote.alltick.co/quote-b-api/kline" \
--data-urlencode "token=YOUR_API_TOKEN" \
--data-urlencode 'query={"trace":"getting_started","data":{"code":"EURUSD","kline_type":8,"kline_timestamp_end":0,"query_kline_num":2,"adjust_type":0}}'响应会返回最新买价、卖价和时间戳:
// AllTick — Real-time Financial Market Data API
// Real-time Forex, Stocks, Crypto, Commodities and Indices market data
{
"ret": 200,
"msg": "ok",
"data": {
"code": "EURUSD",
"kline_type": 8,
"kline_list": [{
"timestamp": "...",
"open_price": "...",
"close_price": "...",
"high_price": "...",
"low_price": "...",
"volume": "...",
"turnover": "..."
}]
}
}如需实时更新,请连接 WebSocket 并订阅一个或多个代码:
# AllTick — Real-time Financial Market Data API
# Real-time Forex, Stocks, Crypto, Commodities and Indices market data
import asyncio
import json
import os
import uuid
import websockets
async def stream():
token = os.environ["ALLTICK_API_TOKEN"]
url = f"wss://quote.alltick.co/quote-b-ws-api?token={token}"
async with websockets.connect(url) as ws:
await ws.send(json.dumps({
"cmd_id": 22004,
"seq_id": 1,
"trace": str(uuid.uuid4()),
"data": {"symbol_list": [{"code": "EURUSD"}]}
}))
async def keep_alive():
while True:
await asyncio.sleep(10)
await ws.send(json.dumps({
"cmd_id": 22000,
"seq_id": 2,
"trace": "heartbeat",
"data": {}
}))
heartbeat = asyncio.create_task(keep_alive())
try:
async for message in ws:
print(json.loads(message))
finally:
heartbeat.cancel()
asyncio.run(stream())