Open-source Python data platform that connects financial and other data sources and exposes them to Python, Excel, AI agents and REST APIs.
underloam/xbbg
A Rust-backed Bloomberg client with Python and Node.js bindings for reference, historical, intraday, streaming and BQL data requests.
Open-source alternative to:Bloomberg Terminal
- Stars
- 703
- Forks
- 64
- Open issues
- 4
- Last commit
- 3 days ago
Repolode describes open-source projects and does not give investment advice. Trading and investing can lose money: assess the risk yourself and follow the laws where you live before using this project.
What is it?
xbbg is a Bloomberg client whose primary interface is Python, with companion JavaScript/Node bindings. Both sit on a shared Rust engine that handles request execution, response parsing, Arrow-shaped data movement, async workers and typed errors. It is intended for users who already have authorized Bloomberg access, through a local Terminal/DAPI session, SAPI/B-PIPE or ZFP.
The package offers high-level helpers such as bdp, bdh, bdib and bdtick for reference, historical and intraday data, plus BQL, BEQS, BSRCH and analytics functions. Lower-level generic requests and real-time subscriptions are also available. Results can be returned as Narwhals frames, native Arrow tables, PyArrow, pandas, Polars or DuckDB.
xbbg is an independent project and is not affiliated with Bloomberg. It does not supply Bloomberg data or entitlements; users must obtain those under their own agreements.
Key features
- 01Reference, historical, intraday bar and tick data helpers for Bloomberg
- 02Real-time subscriptions with isolated sessions from batch request workers
- 03Supports DAPI, SAPI/B-PIPE, ZFP leased lines, TLS and failover configuration
- 04Sync and async Python APIs backed by the same engine
- 05Output to pandas, Polars, PyArrow, DuckDB or native Arrow
Use cases
- Pulling historical prices and fundamentals into a pandas or Polars analysis pipeline
- Collecting intraday bars or ticks for quantitative research
- Running live market data subscriptions in an async Python service
- Querying BQL or index constituents from Node.js applications
Topics
FAQ
- What is xbbg?
- A Rust-backed Bloomberg client with Python and Node.js bindings for reference, historical, intraday, streaming and BQL data requests. xbbg is a Bloomberg client whose primary interface is Python, with companion JavaScript/Node bindings. Both sit on a shared Rust engine that handles request execution, response parsing, Arrow-shaped data movement, async workers and typed errors. It is intended for users who already have authorized Bloomberg access, through a local Terminal/DAPI session, SAPI/B-PIPE or ZFP.
- Is xbbg free to use? What license does it have?
- xbbg is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is xbbg still maintained?
- Actively maintained. The last commit to xbbg was on Nov 4, 2026.
- What can I use xbbg for?
- Pulling historical prices and fundamentals into a pandas or Polars analysis pipeline Collecting intraday bars or ticks for quantitative research Running live market data subscriptions in an async Python service Querying BQL or index constituents from Node.js applications
- Where can I get xbbg?
- The source code and installation instructions are on GitHub: https://github.com/underloam/xbbg
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Native C++20 desktop terminal for financial research, with Qt6 UI, embedded Python analytics, AI agents and 100+ market data connectors.
A terminal stock dashboard in Rust that pairs live quotes and charts with AI-scored news, SEC Form 4 insider filings and earnings reads.
An autonomous AI agent for deep financial research that plans tasks, self-checks its work, and pulls live market data.
Open-source finance terminal for quotes, charts, financials, filings, portfolios and alerts, run from your terminal or a desktop app.
Open-source, low-latency time-series database with SQL, ingesting millions of events per second and storing history in native columns and Parquet.