Files
OpenBB/openbb_platform/providers/nasdaq
dlee-bq 7f04334398 - example.py: mark the base Example.scope field frozen so the (#7798)
Literal[api]/Literal[python] subclass overrides are covariant
  read-only narrowings. Subclass fields stay writable at runtime.
- method_definition.py, options_chains.py: pydantic 2.14 types
  FieldInfo.annotation as TypeForm[Any] | None, which ty rejects in
  Union[]/Annotated[] and where  is expected; bind it as Any.
  Use FieldInfo.get_default(call_default_factory=True) instead of
  calling the default_factory union directly.
- economy_views.py: read data/obbject_item without None defaults in the
  IMF shipping views. charting always sets obbject_item, and data is
  only popped when present and not None.- finra, jodi, eia: annotate @asynccontextmanager/@contextmanager
  functions with AsyncGenerator/Generator instead of the deprecated
  AsyncIterator/Iterator return types.
- charting: cast the darts forecast dataset to TimeSeries before
  indexing so .all_values resolves instead of hitting ndarray.
- fred, imf, nasdaq, sec, tmx: turn off invalid-attribute-override and
  invalid-mutable-override for models/** only, following the cboe
  precedent. Provider models extend the standard models by narrowing
  query params to Literals or widening fields to Optional, which these
  rules flag by design.

Co-authored-by: dlee-bq <325002271+dlee-bq@users.noreply.github.com>
2026-10-17 20:50:39 +00:00
..
2026-09-29 14:45:53 +00:00
2026-09-29 14:45:53 +00:00
2026-09-29 14:45:53 +00:00
2026-09-29 14:45:53 +00:00
2026-09-29 14:45:53 +00:00

OpenBB Nasdaq Provider

This extension integrates the Nasdaq data into the OpenBB Platform.

Every dataset is read from the public Nasdaq website API. No API key or account is required.

This extension is not affiliated with, endorsed by, or authorized by Nasdaq, Inc.

Installation

Install from PyPI:

pip install openbb-nasdaq

Or from the source tree:

uv pip install -e openbb_platform/providers/nasdaq

Then rebuild the Python interface:

import openbb

openbb.build()

Coverage

Nasdaq publishes far more than US equities. This extension covers the US market activity API, the Nasdaq Nordic and Baltic markets, and the Morningstar fundamentals Nasdaq co-brands for Nordic listings.

US markets

Command Description
equity.search The Nasdaq-traded symbol directory.
equity.screener Screen US listings by exchange, sector, region, market cap, and country.
equity.quote Delayed quotes with the sector, market cap, and dividend summary.
equity.profile Company profile, sector, industry, and business description.
equity.historical Daily OHLCV history.
equity.filings SEC filings, with links to the filed PDFs.
equity.fundamental.balance · income · cash · ratios Statements and ratios, annual or quarterly.
equity.fundamental.dividends · historical_eps Dividend history and earnings surprises.
equity.ownership.insider_trading · institutional · short_interest Ownership and short interest.
equity.estimates.price_target · consensus Analyst actions and the consensus overview.
equity.calendar.earnings · dividend · splits · ipo Corporate calendars.
economy.calendar The economic events calendar.
markets.status Session status with the next open and close times.
markets.movers Most active, advancers, decliners, and Nasdaq-100, by session.
markets.quotes One request for a mixed-asset watchlist.
markets.upcoming Event counts and a preview of the next session.
index.search · snapshots · historical The index universe, snapshots, and history at 1d or 1m.
etf.search · info · holdings · equity_exposure · historical Funds, their top-ten holdings, and the reverse exposure lookup.
crypto.historical Daily crypto pair history.
options.chains Full chains, narrowable to one expiration for full per-contract detail and greeks.
news.company Company news and press releases.

Nasdaq Nordic and Baltic

Command Description
nordic.screener 19 asset classes - shares, indexes, funds, ETPs, options, custom basket forwards, corporate/government/mortgage bonds, sustainable debt, FI derivatives, structured products, warrants, and certificates.
nordic.info Reference and trading metadata, plus the company profile.
nordic.fundamentals Morningstar statements, ratios, growth rates, and peers.
nordic.dividends Declared distributions with ex and payment dates.
nordic.historical Daily prices, with duration and yield for fixed income.
nordic.historical_trades Trade-by-trade history with the buying and selling members.
nordic.movers · derivatives_volume Most traded instruments and derivatives market volume.
nordic.knocked_out Leverage instruments whose barrier has been breached.
nordic.bond_yields Average Danish bond yields by segment and residual maturity.
nordic.index_factors Inflation index factors for index-linked mortgage bonds.
nordic.mortgage_rates Listed mortgage rates by lender and fixed-rate term.
nordic.trading_hours · holidays Session hours and the exchange holiday calendar.
nordic.symbol_choices The full instrument directory, for symbol pickers.
nordic.news Company announcements and exchange notices.

Notes on the data

Asset classes are resolved behind the scenes. Nasdaq keys most endpoints by an asset class (stocks, etf, index, mutualfunds, crypto). You pass a symbol; the extension resolves the class from the listing directory, falling back to a probe only for symbols the directory does not carry.

The same applies to Nasdaq Nordic, where instruments are keyed by an opaque orderbook ID and an asset class. Every listing is indexed once per process into a single directory of roughly 17,800 instruments, so the symbol alone resolves both. Nasdaq refuses pages under load by returning them empty rather than erroring, so a page that comes back empty when the listing claims more is retried - otherwise the directory would silently come up short.

etf.holdings covers mutual funds too. ETFs are served from the company holdings endpoint and mutual funds from the fund profile.

Options chains carry the full detail. Nasdaq's chain endpoint publishes only last, change, bid, ask, volume, and open interest, and its greeks endpoint is locked to the front expiration. The remaining fields - open, high, low, previous close, sizes, contract high and low, tick, market, and the greeks for every expiration - come from the per-strike contract endpoint, which is fanned out with bounded concurrency and retried on refusal.

Some Nordic data is only on the page. The trading hours and the exchange holiday calendar are published as server-rendered tables, not through an API, so they are read out of the markup.

Nordic fundamentals come from a PDF. The JSON sections Nasdaq exposes for Morningstar fundamentals return empty. The data is published only in the co-branded fact sheet, which this extension parses from glyph positions - the two-column layout interleaves the reading order, so plain text extraction is unusable.

Responses are cached on disk. A SQLite-backed HTTP cache holds responses with a TTL per endpoint family - sixty seconds for quotes and movers, up to a day for statements and filings - so a repeat options chain does not re-fetch thousands of unchanged contracts.

Standalone usage

The extension registers its own router, so installing openbb-nasdaq alone still exposes every dataset under /nasdaq. Each namespace registers its model-backed commands only when the OpenBB extension that normally owns those standard models is absent; when openbb-equity is installed, for example, the equity models are served through it instead and Nasdaq's own routes step aside.

The fetchers can also be used directly, independent of the Python and API interfaces:

from openbb_nasdaq import nasdaq_provider

nasdaq_provider.fetcher_dict

OpenBB Workspace

A bundled dashboard is served at /api/v1/nasdaq/apps.json, with the widget IDs resolved against whichever extensions are installed. Start the API and add it as a Workspace backend:

openbb-api

The app carries tabs for earnings, dividends, calendars, the economy, screeners, options, funds, indexes, and the Nordic markets. Clicking a symbol in a screener, mover, or snapshot table drives the linked widgets in that tab.

Development

uv pip install -e '.'
uv pip install --group dev
pytest tests --cov=openbb_nasdaq --cov-report=term-missing

The unit suite runs entirely offline - no cassettes and no network. Integration tests hit the live endpoints and are excluded by default:

pytest integration -m integration

OpenBB Documentation

OpenBB Platform documentation is available here.

OpenBB Workspace documentation is available here.