Ecosystem All ecosystem services Dhan API docs ↗
Dhan API — built for speed
The lowest-latency retail order pipe in India, with free trading APIs and a flat-priced live data feed.
What it's great at. Dhan is engineered for execution speed: sub-100ms order latency,
25 orders/sec, 5,000 orders/day cap. Trading APIs are free for life; data APIs are
a flat ₹499/mo (10 OHLC req/sec). If you're running an intraday algo loop inside their ecosystem, the price/perf
is hard to beat. No first-party MCP yet.
Compose with Genka for the read side: XBRL fundamentals, concall search, MF screener.
Decision matrix
| If you need | Pick |
|---|---|
| Lowest-latency order placement (sub-100ms, 25 ord/s) | Dhan |
| Live market feed (10 OHLC req/s, free with data plan) | Dhan |
| Bulk orders with order slicing | Dhan |
| Holdings, positions, P&L on your Dhan account | Dhan |
| Quarterly XBRL fundamentals (FY17+) for Nifty 500 | Genka |
| Search 23,000 concall transcripts with cited LLM Q&A | Genka |
| Mutual fund screener (4,700 funds, SEBI taxonomy) | Genka |
| 30y NSE bhavcopy with corp-action-adjusted returns | Genka |
| Cross-broker research / no Dhan account | Genka |
What Dhan API is great at
- Pricing. Trading APIs free for life. Data APIs ₹499/mo flat.
- Latency / throughput. <100ms order latency, 25 orders/sec, 5,000 orders/day cap, 25 modifications per order.
- Trading. Stocks, F&O, MCX commodities. Bulk orders with slicing.
- Market data. Live feed across all exchange segments. 10 OHLC req/sec.
- Auth. Account-tied (Dhan KYC). Sandbox + production.
- MCP status. No first-party MCP server.
- What it does not ship. Quarterly fundamentals, concalls, MF analytics.
Where Genka complements Dhan
- Quarterly XBRL fundamentals. Primary-source NSE filings, FY17 onward, with audit URL per number.
- Concall corpus. ~23,000 transcripts; BM25 + grounded Q&A with citations.
- MF screener. 4,700 funds; rolling-window stats; SEBI category taxonomy;
mf_backtestwith survivorship transparency. - Indicator panel. Pre-computed RSI, MACD, DMA, multi-window returns per NSE symbol — one call.
- MCP-native. Self-describing tool catalog; agent discovers schemas at runtime; no daily token expiry.
Compose them
Genka over MCP for the research; Dhan over REST for the order:
# 1. Wire Genka to Claude Code: claude mcp add genka --transport http https://genka.dev/mcp \ -H "X-API-Key: $GENKA_API_KEY" # 2. Use Dhan REST for execution (Python): import os, requests DHAN = "https://api.dhan.co/v2" HDR = { "access-token": os.environ["DHAN_TOKEN"], "client-id": os.environ["DHAN_CLIENT_ID"], } # Genka decides via Claude/MCP, Python places the order: requests.post(f"{DHAN}/orders", headers=HDR, json={ "securityId": "11536", # TCS NSE "transactionType": "BUY", "orderType": "MARKET", "productType": "CNC", "quantity": 5, })
Relevant Genka endpoints
GET /v1/companies/{symbol}/ratios— quarterly fundamentals time seriesGET /v1/prices/{symbol}/latest— pre-computed indicator panelGET /v1/concalls/search?q=— concall searchPOST /v1/concalls/answer— grounded Q&AGET /v1/mf/screener— MF filterPOST /v1/mf/backtest— portfolio backtest with survivorship transparency
Full catalog: /llms.txt
Working with Dhan API — gotchas
- Trading vs data are billed separately. Trading APIs are free for life; data APIs are ₹499/mo. If you only need to place orders (using your own price source), you pay nothing.
- Order throughput is per-key. 25 orders/sec, 5,000/day — per API key, not per account. Multi-strategy setups should split keys to avoid head-of-line blocking.
- Sandbox + production are isolated. Dhan ships a sandbox; sandbox credentials are useless against production and vice versa. Don't mix in your config.
- WebSocket multiplexes. One WebSocket connection can subscribe to up to ~5,000 instruments. Past that, open a second socket. Subscribing to fewer tickers = less bandwidth = less your-side processing.
Other ecosystem services