Skip to content

Market Data & Research

Option Chains

# Standard chain (calls + puts at all strikes/expirations)
chain = client.option_chain.get_option_chain("AAPL")

# Depth of market / montage (per-exchange quotes)
montage = client.option_chain.get_montage("AAPL")

Service: GET /api/v1/market-data/chain/{symbol} and GET /api/v1/market-data/montage/{symbol}


Historical Charts

from datetime import date

chart = client.chart.get_chart(
    symbol="AAPL",
    start_date=date(2026, 1, 1),
    end_date=date(2026, 4, 1),
    bar_width="D",             # D=Daily, W=Weekly, M=Monthly
    extended_hours=False,
)

for bar in chart.bars:
    print(f"{bar.date}: O={bar.open} H={bar.high} L={bar.low} C={bar.close} V={bar.volume}")

print(f"Previous close: {chart.symbol_info.previous_close}")

Service: GET /api/v1/market-data/chart/{symbol}


Time & Sales (Historical)

New in v0.3

Historical trade execution data via REST. For real-time T&S, use the MDDS streaming guide.

result = client.time_and_sales.get_history(
    symbol="AAPL",
    max_rows=500,           # Server cap: 500
    low_price="190.00",     # Optional price filter
    high_price="200.00",
    low_size="100",         # Optional size filter
)

for trade in result.trades:
    print(f"{trade.time}: {trade.size} @ ${trade.price} on {trade.exchange} [{trade.condition}]")

Response fields (TradeExecution):

Field Type Description
time str Trade timestamp
price float Execution price
size int Trade size (shares)
exchange str Exchange code
condition str Trade condition code (F=regular, I=odd lot, T=extended hours)

Different Host

This endpoint uses fastquote.fidelity.com (not dpservice.fidelity.com), similar to option chains and charts.

Service: GET /api/v1/market-data/time-and-sales/{symbol}


Research

Earnings & Dividends

earnings = client.research.get_earnings(["AAPL", "MSFT"])
dividends = client.research.get_dividends(["AAPL", "KO"])

Service: GET /api/v1/research/earnings?symbols=AAPL,MSFT and GET /api/v1/research/dividends?symbols=AAPL,KO

results = client.search.autosuggest("AAPL")
for r in results.suggestions:
    print(f"{r.symbol}: {r.description}")

Service: GET /api/v1/research/search?q=AAPL

Option Analytics

analytics = client.option_analytics.analyze_position("AAPL", legs)

Service: POST /api/v1/research/analytics

Stock Screener

scan = client.screener.execute_scan(scan_definition)

Uses LiveVol SAML auth — not a simple REST call.

Service: POST /api/v1/research/screener


Short Insights

New in v0.3

See Portfolio & Accounts > Short Insights for full documentation.

insights = client.short_insights.get_insights("Z12345678", ["GME"])
ts = client.short_insights.get_time_series("GME", metric="shortInterest")

Research Notebooks

New in v0.3

CRUD operations for personal research notes attached to symbols.

# List all notes
notes = client.notebooks.list_notes()
for n in notes.notes:
    print(f"{n.note_id}: [{n.symbol}] {n.title}{n.note[:50]}...")

# Create a note
result = client.notebooks.create_note(
    "Strong Q1 results, raised guidance for FY26.",
    symbol="AAPL",
    title="Earnings Analysis",
)
print(f"Created: {result.note_id}")

# Update a note
client.notebooks.update_note("NOTE-001", "Updated analysis text",
    title="Updated Title", old_symbol="AAPL", new_symbol="AAPL")

# Delete a note
client.notebooks.delete_note("NOTE-001", symbol="AAPL")

Response fields (NoteDetail):

Field Type Description
note_id str Unique note identifier
symbol str Associated ticker symbol
title str Note title
note str Note body text
channel str Channel (ATN = Active Trader)
create_date str Creation date
update_date str Last update date

Service:

  • GET /api/v1/research/notebooks — List notes
  • POST /api/v1/research/notebooks — Create note
  • PUT /api/v1/research/notebooks/{note_id} — Update note
  • DELETE /api/v1/research/notebooks/{note_id} — Delete note

Available Markets & Holidays

# Available trading destinations for a symbol
markets = client.available_markets.get_available_markets("AAPL", ["Z12345678"])

# Market holiday calendar
holidays = client.holiday_calendar.get_holiday_calendar()

Service: GET /api/v1/market-data/markets/{symbol} (available markets)