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.

Next: 025 — Get full quote (OHLC + depth summary)