Skip to content

Instrument Detail

Fetch metadata for a specific instrument by ID or by exchange:name symbol.

Both SDKs resolve instrument details locally from the downloaded instrument master (gz file) — no per-call HTTP round-trip. Download the master once via Instruments; the SDKs do this automatically on first use.

from blitzsdk import MarketDataApiClient

client = MarketDataApiClient(app_key="YOUR_KEY", user_id="YOUR_USER")
data = client.get_instrument_by_symbol("NSECM:RELIANCE")
by_id = client.get_instrument_by_id(110010000002885)
print(data, by_id)
using BlitzConnect;
using BlitzConnect.Common;

var config = new BlitzConfig { AppKey = "YOUR_KEY", UserId = "YOUR_USER" };
var mdClient = new BlitzMarketDataApiClient(config);

var resp = await mdClient.GetInstrumentDetailsAsync("RELIANCE");   // by symbol "exchange:name"
var byId = await mdClient.GetInstrumentDetailsAsync(110010000002885);   // or by id
var detail = resp.Data;
Console.WriteLine($"{detail.Symbol} lot={detail.LotSize}");

Endpoint

GET /v1/api/instruments/{id}

The raw REST endpoint also accepts an exchange:name pair in place of {id}.

Request

curl "https://{baseurl}/v1/api/instruments/110010000001134" \
  -H "Authorization: Bearer YOUR_TOKEN"

Response

{
    "status": "success",
    "message": "request processed successfully",
    "data": {
        "instrumentId": 110010000001134,
        "exchange": "NSE",
        "symbol": "APOLLO",
        "ticker": "APOLLO MICRO SYSTEMS LTD",
        "exchangeSegment": "NSECM",
        "instrumentType": "Equity",
        "instrumentName": "APOLLO",
        "exchangeInstrumentId": 1134,
        "marketInstrumentId": 110010000001134,
        "series": "EQ",
        "tickSize": 0.05,
        "isin": "INE713T01028",
        "priceBandHigh": 356.55,
        "priceBandLow": 237.75,
        "multiplier": 1,
        "bvp": 1,
        "priceType": "1.0",
        "priceNumerator": 1,
        "priceDenominator": 1,
        "freezeQty": 999999,
        "lotSize": 1,
        "expiryDate": null,
        "strikePrice": null,
        "optionType": null,
        "assetToken": null,
        "underlyingInstrumentId": null,
        "open": 0,
        "high": 0,
        "low": 0,
        "close": 0,
        "ltp": 0
    }
}

Response fields

Field Type Description
instrumentId long Unique internal instrument identifier
exchange string Exchange code (NSE)
symbol string Exchange symbol
ticker string Full company or instrument name
exchangeSegment string Exchange segment (NSECM, NSEFO, ...)
instrumentType string Type (Equity, Futures, Options, Index)
instrumentName string Exchange trading name
exchangeInstrumentId int Instrument identifier assigned by the exchange
marketInstrumentId long Market-wide instrument identifier
series string Instrument series (EQ, XX, ...)
tickSize double Minimum price tick
isin string ISIN code (equities)
priceBandHigh / priceBandLow double Price band limits
multiplier int Contract multiplier
bvp number Base price value
freezeQty int Freeze quantity
lotSize int Market lot / lot size
expiryDate string Expiry date (derivatives; null otherwise)
strikePrice double Strike price (options)
optionType string Option type (CE/PE; futures carry XX)
assetToken / underlyingInstrumentId long Underlying reference (derivatives)
open / high / low / close / ltp double Snapshot prices

Field values for Futures and Options variants differ only in the derivative fields (expiryDate, strikePrice, optionType, assetToken, underlyingInstrumentId) — see the REST instrument detail page for complete examples of each type.