Skip to content

Historical Data

This API gives you historical candle data for the desired scrip across segments & exchange. This data is presented in the form of a candle and gives you timestamp, open, high, low, close & volume.

POST /charts/historical Get OHLC for daily candle
POST /charts/intraday Get OHLC for 1 minute timeframe

historical_daily_data Get OHLC for daily candle
intraday_minute_data Get OHLC for 1 minute timeframe
convert_to_date_time Convert epoch to system date

Daily Historical Data

Retrieve OHLC & Volume of daily candle for desired instrument. The data for any scrip is available back upto the date of its inception.

curl --request POST \
--url https://api.dhan.co/charts/historical \
--header 'Content-Type: application/json' \
--header 'access-token: JWT' \
--data '{}'
dhan.historical_daily_data(data)


Request Structure

{
    "symbol": "TCS",
    "exchangeSegment":"NSE_EQ",
    "instrument": "EQUITY",
    "expiryCode": 0,
    "fromDate": "2022-01-08",
    "toDate": "2022-02-08"
}
dhan.historical_daily_data(
    symbol='TCS',
    exchange_segment='NSE_EQ',
    instrument_type='EQUITY',
    expiry_code=0,
    from_date='2022-01-08',
    to_date='2022-02-08'
)


Parameters

Field Field Type Description
symbol
required
string Symbol of the instrument.
exchangeSegment
required
enum string Exchange & Segment.
NSE_EQ NSE_FNO NSE_CURRENCY BSE_EQ
MCX_COMM IDX_I
instrument
required
enum string Instrument type of the scrip . Refer here
EQUITY FUTCOM FUTCUR FUTIDX FUTSTK
INDEX
expiryCode
conditionally required
enum integer Expiry of the instruments in case of derivatives. Refer here
fromDate
required
string Start date of the desired range
toDate
required
string End date of the desired range (non-inclusive)

Field Field Type Description
symbol
required
string Symbol of the instrument.
exchange_segment
required
string Exchange & Segment.
NSE_EQ NSE_FNO NSE_CURRENCY BSE_EQ
MCX_COMM IDX_I
instrument_type
required
string Instrument type of the scrip . Refer here
EQUITY FUTCOM FUTCUR FUTIDX FUTSTK
INDEX
expiry_code
conditionally required
integer Expiry of the instruments in case of derivatives. Refer here
from_date
required
string Start date of the desired range
to_date
required
string End date of the desired range


Response Structure

{
    "open": [
                3978,3856,3925,3918,3877.85,3992.7,4033.95,4012,3910,3807,3840,3769.5,3731,3646,3749,
                3770,3827.9,3851,3815.3,3791
            ],
    "high": [
            3978,3925,3929,3923,3977,4043,4041.7,4012,3920,3851.55,3849.65,3809.4,3733.4,3729.8,
            3758,3808,3864,3882.5,3824.7,3831.8
            ],
    "low":  [
            3861,3856,3836.55,3857,3860.05,3962.3,3980,3910.5,3811,3771.1,3740.1,3722.2,3625.1,
            3646,3721.4,3736.4,3800.65,3816.05,3769,3756.15
            ],
    "close": [
            3879.85,3915.9,3859.9,3897.9,3968.15,4019.15,3990.6,3914.65,3826.55,3833.5,3771.35,
            3769.9,3649.25,3690.05,3736.25,3800.65,3856.2,3824.6,3814.9,3779
            ],
    "volume":[
            3937092,1906106,3203744,6684507,3348123,3442604,2389041,3102539,6176776,3112358,     
            3258414,3330501,5718297,3143862,2739393,2105169,1984212,1960538,2307366,1919149
            ],
    "start_Time": [
            1326220200,1326306600,1326393000,1326479400,1326565800,1326825000,1326911400,
            1326997800,1327084200,1327170600,1327429800,1327516200,1327689000,1327775400,
            1328034600,1328121000,1328207400,1328293800,1328380200,1328639400
            ]
}

Intraday Historical Data

Retrieve OHLC & Volume of 1 minute candle for desired instrument for current day. This data available for all segments including futures & options.

