Longbridge Developers
Get Started

Grid Symbol Info

Fetch the grid-trading information for a security: lot size, last done price, price steps, and authorization status. Use it to build a valid grid rule before calling Submit Grid Order. The channel_info.strategy_granted field tells you whether the strategy risk-disclosure consent has already been recorded — if it is false, submit the Strategy Questionnaire first.

>_ CLI
# Show the grid-trading info for 700.HK
longbridge grid info 700.HK

Request

HTTP MethodGET
HTTP URL/v1/orders/info

Parameters

Content-Type: application/json; charset=utf-8

NameTypeRequiredDescription
counter_idstringYESSecurity symbol, ticker.region format, example: 700.HK

Request Example

from longbridge.openapi import GridContext, Config, OAuthBuilder

oauth = OAuthBuilder("your-client-id").build(lambda url: print("Visit:", url))
config = Config.from_oauth(oauth)

# Grid REST calls go through the standalone GridContext
ctx = GridContext(config)

resp = ctx.symbol_info("700.HK")
print(resp)
const { Config, GridContext, OAuth } = 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 = GridContext.new(config)
  const resp = await ctx.symbolInfo('700.HK')
  console.log(resp)
}
main().catch(console.error)
import com.longbridge.*;
import com.longbridge.grid.*;

class Main {
    public static void main(String[] args) throws Exception {
        try (OAuth oauth = new OAuthBuilder("your-client-id").build(url -> System.out.println("Open to authorize: " + url)).get();
             Config config = Config.fromOAuth(oauth);
             GridContext ctx = GridContext.create(config)) {
            GridSymbolInfo info = ctx.symbolInfo("700.HK").get();
            System.out.println(info);
        }
    }
}
use std::sync::Arc;
use longbridge::{
    Config,
    grid::GridContext,
    oauth::OAuthBuilder,
};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let oauth = OAuthBuilder::new("your-client-id").build(|url| println!("Open this URL to authorize: {url}")).await?;
    let config = Arc::new(Config::from_oauth(oauth));
    let ctx = GridContext::new(config);

    let info = ctx.symbol_info("700.HK").await?;
    println!("{info:?}");
    Ok(())
}
#include &lt;iostream&gt;
#include <longbridge.hpp>

using namespace longbridge;
using namespace longbridge::grid;

static void
run(const OAuth& oauth)
{
    Config config = Config::from_oauth(oauth);
    GridContext ctx = GridContext::create(config);

    ctx.symbol_info("700.HK", [](auto res) {
        if (!res) {
            std::cout << "failed" << std::endl;
            return;
        }
        std::cout << "last_done: " << res->last_done << std::endl;
    });
}

int main(int argc, char const* argv[]) {
    const std::string client_id = "your-client-id";
    OAuthBuilder(client_id).build(
    [](const std::string& url) {
        std::cout << "Open this URL to authorize: " << url << std::endl;
    },
    [](auto res) {
        if (!res) {
            std::cout << "authorization failed" << std::endl;
            return;
        }
        run(*res);
    });

    std::cin.get();
    return 0;
}

Response

Response Headers

  • Content-Type: application/json

Response Example

{
  "code": 0,
  "message": "success",
  "data": {
    "name": "TENCENT",
    "last_done": "300.000",
    "lot_size": "100",
    "buy_lot_size": "100",
    "sell_lot_size": "100",
    "bid_sizes": [
      {
        "str_proceed": "0.010",
        "end_proceed": "500.000",
        "bid_size": "0.200"
      }
    ],
    "channel_info": {
      "strategy_granted": true,
      "support_rth": false,
      "currency": "HKD",
      "settlement_currency": ["HKD"]
    }
  }
}

Response Status

StatusDescriptionSchema
200The security grid info was returned successfully.grid_symbol_info_rsp
400The request was rejected with an incorrect request parameter.None

Schemas

grid_symbol_info_rsp

NameTypeRequiredDescription
namestringtrueSecurity name
last_donestringtrueLatest traded price
lot_sizestringtrueBoard lot size
buy_lot_sizestringtrueMinimum lot size for a buy order
sell_lot_sizestringtrueMinimum lot size for a sell order
bid_sizesobject[]truePrice-step tiers
∟ str_proceedstringtrueStart price of the tier
∟ end_proceedstringtrueEnd price of the tier
∟ bid_sizestringtrueMinimum price step within the tier
channel_infoobjecttrueTrading-channel info and authorization. strategy_granted indicates whether the one-time strategy risk-disclosure consent has been recorded
∟ strategy_grantedbooleantrueWhether the one-time strategy risk-disclosure consent has been recorded
∟ support_rthbooleantrueWhether the security supports regular-trading-hours grids
∟ currencystringtrueTrading currency
∟ settlement_currencystring[]trueSupported settlement currencies