For the complete documentation index, see llms.txt. This page is also available as Markdown.

Timings

Get market trading timings for a specific date across all exchanges.

Endpoint URL

Local Host   :  POST http://127.0.0.1:5000/api/v1/market/timings
Ngrok Domain :  POST https://<your-ngrok-domain>.ngrok-free.app/api/v1/market/timings
Custom Domain:  POST https://<your-custom-domain>/api/v1/market/timings

Sample API Request

{
  "apikey": "<your_app_apikey>",
  "date": "2025-12-19"
}

Sample cURL Request

curl -X POST http://127.0.0.1:5000/api/v1/market/timings \
  -H 'Content-Type: application/json' \
  -d '{
  "apikey": "<your_app_apikey>",
  "date": "2025-12-19"
}'

Sample API Response

Request Body

Parameter
Description
Mandatory/Optional
Default Value

apikey

Your OpenAlgo API key

Mandatory

-

date

Date in YYYY-MM-DD format

Mandatory

-

MarketTimingsSchema declares only these two fields and both are required. Any other field, including an exchange filter, returns HTTP 400: the response always covers every tracked exchange.

Response Fields

Field
Type
Description

status

string

"success" or "error"

data

array

Array of timing objects

Timing Object Fields

Field
Type
Description

exchange

string

Exchange code

start_time

number

Market open time (epoch milliseconds)

end_time

number

Market close time (epoch milliseconds)

Default Trading Hours (IST)

These are the shipped defaults. An operator can override any of them from the admin market-timings page, and the API then returns the stored values instead, so read the response rather than assuming this table.

Exchange
Open
Close

NSE

09:15

15:30

BSE

09:15

15:30

NFO

09:15

15:40

BFO

09:15

15:40

CDS

09:00

17:00

BCD

09:00

17:00

MCX

09:00

23:55

NCO

09:00

23:55

CRYPTO

00:00

23:59:59

NFO and BFO close at 15:40, not 15:30. SEBI's Closing Auction Session applies to the equity cash segment only, so the derivatives segment keeps trading past the cash close and the F&O window is deliberately wider.

Notes

  • Date must be between 2020-01-01 and 2050-12-31

  • Times are returned as epoch milliseconds

  • On weekends the response is not empty: it contains the CRYPTO session only, since crypto trades 24/7. A full trading holiday with every exchange closed does return an empty array.

  • For special sessions (e.g., Muhurat trading), returns only the special session timings

  • On a SETTLEMENT_HOLIDAY the normal timings for all exchanges are returned, because trading is open

  • MCX and NCO have extended trading hours into the night

Converting Epoch to Readable Time

JavaScript:

Python:


Back to: API Documentation

Last updated

Was this helpful?