概述
CryptoMarket REST 和 Streaming API 3.0 版本为开发者提供了程序化访问下一代交易引擎的完整能力。新用户强烈建议使用此版本以获得最佳交易体验,现有交易者也推荐升级到最新的 3.0 版本。
API 采用标准的 HTTP 状态码和 JSON 格式响应,支持多种数据格式和认证方式,为量化交易、资产管理和市场数据分析提供全面支持。
核心功能特性
丰富的接口类型
- REST API: 标准的 HTTP 请求响应模式,适合大多数查询和操作需求
- Streaming API: 基于 WebSocket 的实时数据流,支持市场数据、交易和钱包信息的实时推送
全面的数据覆盖
- 市场数据:行情、深度、成交记录、K线等
- 交易功能:下单、撤单、订单管理
- 资产管理:余额查询、转账、提现
- 账户信息:交易历史、手续费查询
基础配置
API 端点地址
| 服务类型 | 地址 |
|---|---|
| REST API | https://api.exchange.cryptomkt.com/api/3 |
| 行情数据流 | wss://api.exchange.cryptomkt.com/api/3/ws/public |
| 交易数据流 | wss://api.exchange.cryptomkt.com/api/3/ws/trading |
| 钱包数据流 | wss://api.exchange.cryptomkt.com/api/3/ws/wallet |
数据格式规范
时间格式: 所有时间戳均采用 ISO 8601 格式或 UNIX 毫秒时间戳(UTC 时区)
示例: "2024-04-03T10:20:49.315Z" 或 "1614815872000"
数字格式: 所有金融数据(价格、数量、手续费等)均采用字符串形式的高精度数字
示例: "10.2000058"
认证机制
公开市场数据无需认证即可访问,其他请求需要有效的 API 密钥认证。用户可以在 API 设置页面创建多个具有不同访问权限的 API 密钥。
HS256 认证方式
采用 HMAC 签名认证,使用 secret_key 作为密钥,SHA256 作为哈希算法。请求需要包含正确的授权头部信息,确保通信安全。
👉 获取实时认证工具
频率限制
API 调用设有严格的频率限制,包括速率限制和突发限制。服务器会在 1 秒滑动窗口内处理不超过速率限制和突发限制总和的请求数。
基于 IP 的限制
- 默认接口: 20 RPS + 30 突发
- 公开接口: 30 RPS + 50 突发
- 钱包接口: 10 RPS + 10 突发
- 订单接口: 300 RPS + 450 突发
基于账户的限制
用户所有交易对的活跃和暂停订单总数不能超过 25000,单个交易对不能超过 2000。达到限制后,新的订单请求将被拒绝。
市场数据接口
币种信息
提供可用币种、代币的详细信息,包括全称、精度、充提状态、网络信息等。支持按币种代码过滤和按首选网络查询。
交易对信息
返回交易所交易的所有交易对信息,包括基础币种、报价币种、状态、数量增量、价格精度等参数。
行情数据
- Ticker 信息: 提供最新成交价、买一卖一、24小时高低点等核心行情数据
- 深度数据: 订单簿深度信息,支持全深度和指定深度查询
- 成交记录: 历史成交数据,支持按时间和ID范围查询
- K线数据: OHLCV 数据,支持多种时间周期和转换币种查询
交易功能
订单模型
支持多种订单类型:
- 限价单: 指定价格下单
- 市价单: 按市场最优价格成交
- 条件单: 包括止损限价、止损市价、止盈限价、止盈市价单
订单列表功能
支持高级订单策略:
- AON: 全部成交或取消
- OCO: 一个成交另一个取消
- OTO: 一个触发另一个
- OTOCO: 一个触发一个取消另一个
订单管理
提供完整的订单生命周期管理:
- 创建新订单
- 查询活跃订单
- 替换订单参数
- 取消单个或全部订单
资产管理
余额查询
- 交易余额: 查询交易账户可用和冻结资金
- 钱包余额: 查询钱包账户可用和冻结资金
转账功能
- 钱包与交易账户间资金划转
- 用户间内部转账
- 币种转换功能
充提服务
- 生成充值地址
- 加密货币提现
- 交易历史查询
- 地址白名单管理
最佳实践建议
连接管理
使用 HTTP 持久连接减少延迟,确保客户端支持 Keep-Alive 指令。HTTP/1.1 或 HTTP/2 协议默认启用此功能。
实时更新
使用 Streaming API 获取订单、交易和账户变动的实时更新,避免频繁轮询 REST API。
错误处理
正确处理各种 HTTP 状态码和错误响应,特别是 429 频率限制错误,需要实现适当的重试机制。
数据验证
启用严格验证确保价格和数量符合交易对的 tick_size 和 quantity_increment 要求,避免无效请求。
常见问题
如何开始使用 API?
首先在平台创建 API 密钥,根据需要分配适当的权限。从公开接口开始测试,逐步添加认证请求。
遇到频率限制怎么办?
优化请求频率,避免不必要的重复请求。对于高频需求,考虑使用 Streaming API 替代轮询。
如何处理大额数字?
所有金融数据都使用字符串格式传输,避免 JavaScript 等语言中的大数精度问题。在处理时确保使用高精度数值库。
实时数据推荐哪种方式?
对于实时市场数据和账户更新,强烈推荐使用 WebSocket 接口,效率更高且实时性更好。
订单状态有哪些?
订单可能的状态包括:新建、暂停、部分成交、完全成交、已取消、已过期等。不同状态对应不同的订单生命周期阶段。
如何确保交易安全?
使用 API 密钥的白名单限制,启用双因素认证,定期更换密钥,并严格控制密钥的权限范围。
版本更新记录
API 持续更新迭代,近期重要更新包括:
- 订单模型增加平均价格字段
- 增强多链支持,指定币种和基础区块链组合
- 添加新的费率计算方式和转换K线接口
- 优化订单限制和错误代码体系
建议开发者定期关注更新日志,及时调整对接方案以获得最佳性能和功能支持。
技术支持
使用过程中如遇到技术问题,建议:
- 仔细阅读接口文档和错误代码说明
- 检查请求参数格式和认证信息
- 查看系统状态和维护公告
- 参考提供的代码示例和最佳实践
通过合理使用 API 接口,开发者可以构建强大的交易系统、分析工具和资产管理平台,充分利用 CryptoMarket 提供的流动性和功能特性。