Files
OpenBB/openbb_platform
Danglewood aa8444304d [Feature] Allow Passing Custom FastAPI Instance To openbb-api From File (#7016)
* allow passing custom fastapi instance to openbb-api command line launcher

* lint

* more lint

* more lint

* fix reading list from command line args for --exclude

* fix category and subCategory not populating by default

* unused local

* toml and lock cleanup

* mock_widgets.json

* add --templates-path arg

* some path handling for templates

* add the middleware if it is just a plain FastAPI app being passed

* mock_widgets.json

* fix source as 'custom' when it is a provider

* clean that up

* only use results for properties if it exists

* else instead of elif

* lint

* update

* add a few default templates

* move order of events around or templates

* update mock_widgets.json for runButton

* remove extra slash at beginning of route

* the real default templates..

* undo black formatting to remove changes to router

* fix retail_prices choices

* fred cpi

* put cpi beside pce

* update readme

* generate columnsDefs for non-platform apps and routers if output is annotated

* update readme

* typo

* readme unused imports

* add a sentence to readme

* update mock_widgets.json

* fix indentation

* make runButton False and fix a missing definition in yfinance management

* duplicate comment

* read each Field in Query and Data for x-widget_config in json_schema_extra

* ruff

* parameter placeholder label as Title

* fix test
2025-02-10 17:14:02 +00:00
..

OpenBB Platform

Downloads LatestRelease

OpenBB is committed to build the future of investment research by focusing on an open source infrastructure accessible to everyone, everywhere.
OpenBBLogo
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.

Please find the complete documentation at docs.openbb.co.

Installation

The command below provides access to the core functionalities behind the OpenBB Platform.

pip install openbb

This will install the following data providers:

These packages are what will be installed when pip install openbb is run

Extension Name Description Installation Command Minimum Subscription Type Required
openbb-benzinga Benzinga data connector pip install openbb-benzinga Paid
openbb-bls Bureau of Labor Statistics data connector pip install openbb-bls Free
openbb-cftc Commodity Futures Trading Commission data connector pip install openbb-cftc Free
openbb-econdb EconDB data connector pip install openbb-econdb None
openbb-imf IMF data connector pip install openbb-imf None
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 None
openbb-tiingo Tiingo data connector pip install openbb-tiingo Free
openbb-tradingeconomics TradingEconomics data connector pip install openbb-tradingeconomics Paid
openbb-yfinance Yahoo Finance data connector pip install openbb-yfinance None

Community Providers

These packages are not installed when pip install openbb is run. They are available for installation separately or by running pip install openbb[all]

Extension Name Description Installation Command Minimum Subscription Type Required
openbb-alpha-vantage Alpha Vantage data connector pip install openbb-alpha-vantage Free
openbb-biztoc Biztoc News data connector pip install openbb-biztoc Free
openbb-cboe Cboe data connector pip install openbb-cboe None
openbb-ecb ECB data connector pip install openbb-ecb None
openbb-federal-reserve Federal Reserve data connector pip install openbb-federal-reserve None
openbb-finra FINRA data connector pip install openbb-finra None / Free
openbb-finviz Finviz data connector pip install openbb-finviz None
openbb-government-us US Government data connector pip install openbb-us-government None
openbb-nasdaq Nasdaq Data Link connector pip install openbb-nasdaq None / Free
openbb-seeking-alpha Seeking Alpha data connector pip install openbb-seeking-alpha None
openbb-stockgrid Stockgrid data connector pip install openbb-stockgrid None
openbb-tmx TMX data connector pip install openbb-tmx None
openbb-tradier Tradier data connector pip install openbb-tradier None
openbb-wsj Wall Street Journal data connector pip install openbb-wsj None
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:

  1. OpenBB Hub
  2. Runtime
  3. Local file

1. OpenBB Hub

Set your keys at OpenBB Hub and get your personal access token from https://my.openbb.co/app/platform/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

API documentation is found under "/docs", from the root of the server address, and is viewable in any browser supporting HTTP over localhost, such as Chrome.

Check openbb-core README for additional info.

Install for development

To develop the OpenBB Platform you need to have the following:

  • Git
  • Python 3.9 or higher
  • Virtual Environment with poetry installed
    • To install these packages activate your virtual environment and run pip install poetry toml

How to install the platform in editable mode?

  1. Activate your virtual environment
  2. Navigate into the openbb_platform folder
  3. Run python dev_install.py to install the packages in editable mode