Skip to main content
Version: v5

Installation

OpenBB Python V5 is a set of separately published packages. openbb-core is the runtime: it contains the openbb import package, the REST API app, and the openbb-build command, but no data. Each provider package adds a data source and its own namespace on obb. The openbb distribution installs the runtime with every provider and interface package, or you can install the runtime with only the providers you want. Either way, the openbb import package is generated from whatever is installed.

Requirements​

Every V5 package declares requires-python = ">=3.10,<4". CI runs the core test suite on Python 3.10 through 3.14 on Linux, and on 3.10 and 3.14 on macOS and Windows.

Install into a virtual environment rather than the system Python. Any environment manager works; the commands below use the standard library venv module.

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip

On Windows, activate with .venv\Scripts\activate.

For a graphical installer that manages the environment for you, see ODP Desktop.

Install from PyPI​

pip install openbb installs V5:

pip install openbb

The openbb package contains no code of its own. It installs openbb-core with its flask and pandas extras, every provider package in the package reference, openbb-news, openbb-charting with PyWry, openbb-cli, openbb-platform-api, openbb-mcp-server, and openbb-devtools. It does not install openbb-econometrics, openbb-quantitative, or openbb-technical; add those separately:

pip install openbb-econometrics openbb-quantitative openbb-technical

The routers extra, pip install "openbb[routers]", installs those three together with the shared asset-class routers such as openbb-equity and openbb-economy. This documentation does not cover the shared routers, and several providers leave commands to them when they are installed, so the provider namespaces lose commands that the reference lists. Migrating from V4 explains the interaction.

Install individual packages​

For a smaller environment, install openbb-core with only the provider packages you need:

pip install openbb-core openbb-cboe openbb-imf

Every provider package depends on openbb-core[pandas], so installing a provider on its own also pulls in the runtime and pandas. Add or remove providers later with pip; the Python interface picks up the change on the next import.

Check the installation with a keyless provider:

from openbb import obb

quote = obb.cboe.equity.quote(symbol="AAPL", provider="cboe")
quote.to_dataframe()

Package reference​

PackageAdds
openbb-coreRuntime, the openbb import package, openbb_core.api.rest_api:app, and openbb-build
openbb-blsobb.bls
openbb-cboeobb.cboe
openbb-cftcobb.cftc
openbb-deribitobb.deribit
openbb-ecbobb.ecb
openbb-us-eiaobb.eia
openbb-famafrenchobb.famafrench
openbb-federal-reserveobb.federal_reserve
openbb-finraobb.finra
openbb-fredobb.fred
openbb-government-usobb.uscongress, obb.ustreasury, obb.usda
openbb-imfobb.imf
openbb-jodiobb.jodi
openbb-nasdaqobb.nasdaq
openbb-oecdobb.oecd
openbb-secobb.sec
openbb-tmxobb.tmx
openbb-newsobb.news
openbb-econometricsobb.econometrics
openbb-quantitativeobb.quantitative
openbb-technicalobb.technical
openbb-chartingThe charting accessor on command results; the pywry extra adds native chart windows
openbb-platform-apiThe openbb-api launcher for the REST API and OpenBB Workspace
openbb-mcp-serverThe openbb-mcp MCP server; the cli extra adds the openbb-cli dispatcher tools
openbb-cliThe openbb command line interface

Some providers need an API key before their commands return data. See Credentials for where to put them, and Providers for what each provider covers. The CLI has its own installation guide.

Upgrading from V4​

Install V5 into a new virtual environment instead of upgrading a V4 one. The V4 releases of providers that V5 removed, such as openbb-fmp and openbb-yfinance, require openbb-core 1.x and cannot be installed next to V5. Migrating from V4 lists the other changes to expect.

Build the Python interface​

from openbb import obb is backed by modules generated inside the installed openbb package. On import, the runtime compares the installed extensions with the ones recorded at the last build and rebuilds when they differ, printing Extensions to add or Extensions to remove followed by Building....

To build ahead of time, for example in a container image or CI job, run:

openbb-build

openbb-build imports openbb in a subprocess, and calls openbb.build() directly if that import did not rebuild. Set OPENBB_AUTO_BUILD=false to turn off the rebuild on import. Packaging and static assets describes what the build generates.

Install from source​

The source install puts every package from the repository into the active environment in editable mode. V5 is on the repository's default branch, develop. The install needs Git, Python 3.10 or newer, and uv. dev_install.py uses the uv module of the running interpreter when it is installed, and the uv executable on PATH otherwise.

Five providers, openbb-bls, openbb-ecb, openbb-imf, openbb-oecd, and openbb-us-eia, generate metadata files from their upstream APIs when they are built, and the generators import openbb-core. Those files are not tracked in Git, so on a fresh clone openbb-core has to be installed first and uv's build isolation turned off. The EIA catalog also needs an EIA API key in EIA_API_KEY.

git clone https://github.com/OpenBB-finance/OpenBB.git
cd OpenBB
python3 -m venv .venv
source .venv/bin/activate
python -m pip install uv
python -m uv pip install "hatchling>=1.25" "requests>=2.31" editables
python -m uv pip install --editable "openbb_platform/core[pandas]"
export EIA_API_KEY="YOUR_EIA_KEY"
UV_NO_BUILD_ISOLATION=true python openbb_platform/dev_install.py

The first build downloads the provider metadata and can take a long time. Later builds reuse the generated files.

The script lists the tracked pyproject.toml files under openbb_platform/core, openbb_platform/extensions, openbb_platform/obbject_extensions, openbb_platform/providers, and cli, then runs uv pip install against the interpreter that launched it with each package as --editable, including all optional extras and each package's dev dependency group. It finishes by building the openbb package, so no separate openbb-build is needed. Because packages are found with git ls-files, a new package directory is picked up only once its pyproject.toml is tracked by Git.

Router extensions under openbb_platform/extensions, other than openbb-news, are skipped by default. Without them, the environment contains openbb-core, openbb-news, every provider, openbb-charting, openbb-platform-api, openbb-mcp-server, openbb-devtools, and openbb-cli.

The skipped routers include openbb-econometrics, openbb-quantitative, and openbb-technical. Install those three as editable packages from the same checkout:

python -m pip install -e openbb_platform/extensions/econometrics -e openbb_platform/extensions/quantitative -e openbb_platform/extensions/technical
openbb-build

dev_install.py --routers installs every router instead, including the shared asset-class routers such as openbb-equity and openbb-economy. Those are not covered by this documentation, and several providers leave commands to them when they are installed, so the provider namespaces lose commands that the reference lists. Migrating from V4 explains the interaction.

Next steps​

Start with the User Quickstart to make your first queries, or the Developer Quickstart to build an extension. To serve the installed commands over HTTP or MCP, see the REST API and MCP server quickstarts.