curl --request POST \
--url https://api.dhan.co/charts/intraday \
--header 'Content-Type: application/json' \
--header 'access-token: ' \
--data '{}'
dhan.intraday_minute_data(data)


Request Structure

{
"securityId": "11536",
"exchangeSegment": "NSE_EQ",
"instrument": "EQUITY"
}
dhan.intraday_minute_data(
    security_id='11536',
    exchange_segment='NSE_EQ',
    instrument_type='EQUITY'
)


Parameters

Field Field Type Description
securityId
required
string Exchange standard id for each scrip. Refer here
exchangeSegment
required
enum string Exchange & Segment
NSE_EQ NSE_FNO NSE_CURRENCY
BSE_EQ MCX_COMM IDX_I
instrument
required
enum string Instrument type of the scrip. Refer here
EQUITY FUTCOM FUTCUR FUTIDX FUTSTK INDEX OPTSTK OPTIDX

Field Field Type Description
security_id
required
string Exchange standard id for each scrip. Refer here
exchange_segment
required
string Exchange & Segment
NSE_EQ NSE_FNO NSE_CURRENCY
BSE_EQ MCX_COMM IDX_I
instrument_type
required
string Instrument type of the scrip. Refer here
EQUITY FUTCOM FUTCUR FUTIDX FUTSTK INDEX OPTSTK OPTIDX


Response Structure

