Angel One: Stocks, Mutual Fund icon

Angel One Data API: Endpoints and Fields

Angel One Limited · Banking

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

  • Angel One: Stocks, Mutual Fund screenshot 1
  • Angel One: Stocks, Mutual Fund screenshot 2
  • Angel One: Stocks, Mutual Fund screenshot 3
  • Angel One: Stocks, Mutual Fund screenshot 4
  • Angel One: Stocks, Mutual Fund screenshot 5
  • Angel One: Stocks, Mutual Fund screenshot 6
  • Angel One: Stocks, Mutual Fund screenshot 7
  • Angel One: Stocks, Mutual Fund screenshot 8

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-pin openbanking

    Exchanges 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/limits openbanking

    Reads 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/summary openbanking

    Returns 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/holdings openfinance

    Lists 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/open openfinance

    Returns 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/today openfinance

    Pages 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/orders openfinance

    Submits 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/quote openfinance

    Quotes 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/list openfinance

    Lists 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/create openfinance

    Creates 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/eligibility openfinance

    Returns 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/deposits openbanking

    Lists 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/detail openfinance

    Breaks 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

Get a quote