Skip to main content

OpenBB Workspace Integration API

The /openbb routes serve the widgets of OpenBB Workspace from your own instance. Each route calls the Fonrex route it adapts and reshapes the answer into one of the three formats OpenBB expects:

  • metric: a list of tiles [{"label": "...", "value": ..., "delta": ...}]
  • chart: a Plotly figure {"data": [...], "layout": {...}}
  • table: a flat list of rows [{...}, {...}] for AgGrid

Setup is described in the OpenBB Workspace guide.

Authentication​

RouteKey
GET /widgets.json, GET /apps.jsonNone — OpenBB fetches them before a key is configured
GET /openbb/...Required, in the X-API-KEY header (or Authorization: Bearer)

A read-only key (FONREX_READ_ONLY_API_KEYS) is enough for every widget. CORS accepts the origins of OPENBB_ALLOWED_ORIGIN (https://pro.openbb.co by default).

Discovery files​

  • GET /widgets.json — the 19 widgets: for each one, its name, category, type, route and parameters (integrations/openbb/widgets.json).
  • GET /apps.json — two pre-assembled dashboards, Fonrex — EU Markets and Fonrex — Screener & Macro (integrations/openbb/apps.json).

Routes​

WidgetTypeRouteAdapts
fonrex_quotemetricGET /openbb/quote/{ticker}/quote/{ticker}
fonrex_macro_ratesmetricGET /openbb/macro/rates/macro/rates
fonrex_eodchartGET /openbb/eod/{ticker} (period 1y by default)/eod/{ticker}
fonrex_historychartGET /openbb/ticker/{symbol}/history/ticker/{symbol}/history
fonrex_technicalchartGET /openbb/technical/{ticker}/technical/{ticker}
fonrex_technical_multichartGET /openbb/technical/{ticker}/multi/technical/{ticker}/multi
fonrex_technical_chartchartGET /openbb/technical/{ticker}/chart/technical/{ticker}/chart
fonrex_fundamentalstableGET /openbb/fundamental/fundamental
fonrex_fundamentals_deeptableGET /openbb/fundamental/deep/fundamental/deep
fonrex_quotes_batchtableGET /openbb/quotes/quotes
fonrex_screenertableGET /openbb/technical/screen/technical/screen
fonrex_newstableGET /openbb/news/{ticker}/news/{ticker}
fonrex_news_feedtableGET /openbb/news/feed/news/feed
fonrex_dcftableGET /openbb/dcf/{ticker}/dcf/{ticker}
fonrex_dcf_comparetableGET /openbb/dcf/{ticker}/compare/dcf/{ticker}/compare
fonrex_dcf_sensitivitytableGET /openbb/dcf/{ticker}/sensitivity/dcf/{ticker}/sensitivity
fonrex_insider_transactionstableGET /openbb/insider-transactions/{ticker}/insider-transactions/{ticker}
fonrex_etf_detailstableGET /openbb/etf/{isin}/details/etf/{isin}/details
fonrex_index_constituentstableGET /openbb/index/{index_name}/constituents/index/{index_name}/constituents

Each route takes the parameters of the route it adapts (see the corresponding API reference page), with a few differences: /openbb/fundamental has no fmt; /openbb/technical/{ticker}/multi has no include_ohlcv and defaults to sma_20,ema_50,rsi_14; /openbb/technical/{ticker}/chart defaults to sma_20,rsi_14; /openbb/news/feed returns 20 articles by default.

GET /openbb/quote/{ticker} never starts a realtime stream: the quote is real time once the ticker is subscribed with POST /realtime/subscribe, and the delayed Yahoo Finance price otherwise.

Example​

curl -s -H "X-API-KEY: $FONREX_API_KEY" "http://localhost:5000/openbb/quote/AIR.PA"
[
{ "label": "AIR.PA Price", "value": 154.6, "delta": 0.13 },
{ "label": "Change", "value": "+0.20", "delta": "+0.13%" },
{ "label": "Previous Close", "value": 154.4, "delta": null },
{ "label": "Day High", "value": 155.48, "delta": null },
{ "label": "Day Low", "value": 155.1, "delta": null },
{ "label": "Volume", "value": 18250, "delta": null }
]

This example is a delayed Yahoo Finance quote. Tiles without a value (no previous close, no volume…) are left out.