{
    "open":   [
                    3750,3757.85,3751.2,3763.6,3759.55,3759,3761,3763,3767.25,3773.65,3766.1,3765.65,3767.1,3774.15,3775.9,3774.95,3773.2,3774.7,3772.25,3774.85,3767.2,3768,3768.95,3768.85,3769.3,3773.55,3773.95,3770,3770.25,3769.1,3765.3,3760.2,3762.45,3765.4,
                    3767.8,3768.8,3764.75,3763.2,3764.9,3764.9,3765.45,3764,3765,3764.5,3764.3,3764.85,3765,3762,3764.2,3762.05,3757.55,3757,3754.25,3755.95,3760.75,3760.05,3757.45,3760.2,3757.1,3758.1,3757.6,3758.8,3760.35,3761.05,3761.15,3760.4,3760.25,3760.85,
                    3758.6,3760,3760.6,3759.05,3757.55,3758.2,3759.6,3760,3759,3759.3,3759.9,3758.8,3758.6,3759.5,3759.55,3757.4,3756.9,3757,3756.4,3757.6,3757.6,3757.05,3756.4,3757.95,3756.45,3757.4,3759.95
                ],
    "high":   [
                    3750,3757.9,3763.6,3765.2,3763.15,3768,3764.75,3766.9,3775,3773.8,3766.9,3768.5,3777.7,3777,3777.95,3775.4,3775.95,3775,3775,3774.95,3770.8,3770,3769,3769.85,3773.6,3776,3774.8,3772.15,3773.55,3772.1,3765.3,3763.85,3768.95,3769,3769.85,3769,3766.55,
                    3765.8,3765.4,3766,3766,3765.4,3767.35,3765,3765,3767.15,3765.5,3764.25,3764.2,3762.05,3760,3757.1,3757.3,3761.95,3762,3761,3759.95,3760.2,3758.15,3759.4,3759,3761.5,3762.6,3762.1,3762.75,3761.65,3761.55,3762,3760,3762,3763.7,3762.85,3762.8,3762,3761.85,3764.95,
                    3765,3763.55,3764,3765,3763.35,3761.6,3764,3763.4,3762.8,3763.5,3763.8,3763,3760,3762.55,3761,3761,3761.15,3760.9,3763.4,3761.4,3761.4,3762,3762,3762,3761.95,3762,3762,3758.5,3758.65,3761.45,3760.95,3759.85,3758.55,3757.85,3756.5,3755.9,3756.3,3755.75,3757.4,
                    3759.6,3758.8,3758.9,3758.25,3758.2,3758.6,3760,3761.55,3760.6,3759.05,3758.4,3759.6,3760.9,3760.25,3763.55,3761,3760.95,3760,3759.65,3759.55,3759.55,3758.7,3757.05,3757.35,3756.95,3758.25,3758,3758.8,3758.4,3759.85,3758.9,3759.35,3759.95
                ],
    "low":      [
                    3750,3746.1,3749.25,3757,3758.65,3758.6,3758,3761,3767.25,3764,3762.15,3765.15,3767.1,3772.25,3772.55,3772.35,3773.2,3772,3771.6,3767.3,3767,3767.4,3766.1,3767.55,3769.3,3773,3770,3768.85,
                    3769,3765,3760,3760,3762.45,3765.25,3765,3761.15,3763.2,3762.4,3764.3,3764,3764,3763.5,3764.25,3762.65,3763.55,3764.15,3762,3761.05,3761.5,3756.7,3756.65,3752.75,3753,3755.5,3758.15,3757.55,
                    3755.3,3756,3756.55,3757.05,3757.15,3757.6,3760,3760,3760,3760,3759.55,3759.5,3758.05,3759.5,3761.05,3760.3,3760.05,3760.1,3759,3761.1,3762.85,3761.2,3759.55,3761.05,3760.95,3760,3760,
                    3761.85,3761.55,3761.4,3761.95,3759.1,3758.05,3758.55,3759.9,3758.35,3760,3759.8,3759.5,3760,3759.75,3759.65,3760,3760.15,3760.1,3760,3756.5,3757.9,3758.45,3758.8,3759,3758,3757,3753.6,
                    3754,3755.1,3755.05,3755.05,3755.6,3756.4,3757.5,3756.25,3756,3756.05,3756.1,3756.7,3759.45,3758.3,3757.15,3756.85,3757.05,3759,3758.4,3759,3758,3758.65,3758,3758.5,3758.55,3758,3756.5,3756.15,3756,3755.35,3755.9,3756.05,3756,3756,3756.2,3756.45,3756.7,3756.9
                ],
    "close":    [
                    3750,3751.25,3763.6,3760.85,3759,3761.3,3762.95,3766.9,3772.95,3766.35,3765.55,3767.3,3774.1,3774.95,3775,3773,3775,3772.15,3774.95,3767.95,3768.5,3769,3768.55,3769.85,3773.15,3774,3770,
                    3771.35,3769.4,3765,3760.35,3762.5,3765.95,3768.35,3767.3,3764.05,3763.2,3764.95,3764.95,3765.45,3764,3764.9,3764.6,3764.3,3764.95,3765,3762,3764.2,3762.1,3758,3757.1,3753.85,3755.95,3760.65,
                    3760.35,3757.55,3759.95,3757.1,3757.5,3757.65,3758.8,3761.5,3761.05,3761.15,3761.1,3760.25,3759.55,3760,3759.5,3761.1,3761.55,3761,3761,3760.2,3761.6,3763.35,3762.85,3761.55,3762.6,3763.35,3761,
                    3761.05,3763.65,3762.8,3761.55,3763.5,3762.35,3759.95,3759,3760.5,3760.3,3761,3760.9,3759.9,3761.3,3761.3,3760,3760.7,3760.05,3760.9,3761.95,3762,3758.35,3758.45,3758.45,3760.9,3759.9,3758.55,3757,
                    3754.9,3755.7,3755.1,3755.55,3755.75,3756.6,3758.85,3758.7,3756.25,3757.4,3757.65,3758.6,3760,3760.6,3759.05,3757.55,3756.85,3759.2,3759.5,3759,3759.65,3759.9,3758.8,3759.65,3759.5,3759.55,3758.85,3756.9,3756.9,3756.4,3756.6,3756.2,3757.5,3756.4,3757.9,3756.3,3757.35,3758.75,3756.9
                ],
    "volume":   [
                    166,53629,34592,20802,11262,17549,13239,11514,20125,12948,11761,8039,21998,9373,13171,9564,7287,6217,13260,5135,9676,5218,7365,3541,5547,13108,3659,4587,6499,12101,12766,12216,7619,8063,9830,6717,5976,
                    3907,3907,7276,6048,3581,6525,3270,2139,6391,3418,3290,3636,9730,3460,8773,4929,7772,6410,5050,3300,5275,1871,1951,1901,2265,3353,2221,2822,2668,2840,3109,1995,3522,6635,2914,2056,2781,3331,3383,3125,2235,6889,
                    3398,1671,2054,2856,1668,1431,2576,1791,4715,1751,4474,1973,2292,2325,1845,2906,2240,2032,2984,2262,2980,2796,3117,7508,1971,2004,3972,2181,2511,2316,5713,2506,1717,1967,2072,2304,2248,1861,1503,2358,1845,2329,
                    2407,2589,1542,1571,1707,2355,2696,3459,4160,2037,2036,1972,1491,1664,1846,2049,2149,3937,2603,1765,2005,2867,2141,2103,2279,2490,2111
                ],
    "start_Time":[
                    1328845020,1328845500,1328845560,1328845620,1328845680,1328845740,1328845800,1328845860,1328845920,1328845980,1328846040,1328846100,1328846160,1328846220,1328846280,1328846340,1328846400,1328846460,1328846520,1328846580,1328846640,1328846700,1328846760,1328846820,1328846880,1328846940,1328847000,1328847060,1328847120,1328847180,1328847240,1328847300,1328847360,1328847420,1328847480,1328847540,
                    1328847600,1328847660,1328847720,1328847780,1328847840,1328847900,1328847960,1328848020,1328848080,1328848140,1328848200,1328848260,1328848320,1328848380,1328848440,1328848500,1328848560,1328848620,1328848680,1328848740,1328848800,1328848860,1328848920,1328848980,1328849040,1328849100,1328849160,1328849220,1328849280,1328849340,1328849400,1328849460,1328849520,1328849580,1328849640,1328849700,
                    1328849760,1328849820,1328849880,1328849940,1328850000,1328850060,1328850120,1328850180,1328850240,1328850300,1328850360,1328850420,1328850480,1328850540,1328850600,1328850660,1328850720,1328850780,1328850840,1328850900,1328850960,1328851020,1328851080,1328851140,1328851200,1328851260,1328851320,1328851380,1328851440,1328851500,1328851560,1328851620,1328851680,1328851740,1328851800,1328851860,
                    1328851920,1328851980,1328852040,1328852100,1328852160,1328852220,1328852280,1328852340,1328852400,1328852460,1328852520,1328852580,1328852640,1328852700,1328852760,1328852820,1328852880,1328852940,1328853000,1328853060,1328853120,1328853180,1328853240,1328853300,1328853360,1328853420,1328853480,1328853540,1328853600,1328853660,1328853720,1328853780,1328853840,1328853900,1328853960,1328854020,1328854080,1328854140,1328854200,1328854260
                    ] 
}

Timestamp Convertor

The timestamp in response of the historical data APIs is custom epoch based from 1 Jan, 1980 Indian Standard Time. To convert these timestamp in regular date & time format, you can use this snippet or function.

function timeStamp_convertor(n)
{
    let offset1 = new Date().getTimezoneOffset();
    let istOffset = 330;
    n = n - (istOffset + offset1) * 60
    let a = ["1980", "01", "01", "05", "30", "00"]
    let time = new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5])
    time.setSeconds(n)
    let year = time.getFullYear();
    let month = ("0" + (time.getMonth() + 1)).slice(-2)
    let day = ("0" + (time.getDate())).slice(-2)
    let hours = ("0" + (time.getHours())).slice(-2)
    let min = ("0" + (time.getMinutes())).slice(-2)
    let sec = ("0" + (time.getSeconds())).slice(-2)
    let strTime = year + "-" + month + "-" + day + "-" + hours + "-" + min + "-" + sec;
    let strArry = strTime.split("-")
    return new Date(strArry[0], strArry[1] - 1, strArry[2], strArry[3], strArry[4], strArry[5]);
}
dhan.convert_to_date_time(epoch date)


Note: For description of enum values, refer Annexure