* remove auto examples and split python from api * add missing exampels * rebuild * query params focstring * black * add scoped examples * group model imports in the router * unblock api * fix * classify examples * fix package identation * black sig * fix indentation without linter * fix python examples * remove doc * pylint * again * add model validators * commodity, crypto, currency * filter examples * fix python examples * fix filter and build * undo toml change * add comment * oop * comment * typing * lint * Update router.py * Update econometrics_router.py * fix to_python * to_python * to_python * black * fix multiple line field descriptions * remove circular import * add missing import * pass indent as object attr * doc * doc * this looks better * forgot this * fix: new examples adapted * fix prev commit * avoid future problems * Update ownership_router.py * rebuild + remove todo * make description mandatory for python examples * simple indent * append_examples func works for both website and docstring * Add example unit tests * Edit example unit tests * fix validator * this works * fix to_python * fix mandatory docstrings * typing * shorter error msgs * economy router * fix more examples * more examples * more examples * more examples * field desc * minor fix * fix etf examples * handling types better * lint * rename method * rename var * docstring + move method * typing * prompt * rebuild * prompt fix in PythonEx * fix examples without model * example mock data * add get_field_type func to get field data type * panel data * mock data * fix * fix * docstring * ohlcv * pylint * quantitaive router * simplify mock data * fix remaining quantitative routers * a bit more flexibility for examples * lint * mock dat from sample * docstring * assertion * bugfix * minor fix * technical * fix integration tests * fix docstring * econometrics examples * econometrics examples * remove warning * add technical examples * fix bad examples * fix more examples * update test rules * remoce old pydantic referenc * fix bug in treasury prices * fix quantitative examples * discovery router * equity shorts * equity shorts * fix currency pairs * fix sec_router example * fix panel data to support all funcs * black * more examples fixes * simplify test * rebuild * test doc * add provider to some ex * ^ * last * add provider * rebuild * working examples * noqa * pylint * pylint * clean * minor fix * fix test * lint * ruff --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
OpenBB Platform
| OpenBB is committed to build the future of investment research by focusing on an open source infrastructure accessible to everyone, everywhere. |
|---|
![]() |
| Check our website at openbb.co |
Overview
The OpenBB Platform provides a convenient way to access raw financial data from multiple data providers. The package comes with a ready to use REST API - this allows developers from any language to easily create applications on top of OpenBB Platform.
Installation
The command below provides access to the core functionalities behind the OpenBB Platform.
pip install openbb
This will install the following data providers:
| Extension Name | Description | Installation Command | Minimum Subscription Type Required |
|---|---|---|---|
| openbb-benzinga | Benzinga data connector | pip install openbb-benzinga | Paid |
| openbb-biztoc | Biztoc News data connector | pip install openbb-biztoc | Free |
| openbb-ecb | ECB data connector | pip install openbb-ecb | Free |
| openbb-finra | FINRA data connector | pip install openbb-finra | Free |
| openbb-finviz | Finviz data connector | pip install openbb-finra | Free |
| openbb-fmp | FMP data connector | pip install openbb-fmp | Free |
| openbb-fred | FRED data connector | pip install openbb-fred | Free |
| openbb-intrinio | Intrinio data connector | pip install openbb-intrinio | Paid |
| openbb-oecd | OECD data connector | pip install openbb-oecd | Free |
| openbb-polygon | Polygon data connector | pip install openbb-polygon | Free |
| openbb-sec | SEC data connector | pip install openbb-sec | Free |
| openbb-tiingo | Tiingo data connector | pip install openbb-tiingo | Free |
| openbb-tradingeconomics | TradingEconomics data connector | pip install openbb-tradingeconomics | Paid |
To install extensions that expand the core functionalities specify the extension name or use all to install all.
# Install a single extension, e.g. openbb-charting and yahoo finance
pip install openbb[charting]
pip install openbb-yfinance
Alternatively, you can install all extensions at once.
pip install openbb[all]
Note: These instruction are specific to v4. For installation instructions and documentation for v3 go to our website.
Python
>>> from openbb import obb
>>> output = obb.equity.price.historical("AAPL")
>>> df = output.to_dataframe()
>>> df.head()
open high low ... change_percent label change_over_time
date ...
2022-09-19 149.31 154.56 149.10 ... 3.46000 September 19, 22 0.034600
2022-09-20 153.40 158.08 153.08 ... 2.28000 September 20, 22 0.022800
2022-09-21 157.34 158.74 153.60 ... -2.30000 September 21, 22 -0.023000
2022-09-22 152.38 154.47 150.91 ... 0.23625 September 22, 22 0.002363
2022-09-23 151.19 151.47 148.56 ... -0.50268 September 23, 22 -0.005027
[5 rows x 12 columns]
API keys
To fully leverage the OpenBB Platform you need to get some API keys to connect with data providers. Here are the 3 options on where to set them:
- OpenBB Hub
- Runtime
- Local file
1. OpenBB Hub
Set your keys at OpenBB Hub and get your personal access token from https://my.openbb.co/app/sdk/pat to connect with your account.
>>> from openbb import obb
>>> openbb.account.login(pat="OPENBB_PAT")
>>> # Persist changes in OpenBB Hub
>>> obb.account.save()
2. Runtime
>>> from openbb import obb
>>> obb.user.credentials.fmp_api_key = "REPLACE_ME"
>>> obb.user.credentials.polygon_api_key = "REPLACE_ME"
>>> # Persist changes in ~/.openbb_platform/user_settings.json
>>> obb.account.save()
3. Local file
You can specify the keys directly in the ~/.openbb_platform/user_settings.json file.
Populate this file with the following template and replace the values with your keys:
{
"credentials": {
"fmp_api_key": "REPLACE_ME",
"polygon_api_key": "REPLACE_ME",
"benzinga_api_key": "REPLACE_ME",
"fred_api_key": "REPLACE_ME"
}
}
REST API
The OpenBB Platform comes with a ready to use REST API built with FastAPI. Start the application using this command:
uvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload
Check openbb-core README for additional info.
Install for development
To develop the OpenBB Platform you need to have the following:
- Git
- Python 3.8 or higher
- Virtual Environment with
poetryandtomlpackages installed- To install these packages activate your virtual environment and run
pip install poetry toml
- To install these packages activate your virtual environment and run
How to install the platform in editable mode?
- Activate your virtual environment
- Navigate into the
openbb_platformfolder - Run
python dev_install.pyto install the packages in editable mode
