Funds API
Access comprehensive margin and fund availability information for portfolio management and trade planning across all market segments.
Overview
The Funds API provides detailed insights into available cash, margin utilization, collateral positions, and trading limits, enabling effective risk management and position sizing decisions.
Endpoint Reference
Get User Limits
Retrieve complete margin and fund details for the authenticated user account.
Endpoint Details
Method: GET
URL: /user/limits
Authentication: Required (appID + token)
Request Headers
| Header | Type | Required | Description |
|---|---|---|---|
appID |
string | ✓ | Your application identifier |
token |
string | ✓ | User authentication token |
Request Example
Response Schema
Success Response
The API returns comprehensive fund and margin information across all trading segments.
{
"data": {
"allocations": [
{
"cashCurrent": "0",
"cashEqCurrent": "0",
"cashEqOpening": "0",
"cashOpening": "0",
"nonCashCurrent": "0",
"nonCashOpening": "0",
"segment": "CM"
},
{
"cashCurrent": "226462.37",
"cashEqCurrent": "0",
"cashEqOpening": "0",
"cashOpening": "226462.37",
"nonCashCurrent": "0",
"nonCashOpening": "0",
"segment": "FO"
},
{
"cashCurrent": "0",
"cashEqCurrent": "0",
"cashEqOpening": "0",
"cashOpening": "0",
"nonCashCurrent": "0",
"nonCashOpening": "0",
"segment": "MCX"
}
],
"margin": {
"allocated": "226462.37",
"utilized": "-3641.75",
"brokerage": "0",
"buyOptionPremium": "12506.25",
"cashUsed": "-3641.75",
"exposureMargin": "0",
"intradayCashMargin": "0",
"otherMargin": "0",
"realizedPnl": "0",
"sellOptionPremium": "16148",
"spanMargin": "0",
"totalMargin": "0",
"unrealizedPnl": "1180.75"
}
},
"status": "success"
}
Core Fields Reference
Cash & Funds
| Field | Type | Description |
|---|---|---|
cash |
string | Available cash balance |
dayCash |
string | Day's cash movement |
blockedAmount |
string | Amount blocked for pending orders |
unClearedCash |
string | Funds awaiting clearance |
payIn |
string | Expected incoming payments |
payOut |
string | Scheduled outgoing payments |
Collateral & Margins
| Field | Type | Description |
|---|---|---|
brokerCollateralAmount |
string | Broker collateral value |
liquidCollateralAmount |
string | Liquid collateral holdings |
equityCollateralAmount |
string | Equity collateral value |
marginUsed |
string | Total margin currently utilized |
deliveryMargin |
string | Margin for delivery positions |
Trading Metrics
| Field | Type | Description |
|---|---|---|
turnover |
string | Total trading turnover |
premium |
string | Net premium received/paid |
brokerage |
string | Total brokerage charges |
mtomCurrentPct |
string | Mark-to-market percentage |
Segment-wise Breakdown
The API provides detailed segment-wise data for:
currentRealizedPnLei- Equity IntradaycurrentRealizedPnLem- Equity MargincurrentRealizedPnLec- Equity Cash
premiumDi- Derivatives IntradaypremiumDm- Derivatives MarginbrokerageDi- Derivatives Brokerage
spanFi- Futures Intraday SPANspanFm- Futures Margin SPANexposureMarginFi- Futures Exposure
spanCi- Currency IntradayspanCm- Currency MarginexposureMarginCi- Currency Exposure
Margin Calculation
Available Margin Formula
Calculate your available trading margin using the core formula:
Margin Calculation
Available Margin = Cash + PayIn - PayOut - MarginUsed
function calculateAvailableMargin(limits) {
const cash = parseFloat(limits.cash) || 0;
const payIn = parseFloat(limits.payIn) || 0;
const payOut = parseFloat(limits.payOut) || 0;
const marginUsed = parseFloat(limits.marginUsed) || 0;
return cash + payIn - payOut - marginUsed;
}
// Example usage
const availableMargin = calculateAvailableMargin(data[0]);
console.log(`Available Margin: ₹${availableMargin.toFixed(2)}`);
def calculate_available_margin(limits):
cash = float(limits.get('cash', 0))
pay_in = float(limits.get('payIn', 0))
pay_out = float(limits.get('payOut', 0))
margin_used = float(limits.get('marginUsed', 0))
return cash + pay_in - pay_out - margin_used
# Example usage
available_margin = calculate_available_margin(data[0])
print(f"Available Margin: ₹{available_margin:.2f}")
Sample Account Analysis
Based on the example response:
Account Summary
Cash Balance: ₹281,546.12
Total Turnover: ₹13,75,09,697.25
Net Premium: ₹-4,233.75
Total Brokerage: ₹1,080.00
Error Handling
Standard HTTP status codes with structured error responses:
{
"status": "error",
"message": "Insufficient funds for trade execution",
"code": "INSUFFICIENT_MARGIN"
}
Common Issues
- INSUFFICIENT_MARGIN: Available margin below requirement
- BLOCKED_FUNDS: Funds temporarily unavailable
- SETTLEMENT_PENDING: Awaiting fund clearance
- LIMIT_EXCEEDED: Trading limit breach
Integration Guidelines
Best Practices
- Pre-trade validation: Check available margin before order placement
- Real-time monitoring: Track margin utilization continuously
- Risk management: Set appropriate exposure limits
- Settlement tracking: Monitor payIn/payOut cycles
Optimization Tips
- Cache fund data for 30-60 seconds to reduce API calls
- Implement margin alerts at 80% utilization
- Use segment-wise breakdown for detailed analysis
- Monitor MTM percentage for portfolio risk assessment
Rate Limits
| Tier | Requests per minute | Burst limit |
|---|---|---|
| Basic | 120 | 20 |
| Premium | 600 | 100 |
| Enterprise | 2000 | 200 |