快速開始
前言
Longbridge OpenAPI SDK 基於 Rust 底層提供標準實現,目前我們已經發布了 Python, Node.js, Rust, C++/C, Java 等多種編程語言 SDK,其他語言的支持後面會陸續推出。
API Host
- HTTP API -
https://openapi.longbridge.com - WebSocket Quote -
wss://openapi-quote.longbridge.com - WebSocket Trade -
wss://openapi-trade.longbridge.com
中國大陸地區可使用 .cn 域名提升訪問速度:
- HTTP API -
https://openapi.longbridge.cn - WebSocket Quote -
wss://openapi-quote.longbridge.cn - WebSocket Trade -
wss://openapi-trade.longbridge.cn
SDK 會自動選擇接入點;若判斷不正確,可設定環境變數 LONGBRIDGE_REGION(如 cn、hk)。
時間格式
所有 API 傳回有關時間的字段,我們都採用 Unix Timestamp 時區為 UTC。
環境需求
CLI 快速入門
如果你不需要寫程式,Longbridge CLI 提供更輕量的接入方式——安裝即用,OAuth 一鍵授權,無需配置環境變數。
安裝
登入
longbridge auth login瀏覽器會自動開啟授權頁面,完成後 Token 自動儲存,後續無需重複操作。
安裝 SDK
SDK 包名已從 longport 更名為 longbridge,舊包名 longport 已廢棄。如果你之前使用的是 longport,請先卸載舊包再安裝新包。
下面我們以獲取資產為例,演示一下如何使用 SDK。
配置
開通開發者帳戶
- 下載 Longbridge,並完成開戶
- 從 Longbridge Developers 官網取得認證資訊
認證方式
Longbridge Developers 支援兩種認證方式:
方式一:OAuth 2.0(推薦) ⭐
OAuth 2.0 是現代化的認證方式,使用 Bearer Token,無需 HMAC 簽名,更加安全便捷。
第一步:註冊 OAuth 客戶端
造訪 Longbridge Developers 網站,登入後進入「個人中心」,註冊 OAuth 客戶端獲取 client_id:
回應範例:
{
"client_id": "72d9caaf-0bd4-4000-85a7-8c7978c74544",
"client_id_issued_at": 1773311221,
"client_secret_expires_at": 1773314821,
"client_name": "My Longbridge OpenAPI",
"redirect_uris": ["http://localhost:60355/callback"],
"grant_types": ["authorization_code", "refresh_token"],
"token_endpoint_auth_method": "none",
"response_types": ["code"],
"registration_access_token": "BVlMLEtNUUu4FoRFNItC2FfeR/rLpqLNyEuCJNNTCWE=",
"registration_client_uri": "https://openapi.longbridge.com/oauth2/register/72d9caaf-0bd4-4000-85a7-8c7978c74544"
}儲存 client_id 供後續使用。
第二步:授權並取得 Token
SDK 提供內建 OAuth 支援。使用 OAuthBuilder 完成瀏覽器授權流程,授權後使用 Config.from_oauth() 建立設定。Token 會自動持久化,過期時自動刷新。
Token 儲存路徑: macOS/Linux 為 ~/.longbridge/openapi/tokens/<client_id>,Windows 為 %USERPROFILE%\.longbridge\openapi\tokens\<client_id>。
- ✅ 更安全(無需共享金鑰)
- ✅ 更簡單(無需計算簽名)
- ✅ 基於 Token 的現代認證方式
- ✅ 更適合現代應用程式
OAuth Token 應安全儲存在應用程式中(如加密檔案、安全金鑰鏈),不要儲存在環境變數中。
方式二:傳統 API Key(相容)
取得 App Key、App Secret、Access Token 等資訊
請登入 https://open.longbridge.com/,進入用戶中心。
頁面會展示應用憑證(App Key、App Secret、Access Token)。此處的 Access Token 為舊版 API Key 憑證,與 OAuth 或 Refresh Token API 回傳的 access token 不是同一種東西。取得後請設定為環境變數以便開發使用。
環境變量
請注意保護好您的 Access Token 訊息,任何人獲得到它,都可以透過 OpenAPI 來交易你的帳戶!
傳統 API Key 憑證(僅需設定以下 3 個):
| 環境變量 | 說明 |
|---|---|
LONGBRIDGE_APP_KEY | 從頁面上取得的 App Key |
LONGBRIDGE_APP_SECRET | 從頁面上取得的 App Secret |
LONGBRIDGE_ACCESS_TOKEN | 在 https://open.longbridge.com/(用戶中心 → 應用憑證)取得的舊版 Access Token,非 OAuth access token |
其他環境變量:
| 名稱 | 說明 |
|---|---|
LONGBRIDGE_LANGUAGE | 語言識別碼,zh-CN、zh-HK 或 en(預設:en) |
LONGBRIDGE_HTTP_URL | HTTP 介面位址(預設:https://openapi.longbridge.com) |
LONGBRIDGE_QUOTE_WS_URL | 行情 WebSocket 位址(預設:wss://openapi-quote.longbridge.com/v2) |
LONGBRIDGE_TRADE_WS_URL | 交易 WebSocket 位址(預設:wss://openapi-trade.longbridge.com/v2) |
LONGBRIDGE_REGION | 覆寫接入點;SDK 會依網路自動選擇,若判斷不正確可設定(如 cn、hk) |
LONGBRIDGE_ENABLE_OVERNIGHT | 是否開啟夜盤行情,true 或 false(預設:false);需在 App 行情商店購買「LV1 實時行情 (OpenAPI)」行情卡,僅支援美股 |
LONGBRIDGE_PUSH_CANDLESTICK_MODE | K 線推送模式,realtime 或 confirmed(預設:realtime) |
LONGBRIDGE_PRINT_QUOTE_PACKAGES | 連線時是否列印行情包,true 或 false(預設:true) |
LONGBRIDGE_LOG_PATH | 日誌檔案路徑(預設:不寫日誌) |
SDK 同時支援舊版 LONGPORT_* 環境變數名以保持相容。
建議您設定好這幾個環境變量,我們後面各章節文件中的範例程式碼都會使用這幾個環境變量。
環境變量非必要條件,如設定不方便或遇到問題難以解決,可不用環境變量,而是直接在程式碼裡用參數來初始化。
Longbridge OpenAPI SDK 的 Config 可使用 Config.from_apikey_env()(或 Node/Java 的 Config.fromApikeyEnv())從環境變數建立,或使用 Config.from_apikey(app_key, app_secret, access_token) 直接傳參。見下方範例程式碼中的「不使用 ENV 初始化」註釋。
macOS / Linux 環境下設定環境變量
打開終端,輸入下面的命令即可:
export LONGBRIDGE_APP_KEY="從頁面上取得到的 App Key"
export LONGBRIDGE_APP_SECRET="從頁面取得到的 App Secret"
export LONGBRIDGE_ACCESS_TOKEN="從頁面取得到的 Access Token"Windows 下設定環境變量
Windows 要稍微複雜一些,有以下兩種方式可以設定環境變量:
透過圖形介面設定:在桌面上找到"我的電腦",右鍵點擊,選擇"屬性",在彈出的視窗中點擊"高級系統設定"。
在彈出的視窗中點選「環境變量」。

在彈出的視窗中點擊"新建",然後輸入環境變量名稱,例如
LONGBRIDGE_APP_KEY,Value分別填寫從頁面上取得的 App Key、App Secret、Access Token。
CMD 命令列設定:按下
Win + R快捷鍵,輸入cmd命令啟動命令列(建議使用[Windows Terminal](https://apps.microsoft.com/store/detail /windows-terminal/9N0DX20HK701) 獲得更好的開發體驗)。在命令列裡面輸入下面的命令設定環境變量:
bashC:\Users\jason> setx LONGBRIDGE_APP_KEY "從頁面上取得到的 App Key" 成功:指定的值已儲存。 C:\Users\jason> setx LONGBRIDGE_APP_SECRET "從頁面取得到的 App Secret" 成功:指定的值已儲存。 C:\Users\jason> setx LONGBRIDGE_ACCESS_TOKEN "從頁面取得到的 Access Token" 成功:指定的值已儲存。Windows 環境變量Windows 環境變量限制,當上面指令執行成功以後,你需要重新啟動 Windows 或登出後重新登入一次,才可以讀取。
登出或重新啟動後,再次開啟命令列,輸入下面的命令以驗證環境變量是否設定正確:
bashC:\Users\jason> set LONGBRIDGE LONGBRIDGE_APP_KEY=xxxxxxx LONGBRIDGE_APP_SECRET=xxxxxx LONGBRIDGE_ACCESS_TOKEN=xxxxxxx如果你能正確列印你剛才設定的值,那麼環境變量就是對了。
場景示範
獲取資產總覽
運行後會輸出如下:
[
AccountBalance {
total_cash: 503898884.81,
max_finance_amount: 0.00,
remaining_finance_amount: 501403229.49,
risk_level: Some(1),
margin_call: 0,
currency: "HKD",
cash_infos: [
CashInfo {
withdraw_cash: 501214985.15,
available_cash: 501214985.15,
frozen_cash: 584438.25,
settling_cash: -3897793.90,
currency: "HKD",
},
CashInfo {
withdraw_cash: -25546.89,
available_cash: -25546.89,
frozen_cash: 295768.57,
settling_cash: 2326.60,
currency: "USD",
}
]
}
]訂閱實時行情
訂閱行情數據請檢查 開發者中心 - "行情權限"是否正確
- 港股 - BMP 基礎報價,無實時行情推送,無法用 WebSocket 訂閱
- 美股 - LV1 納斯達克最優報價 (只限 OpenAPI)
運行前訪問 開發者中心,檢查確保賬戶有正確的行情權限。
如沒有開通行情權限,可以通過"Longbridge"手機客戶端,並進入"我的 - 我的行情 - 行情商城"購買開通行情權限。
當你有正確的行情權限,看起來可能會是這樣:

運行後會輸出如下:
700.HK PushQuote {
last_done: 367.000,
open: 362.000,
high: 369.400,
low: 356.000,
timestamp: "2022-06-06T08:10:00Z",
volume: 22377421,
turnover: 8081883405.000,
trade_status: Normal,
trade_session: Normal
}
AAPL.US PushQuote {
last_done: 147.350,
open: 150.700,
high: 151.000,
low: 146.190,
timestamp: "2022-06-06T11:57:36Z",
volume: 3724407,
turnover: 550606662.815,
trade_status: Normal,
trade_session: Pre
}
NFLX.US PushQuote {
last_done: 201.250,
open: 205.990,
high: 205.990,
low: 200.110,
timestamp: "2022-06-06T11:57:26Z",
volume: 137821,
turnover: 27888085.590,
trade_status: Normal,
trade_session: Pre
}委託下單
下面我們做一次 委託下單 動作,我們假設要以 50 HKD 買入 700.HK 的數量為 100。
NOTE: 為了防止測試買入成功,這裡演示給了一個較低的價格,避免成交。OpenAPI 操作均等同與線上交易,請謹慎操作,開發調試注意參數細節。
運行後會輸出如下:
SubmitOrderResponse { order_id: "718437534753550336" }獲取當日訂單
運行後會輸出如下:
Order {
order_id: "718437534753550336",
status: NotReported,
stock_name: "腾讯控股 1",
quantity: 200,
executed_quantity: None,
price: Some(50.000),
executed_price: None,
submitted_at: 2022-06-06T12:14:16Z,
side: Buy,
symbol: "700.HK",
order_type: LO,
last_done: None,
trigger_price: Some(0.000),
msg: "",
tag: Normal,
time_in_force: Day,
expire_date: Some(NaiveDate(Date { year: 2022, ordinal: 158 })),
updated_at: Some(2022-06-06T12:14:16Z),
trigger_at: None,
trailing_amount: None,
trailing_percent: None,
limit_offset: None,
trigger_status: None,
currency: "HKD",
outside_rth: nonce
}上面例子已經完整演示瞭如何使用 SDK 訪問 OpenAPI 的接口,更多其他接口請詳細閱讀 Longbridge Developers 文檔,根據不同的接口使用。
更多例子
我們在 Longbridge OpenAPI Python SDK 的 GitHub 倉庫中提供了上面幾個例子的完整代碼,當然後期我們也會持續往裡面補充或更新。
https://github.com/longbridge/openapi/tree/master/examples
SDK API 文檔
SDK 的詳細 API 文檔請訪問:
https://longbridge.github.io/openapi/
回饋及溝通
如果您在使用 SDK 的過程中遇到任何問題,歡迎透過以下方式返回或與我們討論,我們會盡力協助您解決問題。
GitHub Issues
在 GitHub 上,也有很多歷史的討論和問題可以參考,你也可以試著搜尋一下,或許也能找到問題的解決方案。