Zerodha Kite
Access your Zerodha account via the Kite Connect REST API — fetch portfolio, live quotes, place orders, and check order history. Requires a Kite Connect API subscription.
When to Use
- User wants to see their Zerodha holdings or current positions
- User asks for a live quote on an NSE/BSE stock
- User wants to place, modify, or cancel an order
- User asks about today's P&L or order history
- User wants to check available margin or funds
How to Use
Set up API credentials
powershell$env:KITE_API_KEY = "your_api_key" $env:KITE_ACCESS_TOKEN = "your_access_token" # Obtained after daily login flow $baseUrl = "https://api.kite.trade" $headers = @{ "X-Kite-Version" = "3" "Authorization" = "token $($env:KITE_API_KEY):$($env:KITE_ACCESS_TOKEN)" }
Get holdings (long-term portfolio)
powershell$holdings = Invoke-RestMethod -Uri "$baseUrl/portfolio/holdings" -Headers $headers $holdings.data | Select-Object tradingsymbol, quantity, average_price, last_price, @{N='PnL';E={[math]::Round(($_.last_price - $_.average_price) * $_.quantity, 2)}}
Get today's positions (intraday / F&O)
powershell$positions = Invoke-RestMethod -Uri "$baseUrl/portfolio/positions" -Headers $headers $positions.data.net | Select-Object tradingsymbol, quantity, average_price, last_price, pnl
Get live quote
powershell$symbols = "NSE:RELIANCE,NSE:INFY,NSE:TCS" $quote = Invoke-RestMethod -Uri "$baseUrl/quote?i=$symbols" -Headers $headers $quote.data.PSObject.Properties | ForEach-Object { [PSCustomObject]@{ Symbol = $_.Name LTP = $_.Value.last_price Change = $_.Value.net_change Volume = $_.Value.volume } }
Get available funds/margin
powershell$margins = Invoke-RestMethod -Uri "$baseUrl/user/margins" -Headers $headers $margins.data.equity | Select-Object available, utilised, net
Place a market order
powershell$orderBody = @{ tradingsymbol = "RELIANCE" exchange = "NSE" transaction_type = "BUY" order_type = "MARKET" quantity = 1 product = "CNC" # CNC = delivery, MIS = intraday, NRML = F&O } $resp = Invoke-RestMethod -Uri "$baseUrl/orders/regular" ` -Method POST -Headers $headers -Body $orderBody Write-Host "Order ID: $($resp.data.order_id)"
Get order history
powershell$orders = Invoke-RestMethod -Uri "$baseUrl/orders" -Headers $headers $orders.data | Select-Object order_id, tradingsymbol, transaction_type, quantity, price, status, order_timestamp | Sort-Object order_timestamp -Descending
Examples
"Show me my Zerodha portfolio with current P&L"
→ Fetch /portfolio/holdings, calculate P&L per position, sum for total portfolio gain/loss.
"What's the current price of HDFC Bank?"
→ GET /quote?i=NSE:HDFCBANK — returns LTP, OHLC, volume, and circuit limits.
"Place a buy order for 1 share of Infosys at market price"
→ POST to /orders/regular with INFY, NSE, BUY, MARKET, qty 1, product CNC.
Cautions
- Kite Connect requires a paid API subscription (₹2000/month) — confirm with the user before attempting API calls
- The access token expires daily and must be regenerated via the login flow each morning
- Always confirm order details with the user before placing — orders execute immediately at market price
- Use
product: CNCfor delivery equity trades,MISfor intraday,NRMLfor F&O overnight positions - Paper-trade or test with small quantities before automating larger orders


