OpenAPI Specification
openapi: 3.1.0
info:
title: Groww Trading Authentication Portfolio API
description: The Groww Trading API is the official programmatic interface to the Groww investing and trading platform, enabling algorithmic trading, order management, portfolio and position tracking, margin calculation, live market data (LTP, quote, OHLC, option chain, greeks) and historical candle data across the CASH (equity) and FNO (derivatives) segments on Indian exchanges. Requests are authenticated with a daily access token (or an OAuth2 / API-key + secret / TOTP flow) and versioned with the X-API-VERSION header.
version: '1.0'
contact:
name: Groww Trading API Support
url: https://groww.in/trade-api/docs
termsOfService: https://groww.in/terms-and-conditions
x-api-evangelist-source: https://groww.in/trade-api/docs/curl
servers:
- url: https://api.groww.in
description: Groww Trading API production host
security:
- bearerAuth: []
apiVersion: []
tags:
- name: Portfolio
description: Holdings and positions.
paths:
/v1/holdings/user:
get:
operationId: getHoldings
summary: Get holdings
description: Retrieve the demat holdings for the authenticated user.
tags:
- Portfolio
responses:
'200':
description: User holdings
content:
application/json:
schema:
$ref: '#/components/schemas/HoldingsResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v1/positions/user:
get:
operationId: getPositions
summary: Get positions for user
description: Retrieve all open positions for the authenticated user.
tags:
- Portfolio
responses:
'200':
description: User positions
content:
application/json:
schema:
$ref: '#/components/schemas/PositionsResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v1/positions/trading-symbol:
get:
operationId: getPositionByTradingSymbol
summary: Get position for a trading symbol
tags:
- Portfolio
parameters:
- name: trading_symbol
in: query
required: true
schema:
type: string
- name: segment
in: query
required: false
schema:
$ref: '#/components/schemas/Segment'
responses:
'200':
description: Position for the trading symbol
content:
application/json:
schema:
$ref: '#/components/schemas/PositionsResponse'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
Exchange:
type: string
enum:
- NSE
- BSE
Holding:
type: object
properties:
isin:
type: string
trading_symbol:
type: string
quantity:
type: integer
average_price:
type: number
pledge_quantity:
type: integer
demat_locked_quantity:
type: integer
groww_locked_quantity:
type: integer
repledge_quantity:
type: integer
t1_quantity:
type: integer
demat_free_quantity:
type: integer
corporate_action_additional_quantity:
type: integer
active_demat_transfer_quantity:
type: integer
Segment:
type: string
enum:
- CASH
- FNO
description: Trading segment. MCX (commodities) is not supported.
HoldingsResponse:
type: object
properties:
status:
type: string
payload:
type: object
properties:
holdings:
type: array
items:
$ref: '#/components/schemas/Holding'
Position:
type: object
properties:
trading_symbol:
type: string
credit_quantity:
type: integer
credit_price:
type: number
debit_quantity:
type: integer
debit_price:
type: number
carry_forward_credit_quantity:
type: integer
carry_forward_credit_price:
type: number
carry_forward_debit_quantity:
type: integer
carry_forward_debit_price:
type: number
exchange:
$ref: '#/components/schemas/Exchange'
symbol_isin:
type: string
quantity:
type: integer
product:
$ref: '#/components/schemas/Product'
net_carry_forward_quantity:
type: integer
net_price:
type: number
net_carry_forward_price:
type: number
realised_pnl:
type: number
ErrorEnvelope:
type: object
properties:
status:
type: string
enum:
- SUCCESS
- FAILURE
payload:
type: object
nullable: true
error:
$ref: '#/components/schemas/Error'
Product:
type: string
enum:
- CNC
- MIS
- NRML
PositionsResponse:
type: object
properties:
status:
type: string
payload:
type: object
properties:
positions:
type: array
items:
$ref: '#/components/schemas/Position'
Error:
type: object
properties:
code:
type: string
description: Groww error code (e.g. GA004).
message:
type: string
metadata:
type: object
nullable: true
responses:
NotFound:
description: Requested entity does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
Unauthorized:
description: User not authorised to perform this operation
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Daily access token (or API key on the token endpoint) sent as `Authorization: Bearer {ACCESS_TOKEN}`.'
apiVersion:
type: apiKey
in: header
name: X-API-VERSION
description: API version header, currently `1.0`.
oauth2:
type: oauth2
description: OAuth2 authorization-code flow advertised at https://api.groww.in/.well-known/oauth-authorization-server
flows:
authorizationCode:
authorizationUrl: https://groww.in/oauth/authorize
tokenUrl: https://api.groww.in/oauth2/v1/token
scopes: {}