Metadata-Version: 2.5
Name: openbb-nasdaq
Version: 2.0.0
Summary: Nasdaq provider extension for OpenBB Platform.
Project-URL: Homepage, https://openbb.co
Project-URL: Repository, https://github.com/OpenBB-finance/OpenBB
Author-email: OpenBB Team <hello@openbb.co>
License: Apache-2.0
Requires-Python: <4,>=3.10
Requires-Dist: aiohttp-client-cache>=0.11
Requires-Dist: aiosqlite>=0.20
Requires-Dist: async-lru>=2.0.5
Requires-Dist: openbb-core[pandas]>=2.0.0
Requires-Dist: pdfplumber>=0.11
Requires-Dist: python-dateutil>=2.8
Requires-Dist: random-user-agent>=1.0.1
Description-Content-Type: text/markdown

# OpenBB Nasdaq Provider

This extension integrates the [Nasdaq](https://www.nasdaq.com) 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:

```bash
pip install openbb-nasdaq
```

Or from the source tree:

```bash
uv pip install -e openbb_platform/providers/nasdaq
```

Then rebuild the Python interface:

```python
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:

```python
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:

```bash
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

```bash
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:

```bash
pytest integration -m integration
```

## OpenBB Documentation

OpenBB Platform documentation is available [here](https://docs.openbb.co/platform).

OpenBB Workspace documentation is available [here](https://docs.openbb.co/workspace).
