---
title: "OpenBB unified the workspace. Nobody unified the keys."
description: "OpenBB gives you one command shape for every kind of financial data. It does not give you the accounts. Covering the analysis we actually do took seven separate signups, so we wrote a provider that makes it one: 141 OpenBB commands from a single key."
slug: openbb-sugra
status: published
published_at: 2026-07-11
author: Arman Obosyan
author_url: https://sugra.systems/about
section: general
primary_keyword: openbb data provider one api key
hero_image: /blog/images/posts/openbb-sugra-hero.jpg
hero_alt: "OpenBB unified the workspace. Nobody unified the keys. - openbb-sugra"
og_image: /blog/images/posts/openbb-sugra-hero.jpg
tags:
  - openbb
  - integration
  - python
  - api
---

Want a company's balance sheet in code? You need an API key. Inflation for the same script? A different key. How futures traders are positioned? A third one, from a third company, with a third rate limit and a third invoice.

That is the part nobody warns you about when you start pulling financial data. The code is easy. The accounts are the work.

[OpenBB](https://github.com/OpenBB-finance/OpenBB) unified the workspace, and did it beautifully. It is free, open-source software that does what the expensive trading-desk terminals do: one consistent command for every kind of financial data, in Python, scriptable. `obb.equity.price.historical("AAPL")` gets prices. `obb.economy.cpi()` gets inflation. Whatever supplied the numbers, the thing that comes back has the same shape, so you write your analysis once and change the data underneath without touching your code.

Nobody unified the keys.

That is not a complaint about OpenBB, it is the shape of the problem. A workspace can normalise how you ask. It cannot normalise who you have to ask.

Run your first command after installing and you get an error: no provider configured. Because OpenBB does not own data. It ships adapters, every adapter points at somebody else's API, and that somebody wants an account. Configure one, and the next command needs a different one.

We hit this ourselves, because we use OpenBB in our own work. Counting the providers we needed to cover the analysis we actually do, the answer was seven separate accounts.

So we wrote an extension that makes it one. `openbb-sugra` serves **141 OpenBB commands** across fourteen command groups from a single Sugra key.

## Count it yourself

These are not claims about our data. They are arithmetic over the OpenBB source tree, reproducible from the public repository.

Take the models our provider registers, then ask which first-party providers offer those same models:

```
standard models our provider covers               140
first-party providers you would touch instead      17
of those, providers that require their own key      7
```

(140 models, 141 commands, because one model serves two commands.)

The seven are `fmp`, `fred`, `bls`, `nasdaq`, `econdb`, `eia` and `cftc`, and they split into two kinds.

**Four are government.** The Federal Reserve Bank of St. Louis, the Bureau of Labor Statistics, the Energy Information Administration and the Commodity Futures Trading Commission all hand out keys for nothing. Free, but still four registrations, four confirmation emails, four credentials to store and rotate.

**Three are commercial**, and those come with a subscription as well as a signup. Between them they gate 26 of the models our provider covers, including the entire equity fundamentals layer. Balance sheets, income statements, cash flow, ratios, estimates: not reachable from OpenBB without paying somebody.

## Sixty-one models you cannot reach without somebody's key

Of the models our provider covers, 61 are available from a first-party provider **only** if you hold that provider's credential:

```
fred            29 models        government key, free
fmp             18 models        commercial subscription
econdb           7 models        commercial subscription
bls              2 models        government key, free
cftc             2 models        government token, free
eia              2 models        government key, free
fmp or nasdaq    1 model         commercial subscription
```

The 29 are the macro backbone. The 26 commercial ones are company fundamentals and part of the macro panel. Neither group is exotic; both are the first thing anyone reaches for.

## Eighteen models nobody else in OpenBB provides

Eighteen of our models have **no first-party provider at all**:

```
MaritimeChokePointInfo      MaritimeChokePointVolume    PortInfo
CompositeLeadingIndicator   CountryInterestRates        DirectionOfTrade
GdpForecast                 HousePriceIndex             SharePriceIndex
Unemployment                ForwardSalesEstimates       TrailingDividendYield
HistoricalAttributes        LatestAttributes            EquityUndervaluedGrowth
EquityUndervaluedLargeCaps  EquityAggressiveSmallCaps   GrowthTechEquities
```

Three are maritime. `obb.economy.shipping.chokepoint_volume` returns nothing at all unless our provider is installed. (The neighbouring `port_volume` is the exception, reachable through one commercial provider.)

That matters more than a count suggests, because shipping is where a lot of macro questions actually resolve. A commodity moves, the coverage offers a reason, and transit numbers are what tell you whether the reason is real.

## What you can do with one key

Not a feature list. Four things you would actually sit down and do, each with a single credential.

**Look at a company from four angles.**

```python
from openbb import obb

obb.equity.price.quote("AAPL", provider="sugra")
obb.equity.fundamental.metrics("AAPL", provider="sugra")
obb.equity.ownership.form_13f("0001067983", provider="sugra")
obb.equity.shorts.fails_to_deliver("AAPL", provider="sugra")
obb.news.company("AAPL", provider="sugra")
```

Price, fundamentals, who holds it, settlement failures, and what is being written. Natively that spans a commercial subscription and two government registrations.

**Build a macro panel.**

```python
obb.economy.cpi(country="united_states", provider="sugra")
obb.fixedincome.rate.effr(provider="sugra")
obb.fixedincome.government.yield_curve(provider="sugra")
obb.economy.unemployment(provider="sugra")
```

Inflation, the policy rate, the curve the market is pricing against it, and labour. Three of those four are government sources that each want their own key.

**Ask a question that crosses domains.**

```python
obb.commodity.price.spot(provider="sugra")
obb.economy.shipping.chokepoint_volume(provider="sugra")
obb.cftc.cot(provider="sugra")
```

Commodity price, physical transit through the world's chokepoints, and how futures traders are positioned. This is the combination that tells you whether a price move is a story or a shipment that stopped, and until now the middle line was not available from an OpenBB command at all.

**Look through an ETF and down a futures curve.**

```python
obb.etf.holdings("SPY", provider="sugra")
obb.derivatives.futures.curve("CL", provider="sugra")
```

Same objects, same commands, same dataframes as any other provider. The only difference is how many places you had to go to get started.

## Before and after, in the settings file

Before, in `~/.openbb_platform/user_settings.json`:

```json
{ "credentials": {
    "fmp_api_key": "...",
    "fred_api_key": "...",
    "bls_api_key": "...",
    "nasdaq_api_key": "...",
    "econdb_api_key": "...",
    "eia_api_key": "...",
    "cftc_app_token": "..."
}}
```

After:

```json
{ "credentials": { "sugra_api_key": "..." } }
```

Seven signups become one. Seven rate limits with seven reset behaviours become one. In a notebook you share with a colleague, seven blanks they must fill before running your work become one.

## The same key goes into other tools

OpenBB is one place a research stack lives. It is not the only one, and the key does not change.

**Any MCP client.** `sugra-api-mcp` is the Model Context Protocol server for the same API, and it works with ChatGPT, Claude, Gemini, xAI, Cursor and VS Code. Install it and your assistant can pull live data with source attribution instead of answering from memory. It is listed in the official OpenAI plugins directory.

```bash
pip install sugra-api-mcp
```

**Anything that speaks HTTP.** Underneath both packages is a plain REST API with an `x-api-key` header, so a dashboard, a scheduled job, a spreadsheet script or a backtester reaches the same data with no SDK at all.

That is the actual shape of the offer. Not a terminal, not a notebook plugin: one credential that follows you across whichever tool you happen to be working in.

## Install

```bash
pip install openbb-sugra
export OPENBB_SUGRA_API_KEY="your_key"
```

The provider auto-registers through the `openbb_provider_extension` entry point, so `import openbb` picks it up and rebuilds the static package.

## Things worth knowing

**It sits alongside the others.** OpenBB resolves the provider per call, so `provider="sugra"` on one line and something else on the next is normal usage. Keys you already hold and like, keep.

**Every model is live-verified.** Each fetcher has been run against the live API and back through the `obb.*` layer before shipping, not just tested against a recorded fixture.

**Pricing is by volume, not by feature.** Every command above works on every plan including the free one. There is no tier where a command group is switched off.

**The coverage matrix is generated.** `COVERAGE.md` is produced from the shipped fetchers, so it cannot drift from what the package registers.

## We are building this because we use it

This is not a side project we shipped once and forgot. We run OpenBB in our own work, and every model in the package went in because somebody here wanted it on a real question, not because it looked good in a coverage table.

Which also means we are watching upstream. OpenBB moves, models get added and standard schemas change, and the provider follows. Version 0.2.1 tracks the current platform release. More models are in development, coverage of the groups we already touch keeps widening, and the gaps we have not filled yet are tracked rather than ignored.

If something you need is missing, that is worth telling us: [open an issue](https://github.com/Sugra-Systems/openbb-sugra/issues). The roadmap is largely made of things people asked for.

```bash
pip install openbb-sugra
```

Key at [sugra.ai](https://sugra.ai). Source and the full coverage matrix at [github.com/Sugra-Systems/openbb-sugra](https://github.com/Sugra-Systems/openbb-sugra). Package on [PyPI](https://pypi.org/project/openbb-sugra/).

And if you would rather check the arithmetic than take it on trust: clone the OpenBB repository, walk `openbb_platform/providers/*/openbb_*/__init__.py`, count the `credentials=` declarations and the `fetcher_dict` entries. That is exactly how the numbers above were produced.

More versions coming. Stay tuned.
