[ Web Proxy ]
URL:
Viewing: https://longbridge.github.io/openapi/nodejs/index.html [Back]  [Original]

Longbridge OpenAPI SDK
Longbridge OpenAPI SDK
Preparing search index...

Longbridge OpenAPI SDK

Longbridge OpenAPI SDK for Node.js

longbridge provides an easy-to-use interface for invoking Longbridge OpenAPI.

Context Description
QuoteContext Real-time quotes, candlesticks, options, warrants, watchlists, push subscriptions
TradeContext Orders, positions, account balance, executions, cash flow
AssetContext Account statement download
ContentContext News, community topics
FundamentalContext Financial reports, analyst ratings, dividends, valuation, company overview, shareholders
MarketContext Market status, broker holdings, A/H premium, trade statistics, anomaly alerts, index constituents
CalendarContext Financial calendar (earnings, dividends, splits, IPOs, macro data, market closures)
PortfolioContext Exchange rates, portfolio P&L analysis
AlertContext Price alert management (add/enable/disable/delete)
DCAContext Dollar-cost averaging plan management
SharelistContext Community sharelist management

Runnable examples live in examples/nodejs/:

  • examples/nodejs/account_asset.js
  • examples/nodejs/http_client.js
  • examples/nodejs/subscribe_candlesticks.js
  • examples/nodejs/subscribe_quote.js
  • examples/nodejs/submit_order.js
  • examples/nodejs/today_orders.js

Install Longbridge OpenAPI SDK

npm install longbridge
Copy

Longbridge OpenAPI supports two authentication methods:

OAuth 2.0 is the modern authentication method that uses Bearer tokens without requiring HMAC signatures.

Step 1: Register OAuth Client

First, register an OAuth client to get your client_id:

bash / macOS / Linux

curl -X POST https://openapi.longbridge.com/oauth2/register \
-H "Content-Type: application/json" \
-d '{
"client_name": "My Application",
"redirect_uris": ["http://localhost:60355/callback"],
"grant_types": ["authorization_code", "refresh_token"]
}'
Copy

PowerShell (Windows)

