Angel One Data API: Endpoints and Fields
Angel One: Stocks, Mutual Fund is the Android trading client of Angel One Limited (formerly Angel Broking), India's listed full-service broker. Retail investors and active traders open a demat-plus-trading account, then watch NSE/BSE/MCX scrips, place regular, cover, basket and GTT orders, track holdings and F&O positions, run stock SIPs, browse mutual funds and IPOs, add or withdraw rupees over UPI and netbanking, and pledge holdings for extra margin. Family-portfolio, advisory Super Portfolios, charts, option chains, MTF (margin trading facility), eDIS CDSL TPIN flows and a BharatPe one-click pay rail sit around that order pad. The app is India-only — SEBI-regulated brokerage competing with Groww, Zerodha Kite, Upstox and 5paisa for the same cash-equity and derivatives crowd.
RMS rows split rupee buying power into cashDeposit, collateral and netAvailableFunds, with per-segment MTMEquityPosition / MTMDerivativePosition for the Funds card. Demat lines then name isin, qty, avgPrice, curMktValue and a qty breakup (free_qty, pledge_qty, ltcg_qty, stcg_qty) that tax lots and pledge tickets both read.
Open F&O rows add netQty, productType and strikePrice; the order book stamps orderId, filledShares and guiOrderId; GTT rules keep gttType plus triggerprice; BharatPe credits land as transaction_id / amount / status. Back-office recon, capital-gains worksheets and intraday risk overlays consume those fields — openData Studio turns them 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 MPIN
POST
/v1/session/verify-pinopenbankingExchanges the client's MPIN for a trade session: userid, username, access/refresh tokens, market-data feed token, subscribed exchanges and product types used on every later AMX call.
Auth: Client-id plus MPIN; response accesstoken / refreshtoken attach as trade-token headers on later AMX calls.
- userid
- username
- accesstoken
- refreshtoken
- feedstokenid
- usertype
- broker
- branch
- exchange
- product
- ordertype
- lastlogintime
- daysleft
- failureattempt
- passwordreset
- subscribedexchprodlist
POST /v1/session/verify-pin HTTP/1.1 Content-Type: application/json { "mpin": "1234" }{ "status": true, "errorcode": "", "message": "SUCCESS", "data": { "userid": "A123456", "username": "PRIYA SHARMA", "accesstoken": "eyJhbGciOiJIUzI1NiJ9...", "refreshtoken": "rt_9f3a...", "feedstokenid": "feed_tok_1", "usertype": "CLIENT", "broker": "ANGEL", "branch": "MUM", "exchange": "NSE,BSE,NFO,MCX", "product": "CNC,MIS,NRML", "ordertype": "LIMIT,MARKET,SL,SL-M", "lastlogintime": "16-Oct-2026 09:15:02", "daysleft": 87, "failureattempt": 0, "passwordreset": false, "subscribedexchprodlist": "NSE-CNC,NFO-MIS" } }RMS funds and limits
POST
/v2/risk/limitsopenbankingReads the risk-management snapshot that powers the Funds screen: cash and collateral, available vs net funds, today's transfers, per-segment MTM and delivery bought/sold value.
Auth: Trade token (accesstoken) from MPIN login.
- cashDeposit
- collateral
- fundsAvailable
- netAvailableFunds
- adhocDeposit
- notionalDeposit
- fundTransferredToday
- limitUtilization
- amountUtilizedPrsnt
- MTMEquityPosition
- MTMDerivativePosition
- MTMProfitLoss
- equityPosition
- derivativePosition
- deliveryBoughtValue
- deliverySoldValue
POST /v2/risk/limits HTTP/1.1 Authorization: Bearer <accesstoken> Content-Type: application/json { "exchange": "NSE", "product": "CNC", "segment": "E" }{ "status": true, "errorcode": "", "message": "SUCCESS", "data": { "cashDeposit": 125000.0, "collateral": 48000.5, "fundsAvailable": 173000.5, "netAvailableFunds": 152410.25, "adhocDeposit": 0.0, "notionalDeposit": 0.0, "fundTransferredToday": 10000.0, "limitUtilization": 0.18, "amountUtilizedPrsnt": 20600.0, "MTMEquityPosition": 2340.0, "MTMDerivativePosition": -890.5, "MTMCommodityPosition": 0.0, "MTMCurrencyPosition": 0.0, "MTMProfitLoss": 1449.5, "equityPosition": 15200.0, "derivativePosition": 41000.0, "deliveryBoughtValue": 8500.0, "deliverySoldValue": 0.0 } }Trading balance summary
GET
/v1/wallet/summaryopenbankingReturns the cash / collateral / trading-balance split shown on the withdraw and funds-summary cards, including the withdrawable rupee amount.
Auth: Trade token (accesstoken) from MPIN login.
- cashBalance
- collateral
- tradingBalance
- summary
- value
- type
- text
- components
GET /v1/wallet/summary HTTP/1.1 Authorization: Bearer <accesstoken>{ "status": true, "errorcode": "", "message": "SUCCESS", "details": "", "data": { "cashBalance": { "type": "CASH", "text": "Cash", "value": 125000.0, "components": [] }, "collateral": { "type": "COLLATERAL", "text": "Collateral", "value": 48000.5, "components": [] }, "tradingBalance": { "type": "TRADING", "text": "Trading balance", "value": 173000.5, "components": [] }, "summary": [ { "type": "WITHDRAWABLE", "text": "Withdrawable", "value": 118500.0 } ] } }Demat holdings (super portfolio)
POST
/v2/portfolio/holdingsopenfinanceLists demat holdings for the signed-in partyCode: quantity, average price, LTP, invested vs current market value, day P&L, pledge/CUSA/blocked qty and sector tags used on the Holdings tab.
Auth: Trade token (accesstoken) from MPIN login.
- symbolName
- tradeSymbol
- compName
- isin
- qty
- total_qty
- avgPrice
- ltp
- invValue
- curMktValue
- dayGL
- chp
- ch
- exchName
- tokenID
- partyCode
- pledge
- cusa
- blockedQty
- isETF
- sector
- TotalInvValue
- TotalHolding
- TotalGL
- TotalDayGL
POST /v2/portfolio/holdings HTTP/1.1 Authorization: Bearer <accesstoken> Content-Type: application/json { "partyCode": "A123456", "partyCodeList": ["A123456"] }{ "TotalHolding": { "TotalInvValue": 251240.0, "TotalHolding": 268910.5, "TotalGL": 17670.5, "TotalDayGL": 410.0 }, "holdings": [ { "symbolName": "RELIANCE", "tradeSymbol": "RELIANCE-EQ", "compName": "Reliance Industries Ltd", "isin": "INE002A01018", "qty": 40, "total_qty": 40, "avgPrice": 2480.25, "ltp": 2712.4, "invValue": 99210.0, "curMktValue": 108496.0, "dayGL": 410.0, "chp": 0.38, "ch": 10.25, "exchName": "NSE", "tokenID": "2885", "partyCode": "A123456", "pledge": 0, "cusa": 0, "blockedQty": 0, "isETF": false, "sector": "Energy" } ] }Open positions
GET
/v3/positions/openopenfinanceReturns open cash and F&O positions with net quantity/value, buy/sell averages, option identifiers and lot size for the Positions tab and square-off flow.
Auth: Trade token (accesstoken) from MPIN login.
- tradingSymbol
- symbolToken
- exchange
- productType
- netQty
- netPrice
- netValue
- buyQty
- buyAvgPrice
- sellQty
- sellAvgPrice
- avgPrice
- instrumentType
- optionType
- strikePrice
- expiryDate
- lotSize
GET /v3/positions/open HTTP/1.1 Authorization: Bearer <accesstoken>{ "status": "true", "message": "SUCCESS", "error_code": "", "data": [ { "tradingSymbol": "NIFTY24OCT24500CE", "symbolToken": "44124", "symbolName": "NIFTY", "exchange": "NFO", "productType": "MIS", "netQty": "-75", "netPrice": "128.40", "netValue": "-9630.00", "buyQty": "0", "buyAvgPrice": "0", "buyAmount": "0", "sellQty": "75", "sellAvgPrice": "128.40", "sellAmount": "9630.00", "avgPrice": "128.40", "avgNetPrice": "128.40", "instrumentType": "OPTIDX", "optionType": "CE", "strikePrice": "24500", "expiryDate": "31OCT2024", "isin": "", "lotSize": "75" } ] }Order book
GET
/v3/orders/todayopenfinancePages the day's order book — open, executed and rejected — with nest/exchange ids, fill vs unfilled qty, product and duration used on the Orders tab.
Auth: Trade token (accesstoken) from MPIN login.
- orderId
- nestOrdNum
- exchangeOrderId
- tradingSymbol
- symbolToken
- exchange
- transactionType
- orderType
- productType
- price
- quantity
- filledShares
- unfilledShares
- status
- duration
- triggerPrice
- averagePrice
- ltp
- updateTime
- isin
- guiOrderId
GET /v3/orders/today HTTP/1.1 Authorization: Bearer <accesstoken>{ "data": [ { "orderId": "241016000012345", "nestOrdNum": "241016000012345", "exchangeOrderId": "1100000012345678", "tradingSymbol": "RELIANCE-EQ", "symbolToken": "2885", "exchange": "NSE", "transactionType": "BUY", "orderType": "LIMIT", "productType": "CNC", "price": "2710.00", "quantity": "10", "filledShares": "0", "unfilledShares": "10", "status": "open", "duration": "DAY", "triggerPrice": "0", "averagePrice": "0", "disclosedQuantity": "0", "ltp": "2712.40", "updateTime": "16-Oct-2026 09:21:11", "exchTime": "16-Oct-2026 09:21:11", "isin": "INE002A01018", "guiOrderId": "gui_9f3" } ] }Place order
POST
/v4/ordersopenfinanceSubmits a regular, cover or AMO order from the buy/sell pad and returns the nest orderId plus punch time used on the order-placed sheet.
Auth: Trade token (accesstoken) from MPIN login.
- variety
- symbolToken
- exchangeSegment
- transactionType
- orderType
- productType
- duration
- price
- quantity
- disclosedQuantity
- triggerPrice
- guiOrderId
- orderTag
- orderId
- ordStatus
- scrip
- punchTime
- isAMO
POST /v4/orders HTTP/1.1 Authorization: Bearer <accesstoken> Content-Type: application/json { "variety": "NORMAL", "symbolToken": "2885", "exchangeSegment": "NSE", "transactionType": "BUY", "orderType": "LIMIT", "productType": "CNC", "duration": "DAY", "price": "2710.00", "quantity": "10", "disclosedQuantity": "0", "triggerPrice": "0", "guiOrderId": "gui_9f3", "orderTag": "android" }{ "message": "SUCCESS", "errorCode": "", "data": { "orderId": "241016000012345", "guiOrderId": "gui_9f3", "status": "open", "ordStatus": "open", "scrip": "RELIANCE-EQ", "exchangeSegment": "NSE_CM", "totalQty": "10", "punchTime": "09:21:11", "isAMO": false } }Pre-trade margin quote
POST
/v2/margin/quoteopenfinanceQuotes the rupee margin an order pad would lock, including market-price-protection (MPP) vs standard span, before the client taps Buy or Sell.
Auth: Trade token (accesstoken) from MPIN login.
- isV4ApiResponse
- productType
- exchange
- marginRequired
- standardMarginRequired
- protectedMarginRequired
- marketProtectionPricePercentage
- isMarketProtectionEnabled
POST /v2/margin/quote HTTP/1.1 Authorization: Bearer <accesstoken> Content-Type: application/json { "exchange": "NFO", "productType": "MIS", "symbolToken": "44124", "quantity": "75", "price": "128.40", "transactionType": "SELL" }{ "status": true, "errorcode": "", "message": "SUCCESS", "data": { "isV4ApiResponse": true, "margin": [ { "productType": "MIS", "exchange": "NFO", "marginRequired": 14250.0, "standardMarginRequired": 18500.0, "protectedMarginRequired": 14880.0, "marketProtectionPricePercentage": 2.5, "isMarketProtectionEnabled": true } ] } }GTT rule list
POST
/v2/triggers/listopenfinanceLists Good-Till-Triggered rules (new and triggered) that drive the GTT tab — scrip, side, product and status without waiting on the exchange order book.
Auth: Trade token (accesstoken) from MPIN login.
- id
- clientid
- symboltoken
- symbolName
- tradingsymbol
- exchange
- transactiontype
- producttype
- gttType
- status
- price
- triggerprice
- qty
- createddate
- updateddate
- isin
- lotsize
- disclosedqty
POST /v2/triggers/list HTTP/1.1 Authorization: Bearer <accesstoken> Content-Type: application/json { "page": 1, "count": 50, "status": ["NEW", "TRIGGERED"] }{ "status": true, "message": "SUCCESS", "errorcode": "", "data": [ { "id": "gtt_8821", "clientid": "A123456", "symboltoken": "2885", "symbolName": "RELIANCE", "tradingsymbol": "RELIANCE-EQ", "exchange": "NSE", "transactiontype": "BUY", "producttype": "CNC", "gttType": "SINGLE", "status": "NEW", "price": "2650.00", "triggerprice": "2660.00", "qty": "10", "createddate": "2026-10-12T11:04:00+05:30", "updateddate": "2026-10-12T11:04:00+05:30", "isin": "INE002A01018", "lotsize": "1", "disclosedqty": "0" } ] }Create GTT rule
POST
/v2/triggers/createopenfinanceCreates a single or OCO GTT rule from the order pad: trigger and limit prices, qty, product and the LTP captured at tap time.
Auth: Trade token (accesstoken) from MPIN login.
- exchange
- tradingsymbol
- symboltoken
- producttype
- transactiontype
- qty
- price
- triggerprice
- disclosedqty
- gttType
- clientid
- ltp_at_order_placement
POST /v2/triggers/create HTTP/1.1 Authorization: Bearer <accesstoken> Content-Type: application/json { "exchange": "NSE", "tradingsymbol": "RELIANCE-EQ", "symboltoken": "2885", "producttype": "CNC", "transactiontype": "BUY", "qty": "10", "price": "2650.00", "triggerprice": "2660.00", "disclosedqty": "0", "gttType": "SINGLE", "clientid": "A123456", "ltp_at_order_placement": "2712.40" }{ "status": true, "message": "SUCCESS", "errorcode": "", "data": { "status": "NEW", "symboltoken": "2885", "tradingsymbol": "RELIANCE-EQ", "gttType": "SINGLE" } }Pledge net amount
GET
/v2/pledge/eligibilityopenfinanceReturns whether the client can pledge holdings and the rupee net_amount that would unlock as extra RMS collateral on the stock-pledge card.
Auth: Trade token (accesstoken) from MPIN login.
- is_eligible
- title
- description
- subtext
- net_amount
- type
GET /v2/pledge/eligibility HTTP/1.1 Authorization: Bearer <accesstoken>{ "st": true, "msgcode": "200", "msg": "SUCCESS", "data": { "is_eligible": true, "title": "Pledge to get extra margin", "description": "Pledge holdings to increase trading limit", "subtext": "Net pledge value", "net_amount": "48210.00", "type": "PLEDGE" } }Add-funds UPI transaction list
GET
/v2/payments/depositsopenbankingLists BharatPe / one-click-pay add-fund rows — UPI or netbanking — with amount, bank, IFSC, masked account and complaint flag for the Funds history screen.
Auth: Trade token (accesstoken) from MPIN login.
- client_code
- transaction_id
- reference_number
- amount
- status
- transaction_datetime
- method
- bank_name
- bank_ifsc_code
- bank_account_number
- is_complaint_registered
GET /v2/payments/deposits HTTP/1.1 Authorization: Bearer <accesstoken>{ "status": "SUCCESS", "error_code": "", "message": "OK", "data": { "transactions": [ { "client_code": "A123456", "transaction_id": "TXN240160001", "reference_number": "409216001234", "amount": 5000.0, "status": "SUCCESS", "transaction_datetime": "2026-10-16T09:18:44+05:30", "method": "UPI", "bank_name": "HDFC Bank", "bank_ifsc_code": "HDFC0000123", "bank_account_number": "XXXX4521", "is_complaint_registered": false } ] } }Holding details (qty breakup)
POST
/v2/holdings/detailopenfinanceBreaks one holding into free / pledged / CUSA / T+0 / T+1 unsettled and LTCG vs STCG lots — the numbers on the holding-details sheet used before sell or pledge.
Auth: Trade token (accesstoken) from MPIN login.
- symbol_name
- trade_symbol
- comp_name
- token_id
- total_qty
- tradable_qty
- free_qty
- pledge_qty
- margin_qty
- cusa_qty
- unsettled_qty
- t1_unsettled_qty
- t0_unsettled_qty
- blocked_qty
- avg_price
- ltcg_qty
- stcg_qty
- ltcg_avg_price
- stcg_avg_price
- inv_value
- cur_mkt_value
- day_GL
- ltp
POST /v2/holdings/detail HTTP/1.1 Authorization: Bearer <accesstoken> Content-Type: application/json { "partyCode": "A123456", "token_id": "2885" }{ "symbol_name": "RELIANCE", "trade_symbol": "RELIANCE-EQ", "comp_name": "Reliance Industries Ltd", "token_id": "2885", "total_qty": 40, "tradable_qty": 38, "free_qty": 30, "pledge_qty": 5, "margin_qty": 2, "cusa_qty": 0, "unsettled_qty": 3, "t1_unsettled_qty": 2, "t0_unsettled_qty": 1, "blocked_qty": 0, "avg_price": 2480.25, "ltcg_qty": 25, "stcg_qty": "15", "ltcg_avg_price": 2310.0, "stcg_avg_price": 2764.0, "inv_value": 99210.0, "cur_mkt_value": 108496.0, "day_GL": 410.0, "ltp": 2712.4 }
Data categories
- session tokens
- RMS funds and collateral
- demat holdings
- F&O positions
- order book
- GTT rules
- pledge margin
- UPI add-funds
Where teams use this data
Nightly RMS vs ledger recon
A back-office bot pulls cashDeposit, collateral and netAvailableFunds from the RMS snapshot and matches them to the broker's ledger and bank-mandate UPI credits (transaction_id, amount, status) so excess cash can be withdrawn the same evening.
Holdings tax-lot export
A CA worksheet joins holding-detail lots — ltcg_qty / stcg_qty, ltcg_avg_price / stcg_avg_price, pledge_qty and t1_unsettled_qty — to ISIN and partyCode so capital-gains estimates stay in sync with the demat position.
Intraday position risk overlay
A desk overlay reads open F&O rows (netQty, avgPrice, productType, strikePrice) plus the margin quote (marginRequired, protectedMarginRequired) to flag MIS NIFTY shorts that would breach RMS after a 2% MPP move.
GTT coverage check
A portfolio monitor lists GTT rules (gttType, triggerprice, status) against holdings qty so every CNC line has a live buy-the-dip or stop rule before the cash market opens.
Frequently asked questions
What brokerage data does the Angel One app expose?
After MPIN sign-in the app's private surface returns RMS funds (cashDeposit, collateral, netAvailableFunds), demat holdings with ISIN and LTCG/STCG lots, F&O positions, the day's order book, GTT rules, pledge net_amount and one-click-pay UPI add-fund rows.
How does Angel One authenticate API calls?
The client posts the MPIN to a dedicated sign-in endpoint and receives accesstoken, refreshtoken and feedstokenid. Later funds, pledge and payment-gateway calls attach that trade token as a bearer header, and a separate refresh call renews it.
Can I read holdings quantity breakup, not just a total?
Yes. The holding-detail call returns total_qty, tradable_qty, free_qty, pledge_qty, cusa_qty, t0/t1 unsettled qty and separate ltcg_qty / stcg_qty with their average prices.
Is this a public developer API?
No. These are first-party endpoints the Android client uses after a signed-in MPIN session, not a published partner or developer API surface.
Apps similar to Angel One: Stocks, Mutual Fund
- Groww — Groww is an Indian investing app for a demat account plus stocks, ETFs, IPOs, futures and options, commodities and direct mutual funds in one place.
- Zerodha Kite — Zerodha is a Bengaluru broker whose Kite platform lets retail clients trade stocks, derivatives, currencies and commodities and buy mutual funds through Coin.
- Upstox — Upstox is an Indian online broker whose app covers stocks, mutual funds, IPOs, futures and options, commodities and currency trading.
- 5paisa — 5paisa Capital is a SEBI-registered Indian discount broker whose trading app covers stocks, mutual funds, IPOs, ETFs, US stocks, futures and options and commodities.
- Paytm Money — Paytm Money is One97 Communications' wealth-tech broker, giving retail investors equities, derivatives, mutual funds, ETFs, IPOs, bonds and retirement products.
- Dhan — Dhan is an Indian trading platform for stocks, futures and options, commodities, ETFs, mutual funds and IPOs, with a dedicated Options Trader app.
- ICICI Direct — ICICI Direct is ICICI Securities' online trading site, pairing a 3-in-1 bank-demat-trading account with stocks, mutual funds, IPOs, ETFs, F&O and commodities.
- HDFC Securities — HDFC Securities offers online equity, derivatives, currency, commodity, mutual-fund and IPO investing through its InvestRight app.
Topics
- Angel One API
- Angel One RMS funds
- Angel One holdings API
- Angel One order book
- Angel One GTT
- Angel One UPI add funds
- Indian brokerage data API
- demat holdings fields
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