IIFL Markets data API: holdings, orders and funds
IIFL : Stocks, Demat & IPOs (branded IIFL Markets in the client) is the Android trading app of IIFL Securities, the listed Indian full-service broker now operating as IIFL Capital. Retail investors and active traders open a demat-plus-trading account, then watch NSE, BSE and MCX scrips, place regular, GTT and SMO orders, track holdings and F&O positions, browse mutual funds, live IPOs and smallcases, add or withdraw rupees over UPI and netbanking, and pledge holdings or turn on MTF / BNPL for extra buying power. TradingView charts, option chains, CDSL eDIS, nominee and segment-activation flows sit around that order pad. The app is India-only — a SEBI-regulated brokerage competing with Groww, Zerodha Kite, Upstox, Angel One and 5paisa (an IIFL spin-out) for the same cash-equity and derivatives crowd.
Collateral-pledged value (collateralValue) sits in the margin snapshot while each ISIN lot carries t1Quantity for T+1 free stock, plus authorizedQuantity, dpQuantity and avgPrice on the same row. Trading cash splits as TotalBalance, avlbMgn, sPAN and EligiblePayoutAmount. GTT legs carry triggerPrice and entryPrice; the order tape returns brokerOrderId, filledQuantity and orderStatus.
Portfolio reconcilers match demat lots to the custodian file, RMS monitors watch SPAN versus withdrawable cash, and payout ops post TokenNO into the bank-recon. openData Studio turns those fields into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Login with password and PIN
POST
/v1/brokerage/session/loginopenbankingExchanges client LoginId, password and 2PIN for ClientName, DPID, POAStatus and SecKey, the trade session key used on later calls.
Auth: None. A request code, app name, app version, OS name and LoginId identify the client before a session exists; the body carries the password and 2PIN.
- LoginId
- Password
- My2PIN
- ClientName
- EmailId
- DPID
- POAStatus
- BulkOrderAllowed
- OTPCredentialID
- SecKey
- ServerDt
- LastLogin
POST /v1/brokerage/session/login HTTP/1.1 Content-Type: application/json { "head": { "requestCode": "login.request", "key": "", "appVer": "9.0", "appName": "IIFLMarkets", "osName": "Android", "LoginId": "A123456" }, "body": { "Password": "********", "LocalIP": "10.0.0.12", "PublicIP": "203.0.113.25", "HDSerailNumber": "a1b2c3", "MACAddress": "02:00:00:00:00:00", "MachineID": "android-device-id", "VersionNo": "9.0", "RequestNo": 1, "My2PIN": "1234", "ConnectionType": "WIFI" } }{ "head": { "responseCode": "login.response", "status": "0", "statusDescription": "Success" }, "body": { "Success": 1, "ServerDt": "2026-10-20T11:05:12+05:30", "LastLogin": "2026-10-19T16:42:01+05:30", "ClientType": 1, "Msg": "Login successful", "ClientName": "PRIYA SHARMA", "EmailId": "[email protected]", "BulkOrderAllowed": 1, "RunningAuthorization": 1, "OTPCredentialID": "otp-cred-0001", "DPID": "IN300000", "POAStatus": "Y", "BankName": "HDFC BANK", "SecKey": "<session-key>", "VersionChanged": 0 } }Demat holdings snapshot
POST
/v1/portfolio/holdingsopenfinanceReturns demat lots with ISIN, NSE/BSE codes, average price, DP quantity, T+1 quantity and authorized quantity for the holdings screen.
Auth: Session key (head.key) and LoginId issued by the login call; session cookie is carried across calls.
- clientCode
- exch
- symbol
- avgPrice
- quantity
- LTP
- isin
- dpQuantity
- t1Quantity
- authorizedQuantity
- nseCode
- bseCode
- product
POST /v1/portfolio/holdings HTTP/1.1 Content-Type: application/json { "head": { "requestCode": "holdings.request", "key": "<session-key>", "appVer": "9.0", "appName": "IIFLMarkets", "osName": "Android", "LoginId": "A123456" }, "body": { "ClientCode": "A123456" } }{ "head": { "responseCode": "holdings.response", "status": "0", "statusDescription": "Success" }, "body": { "HoldingDetails": [ { "clientCode": "A123456", "exch": "N", "exchType": "C", "symbol": "RELIANCE", "exchShortName": "NSE", "avgPrice": 1384.5, "quantity": 50, "LTP": 1412.2, "nseCode": 2885, "bseCode": 500325, "previousPrice": 1408.0, "sortPosition": 1, "product": "CNC", "isin": "INE002A01018", "dpQuantity": 40, "t1Quantity": 10, "authorizedQuantity": 50 } ], "Msg": "Success", "status": 0 } }Funds and margin snapshot
POST
/v1/funds/marginopenbankingReads cash, available margin, SPAN, collateral and receipts/payments that power the funds and limits strip.
Auth: Session key (head.key) and LoginId issued by the login call.
- Clientcode
- TotalBalance
- avlbMgn
- collateralValue
- receipts
- payments
- sPAN
- adhoc
- marginOnCash
- nriCashReceipts
- status
- msg
POST /v1/funds/margin HTTP/1.1 Content-Type: application/json { "head": { "requestCode": "margin.request", "key": "<session-key>", "appVer": "9.0", "appName": "IIFLMarkets", "osName": "Android", "LoginId": "A123456" }, "body": { "Clientcode": "A123456" } }{ "head": { "responseCode": "margin.response", "status": "0", "statusDescription": "Success" }, "body": { "TotalBalance": 185000.0, "avlbMgn": 142300.5, "collateralValue": 62000.0, "receipts": 25000.0, "payments": 5000.0, "sPAN": 18400.0, "adhoc": 0.0, "marginOnCash": 118500.0, "nriCashReceipts": 0.0, "nriFOReceipts": 0.0, "physcripsNetworth": 0.0, "msg": "Success", "status": 0 } }Eligible payout amount
POST
/v1/funds/payout/eligibleopenbankingReturns the rupee amount eligible to withdraw before a payout request is placed.
Auth: Bearer-style JWT in the request body (JWTtoken) from the login session, plus the head app name, version, OS and request code.
- JWTtoken
- EligiblePayoutAmount
- Msg
- status
- appName
- appVer
- requestCode
POST /v1/funds/payout/eligible HTTP/1.1 Content-Type: application/json { "head": { "appName": "IIFLMarkets", "appVer": "9.0", "key": "<session-key>", "osName": "Android", "requestCode": "eligible-payout.request" }, "body": { "JWTtoken": "<jwt-token>" } }{ "head": { "responseCode": "eligible-payout.response", "status": 0, "statusDescription": "Success" }, "body": { "EligiblePayoutAmount": 118500.0, "Msg": "Success", "status": 0 } }Payout history
POST
/v1/funds/payout/historyopenbankingPages withdrawal requests with bank account, amount, status and token number for the funds history screen.
Auth: Session key (head.key) and LoginId issued by the login call.
- AccountNo
- Bank
- ChequeNo
- PayoutAmount
- PayoutDate
- PayoutStatus
- Product
- RequestAmount
- RequestDate
- TokenNO
POST /v1/funds/payout/history HTTP/1.1 Content-Type: application/json { "head": { "requestCode": "payout-history.request", "key": "<session-key>", "appVer": "9.0", "appName": "IIFLMarkets", "osName": "Android", "LoginId": "A123456" }, "body": { "ClientCode": "A123456" } }{ "head": { "responseCode": "payout-history.response", "status": "0", "statusDescription": "Success" }, "body": { "HistoryData": [ { "AccountNo": "50100000000000", "Bank": "HDFC BANK", "ChequeNo": "", "PayoutAmount": 25000, "PayoutDate": "2026-10-18", "PayoutStatus": "PROCESSED", "Product": "EQUITY", "RequestAmount": 25000, "RequestDate": "2026-10-18", "TokenNO": "PO0000000001" } ], "Msg": "Success", "status": 0 } }Linked bank accounts for fund transfer
POST
/v1/funds/banksopenbankingLists linked equity bank accounts and the UPI vendor used on the add-funds / payout screen.
Auth: Session key (head.key) and LoginId issued by the login call.
- EquityBanks
- BankName
- BankCode
- BankAccountNo
- NetbankingAllow
- IsEquityClient
- ALBEquity
- ClientCode
- UPIVendor
POST /v1/funds/banks HTTP/1.1 Content-Type: application/json { "head": { "requestCode": "fund-banks.request", "key": "<session-key>", "appVer": "9.0", "appName": "IIFLMarkets", "osName": "Android", "LoginId": "A123456" }, "body": { "ClientCode": "A123456" } }{ "head": { "responseCode": "fund-banks.response", "status": "0", "statusDescription": "Success" }, "body": { "EquityBanks": [ { "BankName": "HDFC BANK", "BankCode": "HDFC", "BankAccountNo": "50100000000000", "NetbankingAllow": "Y" } ], "IsEquityClient": true, "ALBEquity": 1, "ClientCode": "A123456", "Msg": "Success", "status": 0, "UPIVendor": "<upi-vendor>" } }Place GTT order
POST
/v1/orders/gttopenfinancePlaces a good-till-triggered order with buy/sell, product, quantity and trigger/entry legs.
Auth: Bearer-style JWT in the request body (jWTToken) plus the head session from login.
- jWTToken
- exchange
- gTTBuySell
- gTTProduct
- scripCode
- qty
- triggerType
- entryPrice
- triggerPrice
- nestOrderID
- appSource
- deviceID
POST /v1/orders/gtt HTTP/1.1 Content-Type: application/json { "body": { "appSource": "ANDROID", "deviceID": "android-device-id", "exchange": "NSE", "gTTBuySell": "B", "gTTProduct": "CNC", "jWTToken": "<jwt-token>", "publicIP": "203.0.113.25", "qty": 10, "requestType": "PLACE", "scripCode": "2885", "triggerType": "SL", "nestOrderID": "", "leg1": { "entryPrice": "1410.00", "triggerPrice": "1395.00" }, "leg2": { "entryPrice": "0", "triggerPrice": "0" } } }{ "head": { "responseCode": "gtt-order.response", "status": "0", "statusDescription": "Success" }, "body": { "status": 0, "Msg": "GTT placed", "nestOrderID": "250000000001" } }F&O and equity positions
POST
/v1/portfolio/positionsopenfinanceReturns open equity and commodity positions with buy/sell qty, average rate, net qty, booked P&L and LTP.
Auth: Session key (head.key) and LoginId issued by the login call.
- BuySell
- DelvIntra
- Exch
- ExchType
- ScripCode
- ScripName
- Qty
- Rate
- BuyQty
- SellQty
- NetQty
- BuyAvgRate
- BookedPL
- LTP
- Multiplier
POST /v1/portfolio/positions HTTP/1.1 Content-Type: application/json { "head": { "requestCode": "positions.request", "key": "<session-key>", "appVer": "9.0", "appName": "IIFLMarkets", "osName": "Android", "LoginId": "A123456" }, "body": { "ClientCode": "A123456" } }{ "head": { "responseCode": "positions.response", "status": "0", "statusDescription": "Success" }, "body": { "TradeData": [ { "BuySell": "B", "DelvIntra": "I", "Exch": "N", "ExchType": "D", "Multiplier": 50.0, "Qty": 100, "Rate": 24850.0, "ScripCode": 35000, "ScripName": "NIFTY 27OCT26 FUT", "BuyQty": 100, "SellQty": 0, "NetQty": 100, "BuyAvgRate": 24850.0, "SellAvgRate": 0.0, "BuyValue": 124250000.0, "SellValue": 0.0, "BookedPL": 0, "LTP": 24910.5 } ], "Message": "Success", "Status": 0, "TimeStamp": "2026-10-20T11:12:44+05:30" } }Order history
POST
/v1/orders/bookopenfinanceReturns the day's order book with broker/exchange ids, fill qty, status and rejection reason.
Auth: Session key (head.key) and LoginId issued by the login call.
- brokerOrderId
- exchangeOrderId
- orderStatus
- tradingSymbol
- instrumentId
- transactionType
- product
- orderType
- quantity
- filledQuantity
- pendingQuantity
- price
- averageTradedPrice
- validity
- rejectionReason
POST /v1/orders/book HTTP/1.1 Content-Type: application/json { "head": { "requestCode": "order-book.request", "key": "<session-key>", "appVer": "9.0", "appName": "IIFLMarkets", "osName": "Android", "LoginId": "A123456" }, "body": { "ClientCode": "A123456" } }{ "status": "0", "message": "Success", "result": [ { "clientId": "A123456", "placedBy": "A123456", "brokerOrderId": "250000000001", "exchangeOrderId": "110000000001", "orderStatus": "COMPLETE", "formattedInstrumentName": "RELIANCE", "tradingSymbol": "RELIANCE", "instrumentId": "2885", "exchange": "NSE", "transactionType": "BUY", "product": "CNC", "orderType": "LIMIT", "orderComplexity": "REGULAR", "quantity": 10, "filledQuantity": 10, "pendingQuantity": 0, "cancelledQuantity": 0, "price": 1410.0, "averageTradedPrice": 1409.85, "orderTime": "2026-10-20T10:14:02+05:30", "validity": "DAY", "rejectionReason": "" } ] }Place SMO / regular order
POST
/v1/brokerage/orders/placeopenfinancePlaces a regular or SMO (smart multi-leg) order with instrument, side, product, qty and limit price.
Auth: Session key (head.key) and LoginId issued by the login call; the body clientCode identifies the trading account.
- instrumentId
- exchange
- transactionType
- quantity
- orderComplexity
- product
- orderType
- price
- validity
- clientCode
- uniqueOrderID
- brokerOrderId
- orderStatus
POST /v1/brokerage/orders/place HTTP/1.1 Content-Type: application/json { "instrumentId": "2885", "exchange": "NSE", "transactionType": "BUY", "quantity": 10, "orderComplexity": "REGULAR", "product": "CNC", "orderType": "LIMIT", "price": 1410.0, "validity": "DAY", "disclosedQuantity": 0, "clientCode": "A123456", "deviceId": "android-device-id", "uniqueOrderID": "<client-order-id>", "apiOrderSource": "ANDROID" }{ "status": "0", "message": "Order placed", "result": { "brokerOrderId": "250000000002", "orderStatus": "OPEN", "instrumentId": "2885", "transactionType": "BUY", "quantity": 10, "price": 1410.0 } }Gainers and losers snapshot
POST
/v1/markets/moversopendataReturns cached NSE/BSE gainer and loser rows with LTP, percent change, scrip code and volume for the market snapshot.
Auth: Session key (head.key) and LoginId issued by the login call; a guest session is also accepted on dashboard calls.
- CacheTime
- Gainer
- Looser
- exch
- exchType
- fullName
- lTP
- perChange
- scripCode
- symbol
- volume
POST /v1/markets/movers HTTP/1.1 Content-Type: application/json { "head": { "requestCode": "movers.request", "key": "<session-key>", "appVer": "9.0", "appName": "IIFLMarkets", "osName": "Android", "LoginId": "A123456" }, "body": { "exch": "N", "exchType": "C" } }{ "body": { "CacheTime": 15, "Gainer": [ { "exch": "N", "exchType": "C", "fullName": "Reliance Industries Ltd", "lTP": 1412.2, "perChange": 2.35, "scripCode": 2885, "symbol": "RELIANCE", "volume": 8423110.0 } ], "Looser": [ { "exch": "N", "exchType": "C", "fullName": "Tata Steel Ltd", "lTP": 152.4, "perChange": -1.82, "scripCode": 3499, "symbol": "TATASTEEL", "volume": 12004500.0 } ], "Msg": "Success", "status": 0 } }
Data categories
- balances
- holdings
- orders
- positions
- payouts
- market-data
Where teams use this data
Nightly demat lot reconciliation
A family-office book pulls authorizedQuantity, dpQuantity, t1Quantity and isin per symbol and matches them to the custodian file before the next cash session.
RMS cash and SPAN monitor
A risk desk polls TotalBalance, avlbMgn, sPAN and EligiblePayoutAmount so a margin call fires before utilised span eats the withdrawable rupee balance.
Payout operations ledger
Treasury posts PayoutAmount, PayoutStatus, TokenNO and BankAccountNo into the bank-recon file instead of re-keying withdrawals from the funds screen.
Order-flow fill tape
An execution blotter stores brokerOrderId, exchangeOrderId, filledQuantity and averageTradedPrice, then overlays NetQty / BookedPL from the positions snapshot.
Frequently asked questions
What holdings fields does the IIFL Markets data API return?
Each demat lot includes isin, symbol, nseCode, bseCode, avgPrice, quantity, LTP, dpQuantity, t1Quantity, authorizedQuantity and product (for example CNC). Those are the same columns the holdings screen renders.
How are cash, margin and payouts exposed?
The margin snapshot returns TotalBalance, avlbMgn, collateralValue, sPAN and receipts/payments. EligiblePayoutAmount is the withdrawable rupee figure; payout history then lists AccountNo, Bank, PayoutAmount, PayoutStatus and TokenNO.
Does the surface cover orders and GTT, not just balances?
Yes. Place-order calls send instrumentId, transactionType, quantity, product and price, and the order tape returns brokerOrderId, exchangeOrderId, filledQuantity and orderStatus. GTT placement adds triggerType plus triggerPrice/entryPrice legs.
How does a session authenticate?
Login sends a request code, appName, appVer, osName and LoginId together with the password and 2PIN. Later calls reuse the returned session key and LoginId and, on payout and GTT, a JWT token issued for that client.
Apps similar to IIFL : Stocks, Demat & IPOs
- Groww — Groww Invest Tech is a SEBI-registered Indian stock broker and CDSL depository participant whose app covers stocks, ETFs, IPOs, futures and options, commodities, bonds and direct mutual funds.
- Zerodha Kite — Zerodha is a Bengaluru SEBI-registered broker whose Kite platform is used to invest in stocks, IPOs, derivatives, ETFs and bonds, with Coin handling direct mutual funds.
- Upstox Stocks IPO Mutual Funds — Upstox Securities, a subsidiary of RKSV Securities, is an Indian online broker whose app covers equities, futures and options, commodities, currencies, mutual funds and IPOs on NSE, BSE and MCX.
- Angel One: Stocks, Mutual Fund — Angel One is a SEBI-registered Indian broker whose app covers stocks, mutual funds, IPOs, futures and options, commodities and currencies, with MCX membership for commodity derivatives.
- 5paisa: Demat, Stocks & IPO — 5paisa Capital is an Indian discount broker whose platform pairs a demat account with stocks, IPOs, mutual funds, ETFs, commodities and futures and options.
- INDmoney: US Stocks, F&O, IPO — INDmoney is a SEBI-registered Indian broker whose app trades Indian stocks, futures and options and IPOs, and also covers US stocks and mutual funds.
- Paytm Money — Paytm Money is a SEBI-registered Indian broker whose wealth app covers equities, futures and options, mutual funds, ETFs, IPOs and the National Pension System.
- Dhan — Dhan is a SEBI-regulated Indian trading platform operated by Raise Securities whose app covers stocks, futures and options, commodities, ETFs, mutual funds and IPOs.
Topics
- IIFL Markets data API
- IIFL Securities holdings API
- IIFL EligiblePayoutAmount
- IIFL GTT triggerPrice
- IIFL avlbMgn margin API
- Indian brokerage open data
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use