FinanceDatabase is a free, open source databases project written in Python and released under MIT. It has 9,139 GitHub stars, 944 forks and 4 open issues, and was last pushed 5 days ago. On this registry it ranks #93 of 203 tracked projects in Databases, with 5 head-to-head comparisons available.

What is FinanceDatabase?

FinanceDatabase is a free, MIT-licensed Python package and community-maintained database of over 300,000 financial symbols spanning Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies and Money Markets, built for investors, analysts and developers who need to see the full breadth of what exists across countries, sectors and exchanges.

What it is

FinanceDatabase is a database of more than 300,000 financial symbols, distributed as the financedatabase Python package and categorised across Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies and Money Markets. Each product carries classification information: Equities are grouped into 11 sectors, 80 industries, 117 countries and 84 exchanges, while ETFs are described by 313 families, 44 categories and 51 exchanges, and Funds by 1,540 families, 74 categories and 33 exchanges. The underlying records are stored as CSV files that can be edited by hand, which is what allows contributors without coding experience to add, edit and remove tickers as the market changes.

The concrete problem it solves is discovery. Millions of companies and derivatives trade worldwide, and only the best-known names are visible to most investors. FinanceDatabase replaces the manual hunt through scattered listings with one categorised index that can be queried from Python, so a user can survey sectors, industries and investment types across a market rather than guess at what might exist. It deliberately does not attempt to be a market data feed or a source of up-to-date fundamentals; it describes which products exist and gives the essential information about each so that other tools, such as the Finance Toolkit, can then fetch live figures.

Key capabilities

  • Covers 112,690 Equities across 11 sectors, 80 industries, 117 countries and 84 exchanges.
  • Covers 36,481 ETFs across 313 families, 44 categories and 51 exchanges.
  • Covers 57,853 Funds across 1,540 families, 74 categories and 33 exchanges.
  • Covers 91,181 Indices across 63 exchanges, plus 1,367 Money Markets across 2 exchanges.
  • Covers 2,556 Currencies across 175 currencies and 3,367 Cryptocurrencies across 351 cryptocurrencies.
  • Stores records as CSV files that can be edited manually, so contributions need no coding experience.
  • Ships as an installable Python package queried with import financedatabase as fd.

Who uses it and how

  • Private investors who find the sheer amount of information available on the internet daunting and need a broad overview of sectors, industries and investment types.
  • Contributors with little or no coding experience, who add, edit and remove tickers directly in CSV files following the Contributing Guidelines.
  • Analysts researching a specific area of the financial world, or searching for a product that is hard to find through ordinary lookups.
  • Developers pairing the database with the Finance Toolkit, using FinanceDatabase for categorisation and the toolkit to obtain stock data and fundamentals.
  • Python users who query the database through the financedatabase package rather than maintaining their own symbol lists.

Getting started

Install with pip install financedatabase -U, then use import financedatabase as fd inside Python. The README's usage examples are deliberately cut to a maximum of 10 entries because of the size of the database.

How it compares

The facts name no paid products that this project replaces, so the closest reference point is the Finance Toolkit, which sits alongside it rather than competing with it: FinanceDatabase supplies categorisation and the toolkit supplies the fundamental and stock data, and the README frames them as complements. The openbb topic also places it in the wider open-source financial data ecosystem rather than in the commercial data-terminal category.

When to use it — and when not to

Use it when the goal is breadth of coverage and classification, and skip it when the goal is current prices or fundamentals, which the README explicitly states the database does not provide. A user must be willing to pair it with another source for market data, and must accept that the ticker universe depends on community involvement to stay current, since the project relies on contributors to add, edit and remove entries over time. It is also less suited to anyone wanting a single self-contained data product: the value here is the catalogue, and the rest of the pipeline has to come from elsewhere.

project readme (upstream, from github) — read inline
Logo

GitHub Sponsors Buy Me a Coffee LinkedIn Documentation Supported Python Versions PYPI Version PYPI Downloads

Call for Contributors to the FinanceDatabase
The FinanceDatabase serves the role of providing anyone with any type of financial product categorization entirely for free. To achieve this, the FinanceDatabase relies on community involvement to add, edit, and remove tickers over time. This is made easy enough that anyone, even those with a lack of coding experience, can contribute because of the use of CSV files that can be manually edited with ease.
I'd like to invite you to go to the Contributing Guidelines to understand how you can help. Thank you!

As a private investor, the sheer amount of information that can be found on the internet is rather daunting. Trying to understand what types of companies or ETFs are available is incredibly challenging, with millions of companies and derivatives available on the market. Sure, the most traded companies and ETFs can quickly be found simply because they are known to the public (for example, Microsoft, Tesla, S&P 500 ETF, or an All-World ETF). However, what else is out there is often unknown.