Invoke-RestMethod -Method Post -Uri https://openapi.longbridge.com/oauth2/register `
  -ContentType "application/json" `
  -Body '{
    "client_name": "My Application",
    "redirect_uris": ["http://localhost:60355/callback"],
    "grant_types": ["authorization_code", "refresh_token"]
  }'
Copy

Response:

{
"client_id": "your-client-id-here",
"client_secret": null,
"client_name": "My Application",
"redirect_uris": ["http://localhost:60355/callback"]
}
Copy

Save the client_id for use in your application.

Step 2: Build an OAuth client and create Config

OAuth.build() loads a cached token from ~/.longbridge/openapi/tokens/<client_id> (%USERPROFILE%\.longbridge\openapi\tokens\<client_id> on Windows) if one exists and is still valid, or starts the browser authorization flow automatically. The token is persisted to the same path after a successful authorization or refresh.

const { OAuth, Config } = require('longbridge');

async function main() {
const oauth = await OAuth.build(
"your-client-id",
(_, url) => console.log("Open this URL to authorize: " + url)
);
const config = Config.fromOAuth(oauth);
// Use config to create contexts...
}

main();
Copy

Setting environment variables (macOS/Linux)

export LONGBRIDGE_APP_KEY="App Key get from user center"
export LONGBRIDGE_APP_SECRET="App Secret get from user center"
export LONGBRIDGE_ACCESS_TOKEN="Access Token get from user center"
Copy

Setting environment variables (Windows)

setx LONGBRIDGE_APP_KEY "App Key get from user center"
setx LONGBRIDGE_APP_SECRET "App Secret get from user center"
setx LONGBRIDGE_ACCESS_TOKEN "Access Token get from user center"
Copy
Name Description
LONGBRIDGE_LANGUAGE Language identifier, zh-CN, zh-HK or en (Default: en)
LONGBRIDGE_HTTP_URL HTTP endpoint url (Default: https://openapi.longbridge.com)
LONGBRIDGE_QUOTE_WS_URL Quote websocket endpoint url (Default: wss://openapi-quote.longbridge.com/v2)
LONGBRIDGE_TRADE_WS_URL Trade websocket endpoint url (Default: wss://openapi-trade.longbridge.com/v2)
LONGBRIDGE_ENABLE_OVERNIGHT Enable overnight quote, true or false (Default: false)
LONGBRIDGE_PUSH_CANDLESTICK_MODE realtime or confirmed (Default: realtime)
LONGBRIDGE_PRINT_QUOTE_PACKAGES Print quote packages when connected, true or false (Default: true)
LONGBRIDGE_LOG_PATH Set the path of the log files (Default: no logs)
LONGBRIDGE_PAPERTRADING Enable paper trading mode, true or false (Default: false). See Paper Trading.

Then create a config from the environment:

const { Config } = require('longbridge');
const config = Config.fromApikeyEnv();
Copy
const { OAuth, Config, QuoteContext } = require('longbridge');

async function main() {
const oauth = await OAuth.build(
"your-client-id",
(_, url) => console.log("Open this URL to authorize: " + url)
);
const config = Config.fromOAuth(oauth);
const ctx = QuoteContext.new(config);
const resp = await ctx.quote(["700.HK", "AAPL.US", "TSLA.US", "NFLX.US"]);
for (let obj of resp) {
console.log(obj.toString());
}
}

main();
Copy
const { OAuth, Config, QuoteContext, SubType } = require('longbridge');

async function main() {
const oauth = await OAuth.build(
"your-client-id",
(_, url) => console.log("Open this URL to authorize: " + url)
);
const config = Config.fromOAuth(oauth);
const ctx = QuoteContext.new(config);
ctx.setOnQuote((_, event) => console.log(event.toString()));
await ctx.subscribe(
["700.HK", "AAPL.US", "TSLA.US", "NFLX.US"],
[SubType.Quote],
);
}

main();
Copy
const {
OAuth,
Config,
TradeContext,
Decimal,
OrderSide,
TimeInForceType,
OrderType,
} = require('longbridge');

async function main() {
const oauth = await OAuth.build(
"your-client-id",
(_, url) => console.log("Open this URL to authorize: " + url)
);
const config = Config.fromOAuth(oauth);
const ctx = TradeContext.new(config);
const resp = await ctx.submitOrder({
symbol: "700.HK",
orderType: OrderType.LO,
side: OrderSide.Buy,
timeInForce: TimeInForceType.Day,
submittedPrice: new Decimal("50"),
submittedQuantity: new Decimal(200),
});
console.log(resp.toString());
}

main();
Copy

If your account is a paper trading (simulation) account and you want to place orders, you must explicitly enable paper trading mode. When enabled, all API calls target the paper trading environment and the server validates the token if the token belongs to a real-money account the server returns an error.

By default this option is off: the server imposes no restrictions and accepts requests from both paper trading and real-money accounts.

Via environment variable (applies automatically to all constructor methods):

export LONGBRIDGE_PAPERTRADING=true   # macOS / Linux
Copy
$env:LONGBRIDGE_PAPERTRADING = "true"   # Windows PowerShell
Copy

Programmatically:

const { Config } = require('longbridge');

const config = Config.fromApikey(
process.env.LONGBRIDGE_APP_KEY,
process.env.LONGBRIDGE_APP_SECRET,
process.env.LONGBRIDGE_ACCESS_TOKEN,
{ enablePapertrading: true },
);
Copy
  • Windows setx requires a new terminal; use set for the current cmd.exe session.
  • If the script exits, you won't receive push events; keep Node running.
  • For debugging, set LONGBRIDGE_LOG_PATH to enable SDK logs.

Licensed under either of

Generated using TypeDoc


Web Proxy Viewer  |  New URL  |  Original Page