Alpaca API 平台
机器翻译译自英文(docs.alpaca.markets)本页 21 段已全部译完
为什么使用 API?
Alpaca 进入金融市场的功能主要通过 API 提供。我们相信 API 是与我们这类服务交互并为你的业务带来创新的手段。我们的 API 旨在满足你的需求,我们不断构建你所需的功能。
REST、SSE 和 WebSocket
我们的 API 主要以 REST 风格构建。这是与我们的服务集成的一种简单而强大的方式。
除了通过同步通信回复的 REST API 之外,我们的 API 还包括基于 WebSocket 和 SSE(即 Server-Sent Events)的异步事件 API。由于金融市场中会发生许多类型的事件(订单根据市场走势成交、现金在一段时间后结算等),这种基于事件的 API 可帮助你即时获取更新,并为你的客户提供最佳用户体验。
架构
Alpaca 平台由 API、Web 仪表板、交易模拟器、沙箱环境、身份验证服务、订单管理系统、交易路由、后台会计和清算系统组成,所有这些组件都是使用现代架构从零开始内部构建的。
Alpaca 平台目前托管在 Google Cloud Platform 的 us-east4 区域。站点通过专用光纤线路连接到新泽西州 Secaucus 的数据中心,以便与各种市场场所交叉连接。
在底层,Alpaca 与各种第三方合作。由于我们在 DTCC 上进行股票交易清算和结算时是自行清算,我们也在 OCC 进行期权交易清算和结算时自行清算。现金转账和托管主要由 BMO Harris 提供。我们使用 Currency Cloud 和 Airwallex 进行钱包入金和国际转账。Citadel Securities、Virtu America、Jane Street、Ion Group 和其他执行提供商为我们的客户订单提供执行服务。我们与多个数据服务提供商集成,其中 ICE Data Services 是我们各种市场数据的主要供应商。
Alpaca Crypto 在我们的内部中央限价订单簿上执行客户交易,自行清算所有交易,并且不托管客户现金,但与 Customers Bank、Cross River Bank、Choice Financial 和 FVBank 有银行关系。为了提供实时市场数据,Alpaca Crypto 与 Coinbase、Kraken、FalconX 和 Stillman Digital 合作。
API 更新与升级
为了持续为开发者提供价值,Alpaca 经常对我们的 API 进行更新和升级。
我们在文档中添加了以下章节,以帮助确保作为开发者的你了解预期什么、何时预期以及如何正确处理某些场景。
向后兼容的变更
你应预期我们对 API 所做的以下任何类型的变更都被视为向后兼容的变更:
- 添加新的或类似命名的 API
- 向已定义的模型和对象(如 API 返回对象、嵌套对象等)添加新字段(例如:向错误载荷添加新的代码字段)
- 向已定义的集合或枚举(如状态、支持的资产等)添加新项(例如:向所有账户状态集合添加新的账户状态)
- 增强某些列表返回的顺序
- 支持新的 HTTP 版本(HTTP2、QUIC)
- 为现有端点添加新的 HTTP 方法
- 期望新的 HTTP 请求头(例如新的身份验证)
- 发送新的 HTTP 头(例如 HTTP 缓存头、gzip 编码等)
- 提高 HTTP 限制(例如 Nginx large-client-header-buffers)
- 提高速率限制
- 支持额外的 SSL/TLS 版本
一般来说,作为经验法则,任何追加或添加操作都被视为向后兼容的更新,无需提前沟通。这些更新应与现有接口向后兼容,并且不会对调用我们 API 的任何客户端造成任何中断。
破坏性变更
当且如果 Alpaca 决定对我们的 API 进行破坏性变更,应预期以下情况:
- 提前沟通并留出足够时间,使开发者能够对即将到来的新变更做出反应
- 我们的 API 是版本化的,如果打算进行破坏性变更,我们通常会提升 API 版本。例如,如果我们必须对其可接受的参数或其返回结构进行破坏性变更,某个路由可能会从
/v1/accounts/{account_id}变为/v2/accounts/{account_id}