Webull 数据 API:行情、购买力与订单
Webull: Investing & Trading 由 Webull Technologies Pte. Ltd. 推出,是面向美国散户投资者的券商应用。用户可以关注股票和 ETF,交易期权、期货及加密货币,也可以先通过模拟交易练习,再向实盘账户入金。自选列表、Level 2 行情、新闻和个股图表便于日常跟踪市场;碎股交易、定期投资、IPO 申购及期权链则满足不同的投资安排。Lite 和 Pro 两种显示模式适应不同交易偏好,账户页面集中展示购买力、持仓和未完成订单。
购买力余额将 dayBuyingPower、overnightBuyingPower 和 optionBp 与 netLiquidationValue、totalCashValue 区分呈现,dayTradesRemaining 和 isPdt 则提供模式日内交易的背景信息。持仓记录通过 tickerId、quantity 和 costPrice 关联 lastPrice 与 unrealizedProfitLoss;行情快照补充 bidPrice、askPrice、changeRatio 和 mkVolume。图表记录除价格柱外,还包含 interval、preClose 与 timeZone。
委托记录跟踪 orderId、orderType、filledQuantity、timeInForce 和 outsideRegularTradingHour,委托预检中的 checkVo.reqDtbp 可用于核对购买力需求。自选文件夹将 portfolioId 与标的的 symbol、addedPrice、addedTime 关联;新闻标题通过 relTickers 关联标的,并带有 sourceName 和 sentiment。模拟账户余额包含 todayProfitLoss,便于与实盘资金汇总对照。
风险监测团队可以将剩余日内交易次数与购买力对照,记账工具可以结合行情评估持仓,订单核对任务则能区分未完成委托与已成交记录。交易教练可以将模拟账户的 todayProfitLoss、netLiquidationValue 与已入金账户的 capital.todayProfitLoss、capital.netLiquidationValue 对照。openData Studio 将这些账户、行情、持仓、委托、自选列表及新闻记录整理为可调用的开放数据;示例记录采用模拟数值,并非实时账户余额或市场报价。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
账户登录
POST
/v1/investor-access/session-grantsopenbanking使用账户凭据换取 accessToken、refreshToken,以及 userId、uuid 和 haveAccount,供后续行情、交易及自选列表请求携带会话信息。
认证方式: 无需预先认证。JSON 请求体使用 account 与 loginPassword,或使用 account 与短信验证码 verificationCode。后续请求将响应中的 accessToken 作为 access_token 发送;refreshToken 用于轮换会话。
- account
- accountType
- loginPassword
- verificationCode
- accessToken
- refreshToken
- userId
- uuid
- tokenExpireTime
- haveAccount
- phone
- userDomain
POST /v1/investor-access/session-grants HTTP/1.1 Content-Type: application/json { "account": "<example-email>", "accountType": 2, "loginPassword": "<loginPassword>", "verificationCode": null }{ "accessToken": "<accessToken>", "refreshToken": "<refreshToken>", "userId": "USER-DEMO-001", "uuid": "00000000-0000-4000-8000-000000000001", "tokenExpireTime": "2026-10-24T12:00:00.000+0000", "haveAccount": true, "email": "<example-email>", "phone": "<example-phone>", "userDomain": "us", "accountType": "2", "appModeType": "Pro" }用户资料
GET
/v1/investor-profiles/currentosint读取已登录用户的资料,包括 nickName、联系信息、Lite/Pro 模式的 appModeType、serviceRegionCode,以及是否已开通券商账户。
认证方式: 使用登录获得的 accessToken,通过 access_token 发送。
- nickName
- phone
- avatarUrl
- haveAccount
- hasSecurityPwd
- appModeType
- regionId
- serviceRegionCode
- userDomain
- cryptoBind
GET /v1/investor-profiles/current HTTP/1.1 access_token: <accessToken>{ "nickName": "example-trader", "email": "<example-email>", "phone": "<example-phone>", "avatarUrl": "/assets/example-avatar.png", "haveAccount": true, "hasSecurityPwd": true, "appModeType": "Pro", "regionId": "6", "serviceRegionCode": "US", "userDomain": "us", "cryptoBind": false }标的实时行情
GET
/v1/market/price-snapshotsopendata返回一个或多个 tickerId 的类似全国最优买卖报价(NBBO)的实时报价,包含最新价、changeRatio、买卖报价、时段最高价和最低价,以及行情栏和自选列表条目使用的 mkVolume。
认证方式: 使用设备会话;用户登录后附带 accessToken。启动页预取可在没有用户令牌的情况下运行。
- tickerId
- symbol
- disSymbol
- name
- exchangeCode
- price
- change
- changeRatio
- close
- preClose
- bidPrice
- askPrice
- high
- low
- fiftyTwoWkHigh
- fiftyTwoWkLow
- mkVolume
- status
GET /v1/market/price-snapshots?tickerId=TICKER-DEMO-001 HTTP/1.1 access_token: <accessToken>[ { "tickerId": "TICKER-DEMO-001", "symbol": "AAPL", "disSymbol": "AAPL", "name": "Apple Inc", "exchangeCode": "NASDAQ", "price": "227.52", "change": "1.84", "changeRatio": "0.0081", "close": "227.52", "preClose": "225.68", "bidPrice": "227.50", "askPrice": "227.53", "high": "228.40", "low": "225.10", "fiftyTwoWkHigh": "260.10", "fiftyTwoWkLow": "164.08", "mkVolume": "48231500", "status": "A", "currencyCode": "USD" } ]OHLC 行情图表
GET
/v1/market/candle-seriesopendata分页读取标的图表的开盘、最高、最低及收盘价(OHLC)柱,提供打包的 data 行及 interval、preClose、timeZone,用于分钟线和日线。
认证方式: 登录后使用 accessToken。
- tickerId
- dataType
- interval
- preClose
- timeZone
- hasMore
- marketId
- data
GET /v1/market/candle-series?tickerId=TICKER-DEMO-001&dataType=m1 HTTP/1.1 access_token: <accessToken>{ "tickerId": "TICKER-DEMO-001", "dataType": "m1", "interval": 60, "preClose": "225.68", "timeZone": "America/New_York", "hasMore": 1, "marketId": "2", "data": [ "1698067200,227.10,227.52,226.80,227.40,1254300" ] }券商账户摘要
GET
/v1/brokerage/balance-overviewopenfinance加载账户概览,包括 netLiquidationValue、现金与市值、日内及隔夜购买力、期权购买力、PDT 剩余日内交易次数和 availableWithdraw。
认证方式: 使用登录获得的 accessToken,通过 access_token 发送;数据范围限定为当前登录用户的 secAccountId。
- secAccountId
- brokerId
- accountType
- accountNumber
- currency
- netLiquidationValue
- totalCashValue
- totalMarketValue
- dayBuyingPower
- overnightBuyingPower
- optionBp
- profitLoss
- unrealizedProfitLoss
- dayTradesRemaining
- isPdt
- availableWithdraw
GET /v1/brokerage/balance-overview?secAccountId=ACCOUNT-DEMO-001 HTTP/1.1 access_token: <accessToken>{ "secAccountId": "ACCOUNT-DEMO-001", "brokerId": 8, "accountType": "2", "accountTypeName": "MARGIN", "accountNumber": "DEMO-ACCOUNT-001", "currency": "USD", "netLiquidationValue": "52840.12", "totalCashValue": "4120.55", "totalMarketValue": "48719.57", "dayBuyingPower": "18500.00", "overnightBuyingPower": "9200.00", "optionBp": "6400.00", "profitLoss": "312.40", "unrealizedProfitLoss": "1288.19", "unrealizedProfitLossRate": "0.0271", "dayTradesRemaining": 3, "isPdt": false, "availableWithdraw": "3800.00" }资产与持仓快照
GET
/v1/portfolios/asset-snapshotopenfinance返回持仓页快照,包括嵌套在 capital 中的购买力字段、positions 分组,以及 openOrderQty 和 openIPOQty。
认证方式: 使用登录获得的 accessToken。
- capital.netLiquidationValue
- capital.buyingPower
- capital.dayBuyingPower
- capital.overnightBuyingPower
- capital.optionBuyingPower
- capital.totalCashValue
- capital.todayProfitLoss
- capital.unrealizedProfitLoss
- positions
- openOrderQty
- openIPOQty
GET /v1/portfolios/asset-snapshot?secAccountId=ACCOUNT-DEMO-001 HTTP/1.1 access_token: <accessToken>{ "capital": { "netLiquidationValue": "52840.12", "buyingPower": "18500.00", "dayBuyingPower": "18500.00", "overnightBuyingPower": "9200.00", "optionBuyingPower": "6400.00", "totalCashValue": "4120.55", "totalMarketValue": "48719.57", "todayProfitLoss": "312.40", "todayProfitLossRatio": "0.0059", "unrealizedProfitLoss": "1288.19", "currency": "USD" }, "positions": [ { "tickerId": "TICKER-DEMO-001", "quantity": "40", "costPrice": "214.10", "lastPrice": "227.52", "marketValue": "9100.80", "unrealizedProfitLoss": "536.80" } ], "openOrderQty": 2, "openIPOQty": 0 }单一标的持仓详情
GET
/v1/holdings/instrument-overviewopenfinance查看单一标的的持仓明细,包括 quantity 与 costPrice、lastPrice、未实现盈亏和当日盈亏,以及该标的的 openOrders、filledOrders。
认证方式: 使用登录获得的 accessToken。
- positionSummary.currency
- positionSummary.marketValue
- positionSummary.unrealizedProfitLoss
- positionSummary.dayProfitLoss
- tickerId
- symbol
- position
- quantity
- costPrice
- lastPrice
- marketValue
- action
GET /v1/holdings/instrument-overview?secAccountId=ACCOUNT-DEMO-001&tickerId=TICKER-DEMO-001 HTTP/1.1 access_token: <accessToken>{ "positionSummary": { "currency": "USD", "marketValue": "9100.80", "unrealizedProfitLoss": "536.80", "unrealizedProfitLossRate": "0.0627", "dayProfitLoss": "73.60", "dayProfitLossRate": "0.0081", "positions": [ { "tickerId": "TICKER-DEMO-001", "symbol": "AAPL", "position": "40", "quantity": "40", "costPrice": "214.10", "lastPrice": "227.52", "marketValue": "9100.80", "unrealizedProfitLoss": "536.80", "action": "BUY", "currency": "USD" } ] }, "openOrders": [], "filledOrders": [] }未完成订单列表
GET
/v1/execution/ticket-ledgeropenfinance列出未完成及当日委托,包含 orderId、买卖方向、orderType、限价、成交进度、订单有效期(TIF)和延长交易时段标志。
认证方式: 使用登录获得的 accessToken。
- orderId
- comboId
- action
- orderType
- quantity
- lmtPrice
- filledQuantity
- avgFilledPrice
- status
- timeInForce
- outsideRegularTradingHour
- canCancel
- canModify
- openOrders
- todayOrders
GET /v1/execution/ticket-ledger?secAccountId=ACCOUNT-DEMO-001 HTTP/1.1 access_token: <accessToken>{ "openOrders": [ { "orderId": "ORDER-DEMO-001", "comboId": "COMBO-DEMO-001", "action": "BUY", "orderType": "LMT", "quantity": "10", "lmtPrice": "226.50", "filledQuantity": "0", "avgFilledPrice": "0", "status": "Working", "statusStr": "Working", "timeInForce": "DAY", "outsideRegularTradingHour": true, "canCancel": true, "canModify": true } ], "todayOrders": [], "openIpoOrders": [] }股票订单预检
POST
/v1/execution/ticket-reviewopenfinance预检股票委托,也可进行下单:通过 reqDtbp 表示购买力占用,通过 openOrClose 区分开仓和平仓;交易台受理后返回 placeVo.orderId 和 comboId。
认证方式: 使用登录获得的 accessToken。
- secAccountId
- tickerId
- action
- orderType
- lmtPrice
- quantity
- timeInForce
- outsideRegularTradingHour
- checkVo.confirm
- checkVo.reqDtbp
- checkVo.openOrClose
- placeVo.result
- placeVo.orderId
- placeVo.comboId
POST /v1/execution/ticket-review HTTP/1.1 access_token: <accessToken> Content-Type: application/json { "secAccountId": "ACCOUNT-DEMO-001", "tickerId": "TICKER-DEMO-001", "action": "BUY", "orderType": "LMT", "lmtPrice": "226.50", "quantity": "10", "timeInForce": "DAY", "outsideRegularTradingHour": true }{ "checkVo": { "confirm": true, "forward": true, "openOrClose": "OPEN", "reqDtbp": "2265.00", "reqOnBp": "2265.00", "reqImlBP": "0" }, "placeVo": { "result": true, "orderId": "ORDER-DEMO-002", "comboId": "COMBO-DEMO-002", "lastSerialId": "SN-9001" } }自选列表分组
GET
/v1/lists/instrument-groupsopendata同步自选文件夹,提供 portfolioId、name,以及自选页使用的各标的 symbol、addedPrice 和 addedTime。
认证方式: 使用登录获得的 accessToken。
- version
- portfolioList
- portfolioId
- name
- categoryType
- sortOrder
- isVisible
- tickerList
- tickerId
- symbol
- addedPrice
- addedTime
GET /v1/lists/instrument-groups HTTP/1.1 access_token: <accessToken>{ "version": 42, "portfolioList": [ { "portfolioId": "WATCHLIST-DEMO-001", "name": "Tech", "categoryType": 0, "sortOrder": 1, "isVisible": true, "tickerList": [ { "tickerId": "TICKER-DEMO-001", "symbol": "AAPL", "name": "Apple Inc", "disSymbol": "AAPL", "addedPrice": "214.10", "addedTime": 1698067200000, "exchangeCode": "NASDAQ" } ] } ] }实时新闻流
GET
/v1/headlines/streamosint分页读取新闻栏,提供新闻和标的相关新闻页面使用的标题、sourceName、时间戳、sentiment 及关联标的。
认证方式: 登录后使用 accessToken。
- id
- title
- summary
- newsUrl
- sourceName
- newsTime
- sentiment
- sentimentType
- likes
- comments
- relTickers
GET /v1/headlines/stream HTTP/1.1 access_token: <accessToken>[ { "id": "NEWS-DEMO-001", "title": "Illustrative market headline for AAPL", "summary": "Example news summary linked to the sample ticker.", "newsUrl": "/articles/example-market-brief", "sourceName": "Example News Source", "newsTime": "2026-10-23T13:04:00.000+0000", "sentiment": "positive", "sentimentType": "1", "likes": 128, "comments": 14, "relTickers": [ { "tickerId": "TICKER-DEMO-001", "symbol": "AAPL" } ] } ]模拟交易账户摘要
GET
/v1/practice/balance-overviewopenfinance读取模拟交易明细,包括模拟净清算价值、现金与持仓对照,以及模拟交易页使用的模拟持仓。
认证方式: 使用登录获得的 accessToken,通过 access_token 发送;需要当前登录用户已选定模拟交易账户。
- netLiquidationValue
- totalCashValue
- totalMarketValue
- unrealizedProfitLoss
- todayProfitLoss
- currency
- openOrderQty
- positions
- tickerId
- quantity
- costPrice
GET /v1/practice/balance-overview HTTP/1.1 access_token: <accessToken>{ "netLiquidationValue": "100000.00", "totalCashValue": "64210.40", "totalMarketValue": "35789.60", "unrealizedProfitLoss": "1288.19", "todayProfitLoss": "312.40", "currency": "USD", "openOrderQty": 1, "positions": [ { "tickerId": "TICKER-DEMO-001", "symbol": "AAPL", "quantity": "40", "costPrice": "214.10", "lastPrice": "227.52" } ] }
数据类别
- 账户
- 持仓
- 订单
- 行情
- 自选列表
- 新闻
- 模拟交易
数据使用场景与案例
购买力与剩余日内交易次数对照
风险监测程序从账户摘要读取 dayBuyingPower、overnightBuyingPower 和 optionBp,再对照 capital.buyingPower 以及 dayTradesRemaining、isPdt,让隔夜购买力和模式日内交易(PDT)相关提醒引用同一本台账。
持仓逐笔估值与最优买卖报价对照
记账任务将持仓的 quantity、costPrice 与行情中的 price、bidPrice、askPrice 关联,使 unrealizedProfitLoss、lastPrice 和自选列表中的 addedPrice 能在同一份明细表中核对。
未完成订单与成交明细核对
交易台轮询程序列出 orderId、action、orderType、lmtPrice 和 filledQuantity,并将 checkPlace 的 reqDtbp 与实盘委托对照,避免将 DAY 订单与延长交易时段的成交重复计入购买力占用。
模拟账户与实盘账户盈亏对照
交易辅导工具将模拟账户的 todayProfitLoss、netLiquidationValue 与实盘的 capital.todayProfitLoss 比较,借助一致的字段名称评估练习账户和已入金账户的表现。
常见问题
Webull 数据模型包含哪些认证与购买力字段?
登录示例使用账户凭据或短信验证码换取 accessToken、refreshToken、userId、uuid 和 tokenExpireTime。受保护的示例将 accessToken 放入 access_token 请求头;行情快照也支持在用户登录前使用设备会话。secAccountId 标识券商账户,accountNumber 是面向客户的账户编号。netLiquidationValue、totalCashValue、dayBuyingPower、overnightBuyingPower 和 optionBp 描述余额及交易能力,dayTradesRemaining、isPdt 和 availableWithdraw 分别表示剩余日内交易次数、模式日内交易状态及可提取金额。这里展示的所有路径和凭据值都仅用于说明。
示例可以表示哪些行情和图表数据?
行情快照包含 tickerId、symbol、price、changeRatio、preClose、bidPrice、askPrice、high、low、fiftyTwoWkHigh、fiftyTwoWkLow 和 mkVolume。历史图表记录提供打包的价格柱数据,并包含 interval、timeZone、preClose 及用于分页的 hasMore。示例价格均为模拟值,不是实时行情源。
持仓和订单记录如何用于核对?
持仓提供 quantity、costPrice、lastPrice、marketValue 和 unrealizedProfitLoss,positionSummary.dayProfitLoss 补充当日盈亏。委托记录还包含 orderId、comboId、action、orderType、lmtPrice、filledQuantity、avgFilledPrice,以及 timeInForce 和 outsideRegularTradingHour。委托预检示例说明购买力检查与受理结果,并不提交真实交易。
数据模型是否包含模拟交易、自选列表和新闻?
包含。模拟账户记录提供模拟的 netLiquidationValue、totalCashValue、todayProfitLoss 和 positions。自选列表按 portfolioId 组织标的,并保留 addedPrice、addedTime;新闻记录包含 title、sourceName、newsTime、sentiment 和 relTickers。辅导工具可将模拟账户汇总与实盘资金字段对照,研究工具则能把已收藏标的与相关新闻关联起来。
与 Webull: Investing & Trading 相似的应用
- Robinhood: Trading & Investing — Robinhood Markets 是加州门洛帕克的金融服务公司,应用内可交易股票、ETF、期权、期货、预测市场合约和加密货币,并于 2017 年 12 月推出免佣金期权交易。
- Fidelity Investments — 富达投资(Fidelity)是波士顿的券商,经营证券执行与清算、管理共同基金和 ETF,并提供加密货币投资以及 IRA、401(k) 和 529 账户。
- Charles Schwab — 嘉信理财(Charles Schwab)是得克萨斯州韦斯特莱克的券商,提供股票交易、投资组合管理和银行服务,2020 年 6 月起支持标普 500 成分股碎股,2011 年收购 OptionsXpress,2020 年 10 月收购 TD Ameritrade。
- E*TRADE — 摩根士丹利旗下的 E*TRADE 是面向自主交易的美国券商,自 2019 年 10 月起对美国上市股票、ETF 和期权免佣金,并提供 E*TRADE Web 与 Power E*TRADE 交易台。
- Interactive Brokers — 盈透证券(Interactive Brokers)是康涅狄格州格林尼治的券商,可在 170 多个市场交易股票、期权、期货、外汇、债券和基金,并于 2019 年 9 月推出美国免佣金的 IBKR Lite。
- SoFi Invest — SoFi Active Investing 是 SoFi 免佣金、免交易费的股票和 ETF 经纪服务,提供一级和二级期权以及传统、Roth 和 SEP IRA,放在这家旧金山消费银行的应用里。
- Moomoo — Moomoo 是富途控股的数字券商平台,2018 年面向美国投资者推出,通过持牌子公司交易股票和衍生品,并提供融资融券。
相关主题
- Webull 数据 API
- Webull 行情
- Webull 持仓
- Webull 订单
- Webull 购买力
- Webull 自选列表
- Webull 模拟交易
- Webull 市场数据
- Webull 账户余额
- org.dayup.stocks
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业