This database tries to solve that. It features 300,000+ symbols containing Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies, and Money Markets. It therefore allows you to obtain a broad overview of sectors, industries, types of investments, and much more.

The aim of this database is explicitly not to provide up-to-date fundamentals or stock data, as those can be obtained with ease (with the help of this database) by using the Finance Toolkit 🛠️. Instead, it gives insights into the products that exist in each country, industry, and sector and provides the most essential information about each product. With this information, you can analyze specific areas of the financial world and/or find a product that is hard to find. For examples of how you can combine this database with the earlier mentioned packages, see the Usage section.

Some key statistics of the database:

Product Quantity Sectors Industries Countries Exchanges
Equities 112.690 11 80 117 84
Product Quantity Families Categories Exchanges
ETFs 36.481 313 44 51
Funds 57.853 1.540 74 33
Product Quantity Category
Currencies 2.556 175 Currencies
Cryptocurrencies 3.367 351 Cryptocurrencies
Indices 91.181 63 Exchanges
Money Markets 1.367 2 Exchanges

Installation

Before installation, consider starring the project on GitHub, which helps others find the project as well.

image

To install the FinanceDatabase, simply use the following:

pip install financedatabase -U

Then within Python use:

import financedatabase as fd

Usage

This section explains in detail how the database can be queried with the related financedatabase package. Note that examples here are purposely cut off to a maximum of 10 entries due to the sheer size of the database. Furthermore, the summary column is also omitted for readability. For the full detailed results, see the Notebook here. Let's start by importing the package:

import financedatabase as fd

Initialization of each asset class is only required once. It is therefore important that you save the class to a variable so that you can query the database much more quickly. A simple example is shown below.

equities = fd.Equities()

equities.select()

A sample of the output is shown below:

symbol name currency sector industry_group industry exchange market country state city zipcode website market_cap isin cusip figi composite_figi shareclass_figi
PMTA.DU PTC Inc. EUR Information Technology Software & Services Software DUS Dusseldorf Stock Exchange United States MA Boston 2210 http://www.ptc.com Large Cap US69370C1009 69370C100 BBG000FC6SC5 BBG000FC5PS5 BBG001S6DNK6
VAW.F VAALCO Energy, Inc. EUR Energy Energy Oil, Gas & Consumable Fuels FRA Frankfurt Stock Exchange United States TX Houston 77042 http://www.vaalco.com Micro Cap US91851C2017 91851C201 BBG000CN15Y5 BBG000CN15F6 BBG001S76ZS7
ORC.DE Oracle Corporation EUR Information Technology Software & Services Software GER XETRA United States TX Austin 78741 http://www.oracle.com Mega Cap US68389X1054 68389X105 BBG000C0RY38 BBG000C0RWW0 BBG001S5SJG6
PAYX Paychex, Inc. USD Industrials Commercial & Professional Services Professional Services NMS NASDAQ Global Select United States NY Rochester 14625-2396 http://www.paychex.com Large Cap US7043261079 704326107 BBG000BQT1J5 BBG000BQSQ38 BBG001S5V135
RI2A.F Rigel Pharmaceuticals, Inc. EUR Health Care Pharmaceuticals, Biotechnology & Life Sciences Biotechnology FRA Frankfurt Stock Exchange United States CA South San Francisco 94080 http://www.rigel.com Small Cap US7665596034 766559603 BBG000BKZNR4 BBG000BKZNC0 BBG001SD33Z0
PGEN Precigen, Inc. USD Health Care Pharmaceuticals, Biotechnology & Life Sciences Biotechnology NMS NASDAQ Global Select United States MD Germantown 20876 http://www.precigen.com Small Cap US74017N1054 74017N105 BBG004TDDJ32 BBG000QL8VH9 BBG001SSB3T5
GOGO Gogo Inc. USD Communication Services Telecommunication Services Diversified Telecommunication Services NMS NASDAQ Global Select United States IL Chicago 60606 http://www.gogoair.com Small Cap US38046C1099 38046C109 BBG002CN8Y71 BBG002CN8XN5 BBG002CN8YD4
CRK

readme truncated — read the full docs on github

Frequently asked questions

Is FinanceDatabase free to use?

FinanceDatabase is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does FinanceDatabase do?

This is a database of 300.000+ symbols containing Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies and Money Markets.

What is FinanceDatabase written in?

FinanceDatabase is primarily written in Python. Its source is publicly available at https://github.com/JerBouma/FinanceDatabase, and it has 9,139 GitHub stars.