openapi: 3.1.0
info:
title: Theta Data v3 At-Time Calendar API
description: Real-time and historic stock, options, and index data!
version: 3.0.0
x-java-package: net.thetadata.generated
servers:
- url: http://127.0.0.1:25503/v3
description: dev
security: []
tags:
- name: Calendar
paths:
/calendar/today:
x-concurrent-limit-ttl-ms: '17'
x-min-subscription: free
get:
summary: Today
operationId: calendar_open_today
x-codeSamples:
- lang: Python
label: pandas
source: 'from thetadata import ThetaClient
client = ThetaClient(dataframe_type=''pandas'')
df = client.calendar_open_today()
'
- lang: Python
label: polars
source: 'from thetadata import ThetaClient
client = ThetaClient(dataframe_type=''polars'')
df = client.calendar_open_today()
'
tags:
- Calendar
description: '- Retrieves current day equity market schedule
- *On days when the market closes early at 1:00 PM ET; eligible options will trade until 1:15 PM.
- **Some NYSE exchanges will continue late trading until 5:00 PM ET on early close days.
'
x-sample-urls:
- url: http://127.0.0.1:25503/v3/calendar/today
description: Current day equity market schedule
- url: http://127.0.0.1:25503/v3/calendar/today?format=html
description: Click to open in browser (HTML)
parameters:
- $ref: '#/components/parameters/format'
responses:
'200':
description: Returns current day schedule
content:
text/csv:
schema:
type: array
items: &id001
type: object
properties:
type:
type: string
description: The schedule type (open, full_close, early_close, weekend).
open:
type: string
description: Market open time in HH:mm:ss format.
close:
type: string
description: Market close time in HH:mm:ss format.
example: "type,open,close\r\nopen,09:30:00,16:00:00\r\n"
application/json:
schema: &id002
type: array
items: *id001
example: "{\n \"response\": [\n {\"type\":\"open\",\"open\":\"09:30:00\",\"close\":\"16:00:00\"}\n ]\n}\n"
application/x-ndjson:
schema: *id002
example: '{"type":"open","open":"09:30:00","close":"16:00:00"}'
python/pandas:
schema: *id002
example: 'type open close
0 open 09:30:00 16:00:00
'
python/polars:
schema: *id002
example: 'shape: (1, 3)
┌──────┬──────────┬──────────┐
│ type ┆ open ┆ close │
│ --- ┆ --- ┆ --- │
│ str ┆ str ┆ str │
╞══════╪══════════╪══════════╡
│ open ┆ 09:30:00 ┆ 16:00:00 │
└──────┴──────────┴──────────┘
'
/calendar/on_date:
x-concurrent-limit-ttl-ms: '17'
x-min-subscription: value
get:
summary: On Date
operationId: calendar_on_date
x-codeSamples:
- lang: Python
label: pandas
source: 'from thetadata import ThetaClient
from datetime import date
client = ThetaClient(dataframe_type=''pandas'')
df = client.calendar_on_date(date=date(2025, 12, 25))
'
- lang: Python
label: polars
source: 'from thetadata import ThetaClient
from datetime import date
client = ThetaClient(dataframe_type=''polars'')
df = client.calendar_on_date(date=date(2025, 12, 25))
'
tags:
- Calendar
description: '- Retrieves equity market schedule for a given date
- Note: Holiday data is available 01/01/2012 through the end of the calendar year that immediately follows the current year
- *On days when the market closes early at 1:00 PM ET; eligible options will trade until 1:15 PM.
- **Some NYSE exchanges will continue late trading until 5:00 PM ET on early close days.
'
x-sample-urls:
- url: http://127.0.0.1:25503/v3/calendar/on_date?date=20251225
description: Returns equity market schedule for the requested date
- url: http://127.0.0.1:25503/v3/calendar/on_date?date=20251225&format=html
description: Click to open in browser (HTML)
parameters:
- $ref: '#/components/parameters/date'
- $ref: '#/components/parameters/format'
responses:
'200':
description: Returns requested day schedule
content:
text/csv:
schema:
type: array
items: &id003
type: object
properties:
type:
type: string
description: The schedule type (open, full_close, early_close, weekend).
open:
type: string
description: Market open time in HH:mm:ss format.
close:
type: string
description: Market close time in HH:mm:ss format.
example: "type,open,close\r\nfull_close,,\r\n"
application/json:
schema: &id004
type: array
items: *id003
example: "{\n \"response\": [\n {\"type\":\"full_close\",\"open\":null,\"close\":null}\n ]\n}\n"
application/x-ndjson:
schema: *id004
example: '{"type":"early_close","open":null,"close":null}'
python/pandas:
schema: *id004
example: 'type open close
0 full_close None None
'
python/polars:
schema: *id004
example: 'shape: (1, 3)
┌────────────┬──────┬───────┐
│ type ┆ open ┆ close │
│ --- ┆ --- ┆ --- │
│ str ┆ null ┆ null │
╞════════════╪══════╪═══════╡
│ full_close ┆ null ┆ null │
└────────────┴──────┴───────┘
'
/calendar/year_holidays:
x-concurrent-limit-ttl-ms: '15'
x-min-subscription: value
get:
summary: Year Holidays
operationId: calendar_year
x-codeSamples:
- lang: Python
label: pandas
source: 'from thetadata import ThetaClient
client = ThetaClient(dataframe_type=''pandas'')
df = client.calendar_year(year=''2024'')
'
- lang: Python
label: polars
source: 'from thetadata import ThetaClient
client = ThetaClient(dataframe_type=''polars'')
df = client.calendar_year(year=''2024'')
'
tags:
- Calendar
description: '- Retrieves equity market holidays for a given year
- Note: Holiday data is available 01/01/2012 through the end of the calendar year that immediately follows the current year
- *On days when the market closes early at 1:00 PM ET; eligible options will trade until 1:15 PM.
- **Some NYSE exchanges will continue late trading until 5:00 PM ET on early close days.
'
x-sample-urls:
- url: http://127.0.0.1:25503/v3/calendar/year_holidays?year=2024
description: Returns equity market holidays for the requested year
- url: http://127.0.0.1:25503/v3/calendar/year_holidays?year=2024&format=html
description: Click to open in browser (HTML)
parameters:
- $ref: '#/components/parameters/year'
- $ref: '#/components/parameters/format'
responses:
'200':
description: Returns holidays for a given year
content:
text/csv:
schema:
type: array
items: &id005
type: object
properties:
date:
type: string
description: The date of a closure
type:
type: string
description: The closure type (full_close, early_close).
open:
type: string
description: Market open time in HH:mm:ss format.
close:
type: string
description: Market close time in HH:mm:ss format.
example: "date,type,open,close\r\n2024-12-24,early_close,09:30:00,13:00:00\r\n\r\n2024-12-25,full_close,,\r\n"
application/json:
schema: &id006
type: array
items: *id005
example: "{\n \"response\": [\n {\"date\":\"2024-12-24\",\"type\":\"early_close\",\"open\":\"09:30:00\",\"close\":\"13:00:00\"},\n {\"date\":\"2024-12-25\",\"type\":\"full_close\",\"open\":null,\"close\":null}\n ]\n}\n"
application/x-ndjson:
schema: *id006
example: '{"date":"2024-12-24","type":"full_close","open":null,"close":null}
{"date":"2024-12-24","type":"early_close","open":"09:30:00","close":"13:00:00"}'
python/pandas:
schema: *id006
example: 'date type open close
0 2026-01-01 full_close NaN NaN
1 2026-01-19 full_close NaN NaN
2 2026-02-16 full_close NaN NaN
3 2026-04-03 full_close NaN NaN
4 2026-05-25 full_close NaN NaN
5 2026-06-19 full_close NaN NaN
6 2026-07-03 full_close NaN NaN
7 2026-09-07 full_close NaN NaN
8 2026-11-26 full_close NaN NaN
9 2026-11-27 early_close 09:30:00 13:00:00
10 2026-12-24 early_close 09:30:00 13:00:00
11 2026-12-25 full_close NaN NaN
'
python/polars:
schema: *id006
example: 'shape: (12, 4)
┌────────────┬─────────────┬──────────┬──────────┐
│ date ┆ type ┆ open ┆ close │
│ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ str ┆ str │
╞════════════╪═════════════╪══════════╪══════════╡
│ 2026-01-01 ┆ full_close ┆ null ┆ null │
│ 2026-01-19 ┆ full_close ┆ null ┆ null │
│ 2026-02-16 ┆ full_close ┆ null ┆ null │
│ 2026-04-03 ┆ full_close ┆ null ┆ null │
│ 2026-05-25 ┆ full_close ┆ null ┆ null │
│ … ┆ … ┆ … ┆ … │
│ 2026-09-07 ┆ full_close ┆ null ┆ null │
│ 2026-11-26 ┆ full_close ┆ null ┆ null │
│ 2026-11-27 ┆ early_close ┆ 09:30:00 ┆ 13:00:00 │
│ 2026-12-24 ┆ early_close ┆ 09:30:00 ┆ 13:00:00 │
│ 2026-12-25 ┆ full_close ┆ null ┆ null │
└────────────┴─────────────┴──────────┴──────────┘
'
components:
parameters:
date:
name: date
in: query
description: The date to fetch data for.
required: true
schema:
type: string
format: date
year:
name: year
in: query
description: The year to fetch data for.
required: true
schema:
type: string
format:
name: format
in: query
description: The format of the data when returned to the user.
required: false
schema:
type: string
enum:
- csv
- json
- ndjson
- html
default: csv