Broker Auth: Dhan¶
Authenticate and place a demo order via DhanHQ v2 over your static IP.
Part 03 of 20 in the ServLoci algo/options trading notebook series — full index in notebooks/README.md.
Setup¶
# Get your dedicated static IPv6 + SOCKS5 credentials free:
# https://comm.servloci.in/register (or /auth/google?free=1 for an instant trial)
# Your api_key / api_secret pair shows up in the portal after signup:
# https://comm.servloci.in/user
!pip install -q "requests[socks]"
!curl -sL https://comm.servloci.in/sdk/servloci.py -o servloci.py
import os
from servloci import ServLoci
SERVLOCI_API_KEY = os.environ.get("SERVLOCI_API_KEY", "dhan:1000000001") # broker:client_id
SERVLOCI_API_SECRET = os.environ.get("SERVLOCI_API_SECRET", "") # from the portal — leave blank to run this notebook in demo mode
sl = None
if SERVLOCI_API_SECRET:
sl = ServLoci(api_key=SERVLOCI_API_KEY, api_secret=SERVLOCI_API_SECRET)
print("ServLoci configured:", sl.host, sl.port)
else:
print("SERVLOCI_API_SECRET not set — running in demo mode (no live proxy calls).")
Support level: Assisted review — DhanHQ v2 API access is granted via a support ticket; mention your ServLoci IPv6 in the request.
if sl:
sl.attach() # BEFORE importing dhanhq — it creates a requests.Session at import time
from dhanhq import dhanhq
dhan = dhanhq(client_id=os.environ.get("DHAN_CLIENT_ID", ""), access_token=os.environ.get("DHAN_ACCESS_TOKEN", ""))
print("Dhan client ready:", dhan.client_id)
# order = dhan.place_order(security_id="1333", exchange_segment=dhan.NSE, transaction_type=dhan.BUY,
# quantity=1, order_type=dhan.MARKET, product_type=dhan.INTRA, price=0)
else:
print("Demo mode — set SERVLOCI_API_SECRET above to run this against your Dhan account.")
Install the broker SDK separately: !pip install -q dhanhq. Full whitelist steps: https://comm.servloci.in/docs/brokers.
« Previous: Broker Auth: Zerodha (Kite Connect)
Next: Broker Auth: Groww »
Try the concepts above interactively: Options Strategy Builder · Docs · Get your static IP