Get LTP for symbols
For a quick price check (not a full quote), use the LTP endpoint — it's cheaper and faster than quote().
ltp_data = kite.ltp(["NSE:INFY", "NSE:RELIANCE", "NFO:NIFTY24DECFUT"])
print(ltp_data)
{
"NSE:INFY": {"instrument_token": 408065, "last_price": 1478.9},
"NSE:RELIANCE": {"instrument_token": 738561, "last_price": 2945.15},
"NFO:NIFTY24DECFUT": {"instrument_token": 12345678, "last_price": 24512.5},
}
Note the key format: "EXCHANGE:TRADINGSYMBOL" as a string, not separate parameters — different from place_order's exchange= / tradingsymbol= keyword args. Easy to get wrong the first time.
Batch requests, don't loop
# Bad — N API calls, hits rate limits fast
for symbol in watchlist:
price = kite.ltp([symbol])
# Good — 1 API call
prices = kite.ltp(watchlist) # up to 500 instruments per call
Wrapper for convenience
def get_ltp(kite, exchange: str, symbol: str) -> float:
key = f"{exchange}:{symbol}"
return kite.ltp([key])[key]["last_price"]
LTP vs a live WebSocket tick
kite.ltp() is a REST poll — fine for occasional checks (e.g. "what's the price right now, once, before I decide") but too slow and too rate-limited for anything reacting to every price movement. For that, use the WebSocket ticker (chapters 36-42), which pushes updates continuously without you polling.