Broker Auth: Groww¶
Authenticate and place a demo order via the Groww Trade API over your static IP.
Part 04 of 37 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: Support-confirmed workflow — Groww enables Trade API access per-account after a confirmation email; include your ServLoci IP in that thread.
Indian broker APIs authenticate trading sessions with an OAuth-style
two-step handshake, not a single long-lived key. You redirect the user (in
practice, yourself) to a broker login page, the broker redirects back with a
short-lived request_token, and you exchange that token — together with your
app's api_secret — for an access_token that's valid for actual order
calls. The api_key/api_secret pair identifies your app; the
access_token identifies an authenticated session and, at every broker
covered here, expires at end of trading day regardless of activity. That
forced daily re-login is a deliberate session-security control, common across
SEBI-regulated broker APIs, so a stolen access token has a shelf life measured
in hours, not indefinitely.
Groww's Trade API is the newest of the four and leans on account-linked confirmation rather than a developer console: access is switched on per-account after a confirmation email, and the same email thread is where you supply the static IP to allowlist. Worth knowing before you build against it: order and market-data coverage is still narrower than the older APIs, so check the current feature list against what your strategy needs.
if sl:
sl.attach() # BEFORE importing growwapi — it creates a requests.Session at import time
from growwapi import GrowwAPI
groww = GrowwAPI(os.environ.get("GROWW_ACCESS_TOKEN", ""))
print("Groww client ready")
# order = groww.place_order(trading_symbol="INFY", quantity=1, order_type="MARKET",
# transaction_type="BUY", segment="CASH", product="MIS")
else:
print("Demo mode — set SERVLOCI_API_SECRET above to run this against your Groww account.")
Install the broker SDK separately: !pip install -q growwapi. Full whitelist steps: https://comm.servloci.in/docs/brokers.
« Previous: Broker Auth: Dhan
Next: Broker Auth: Fyers »
Try the concepts above interactively: Options Strategy Builder · Docs · Get your static IP