OpenBB
The AI Workspace for Finance: Connect Data, Run AI Agents, Build Analytics
OpenBB is an open-source financial data platform that unifies public, licensed, and proprietary data sources into a single infrastructure for quants, analysts, and AI agents, enabling ‘connect once, consume everywhere’ access via Python, Excel, REST APIs, and a customizable AI-powered workspace.
The Open Data Platform (ODP) sits at the core — a Python library that connects to over 30 bundled data providers spanning equities, options, crypto, fixed income, macroeconomics, commodities, and regulatory data. A single Fetcher abstraction powers all data ingestion, and a universal OBBject result container carries typed data, metadata, and chart objects uniformly regardless of provider or interface. This means analysts get the same data via SDK, CLI, REST API, or AI agent without writing duplicate glue code.
OpenBB Workspace is the enterprise UI layer built on top: a web-based environment where analysts can build custom dashboards, drag-and-drop data widgets, and wire up AI agents via an MCP server that exposes the entire platform as agent-callable tools. Workspace supports on-premises deployment and integrates with Snowflake, enabling teams handling sensitive proprietary data to maintain full control. The desktop application packages the same stack in a native Tauri binary for offline or air-gapped use cases.
What You Get
- Python SDK with unified financial data access - Query equities, options, crypto, macro, and fixed income data from over 30 providers using a consistent
obb.<asset>.<endpoint>()interface, with results as typed OBBject containers convertable to pandas DataFrames. - OpenBB CLI for terminal-based data exploration - Access financial datasets directly from the command line with auto-completing, schema-aware commands generated from provider models, supporting piped workflows and scripting.
- FastAPI-powered REST API server - Launch a local or cloud-hosted API server with
openbb-apito expose all platform data endpoints for dashboards, internal apps, or external integrations over HTTP. - MCP server for AI agent connectivity - Automatically expose the entire data platform as Model Communication Protocol tools, letting LLM agents (Claude, GPT-4, and others) query financial data, run analysis, and generate reports without custom integration code.
- OpenBB Workspace enterprise UI - A web-based analytical environment at pro.openbb.co for building custom dashboards, visualizing provider data, and connecting AI agents through a drag-and-drop interface.
- Extension and cookiecutter system - Build and publish custom data provider extensions using standardized templates that integrate transparently into all platform surfaces (Python, CLI, REST, MCP) upon registration.
- Tauri desktop application - A native cross-platform binary that bundles the React frontend with the Python backend for offline access, air-gapped deployments, or analyst workstations without a server setup.
- Jupyter and Colab integration - Ready-to-run example notebooks for backtesting, earnings analysis, currency forecasting, and financial statement analysis, demonstrating idiomatic Python SDK usage.
Common Use Cases
- AI-powered earnings research - A hedge fund analyst connects earnings transcripts, broker estimates, and price data to an LLM agent via the MCP server, generating structured investment memos and flag lists automatically.
- Quantitative strategy backtesting - A quant uses the Python SDK to pull historical OHLCV data from multiple providers simultaneously, normalizes it through OBBject, and feeds it into a momentum strategy backtest.
- Internal financial data API - A fintech engineering team deploys the REST API server behind their VPC to give downstream apps access to harmonized market data without managing direct provider credentials in each service.
- On-premises analytics for regulated firms - A private equity fund deploys OpenBB Workspace on-premises, connects their virtual data room documents and proprietary models, and restricts all data flow to their internal network.
- Macro scenario modeling - A macro trader combines FRED, IMF, OECD, and central bank data through a single Python session to build multi-variable correlation matrices and stress-test portfolio positions.
- Crypto on-chain and market data monitoring - A crypto team integrates exchange volume, derivatives open interest, and economic indicators in one workspace to detect early regime shifts and generate alerts.
Under The Hood
Architecture
OpenBB is built around a layered, modular architecture with clear separation between core platform, data providers, extensions, and surface-specific adapters. The openbb_core package forms the nucleus, providing a CommandRunner, Router, and an OBBject result model that all consumers receive regardless of interface. Providers implement a generic Fetcher[Q, D] abstract class with transform_query, extract_data, and transform_data lifecycle hooks, enforcing a consistent ETL pipeline while allowing each provider to handle authentication and HTTP independently. Extensions register into the core via ExtensionLoader and a CachedAccessor pattern, meaning new asset classes or data tools can be added without modifying platform internals. A provider.registry and provider.registry_map decouple consumers from providers at runtime, enabling the ‘connect once, consume everywhere’ promise at the architectural level. The REST API, Python SDK, CLI, and MCP server all share the same CommandRunner execution path, so behavior is identical across surfaces.
Tech Stack The platform runs on Python 3.10+ with Pydantic v2 for strict data validation across all query parameters and response models, FastAPI with Uvicorn for the REST API server, and aiohttp for async HTTP calls to data providers. The provider layer bundles over 30 data sources including Yahoo Finance, Alpha Vantage, FRED, FMP, CBOE, SEC, IMF, OECD, Tiingo, Tradier, and Nasdaq. The charting extension uses Plotly and pandas for visualization. The CLI uses a custom argparse translator that generates typed argument parsers directly from provider model schemas. The desktop application is built with Tauri, React, TypeScript, TanStack Router, and Vite, with Vitest handling frontend tests. The MCP server extension exposes the full platform as an LLM tool interface with no additional code from extension authors. Code quality tooling includes Ruff with comprehensive rule sets, pre-commit hooks, detect-secrets, and Poetry for dependency management.
Code Quality
Testing is layered and comprehensive: unit tests cover core logic, integration tests use vcr.py cassettes for deterministic HTTP replay across providers, and offline-capable mocking via pytest ensures CI runs without live credentials. The abstract Fetcher class enforces implementation contracts at subclass definition time through __init_subclass__, catching missing method implementations as import-time errors rather than runtime surprises. Pydantic v2 is used throughout for input validation, providing type safety at all data boundaries. The ruff configuration enforces extensive rule sets covering style, security, simplification, and import ordering with docstring requirements across all public APIs. Custom OpenBBError and OpenBBWarning types provide structured error semantics across layers, and detect-secrets pre-commit hooks prevent credential leakage. Naming conventions are consistent — snake_case Python, PascalCase models, and kebab-case CLI commands — and the hierarchical provider structure makes test file placement intuitive.
What Makes It Unique
The ‘connect once, consume everywhere’ model — where a single Fetcher implementation simultaneously powers Python SDK, REST API, CLI, MCP server for AI agents, Excel add-in, and Workspace UI — is architecturally distinctive in the financial data tooling space. The OBBject universal response envelope carries typed data, metadata, warnings, and chart objects uniformly regardless of provider or interface, eliminating impedance mismatch between surfaces. The MCP server extension converts the entire platform into a tool interface for LLM agents as an emergent capability of the architecture, without extension authors writing any agent-specific code. The cookiecutter template system enables external contributors to build fully standards-compliant provider extensions that integrate across all surfaces automatically. The dynamic registry resolution at startup enables true multi-provider fan-out with graceful fallback when a provider lacks credentials, a pattern uncommon in open-source financial data tools.
Self-Hosting
OpenBB is distributed under the GNU Affero General Public License v3.0 (AGPLv3). This is a strong copyleft license: anyone who runs a modified version of OpenBB as a network service must publish the source code of their modifications under the same license. For internal self-hosting — running the platform on your own servers, accessed only by your own team — there is no obligation to release anything. However, if you build a modified version of OpenBB and expose it externally as a product or service, you are required to distribute your changes as AGPLv3 source. Organizations with strict open-source policy restrictions should evaluate this carefully; commercial licenses for proprietary use are available through OpenBB directly.
Running OpenBB on your own infrastructure involves installing the Python package and running openbb-api to launch the FastAPI server. The platform itself is lightweight — the ODP Python package and a Python 3.10+ environment are the only requirements — though integrating multiple data providers may require obtaining and managing API keys for each. The desktop application bundles everything into a native Tauri binary, reducing operational overhead for individual analyst workstations. For team deployments, you are responsible for server provisioning, uptime, SSL termination, key rotation, and updates. Build, test, and deployment automation is managed through Poetry and Ruff, and the project ships a Docker configuration in the build/docker directory to simplify container-based deployments.
OpenBB Workspace at pro.openbb.co is a proprietary, hosted tier that adds the full web-based analytical UI, AI agent integration workflows, collaboration features, and managed backend connectivity. Self-hosters using only the open-source ODP package can connect Workspace to a locally-run ODP backend, but the Workspace UI itself is not open source. Organizations with strict data residency requirements or proprietary models can run ODP entirely on-premises and connect it to a self-hosted instance, though enterprise SLA coverage, managed upgrades, SSO integration, and dedicated support are features of paid plans available through OpenBB’s commercial offering.
Related Apps
Supabase
Developer Tools · Databases · Search
The open-source Postgres development platform that replaces Firebase with authentication, real-time APIs, edge functions, storage, and vector embeddings — all built on PostgreSQL.
Supabase
Apache 2.0NocoDB
No Code Platforms · Databases · Low Code Platforms
Turn any SQL database into a collaborative no-code spreadsheet with automatic REST APIs and real-time views.
NocoDB
OtherPocketBase
Databases · Ecommerce · Authentication
Open Source realtime backend in 1 file — embedded SQLite, auth, file storage, and admin UI as a single Go binary.