Flexible Client for the 'Financial Modeling Prep' API
Project description
py-fmpapi
Provides a flexible Polars-based interface to the 'Financial Modeling Prep' API. The package supports all available endpoints and parameters, enabling Python users to interact with a wide range of financial data.
💡 This package is developed by Christoph Scheuch and not sponsored by or affiliated with FMP. However, you can get 15% off your FMP subscription by using this affiliate link. By signing up through this link, you also support the development of this package at no extra cost to you.
For an R implementation, please consider the r-fmpapi
package.
Installation
You can install the release version from PyPI:
pip install fmpapi
If you want to use the package with pandas
, then install via:
pip install fmpapi[pandas]
You can install the development version from GitHub:
pip install "git+https://github.com/tidy-finance/py-fmpapi"
Setup
Before using the package, you need to set your Financial Modeling Prep API key. You can set it using the fmp_set_api_key()
function, which saves the key to your .env
file for future use (either in your project or home folder).
from fmpapi import fmp_set_api_key
fmp_set_api_key()
Usage
Since the FMP API has a myriad of endpoints and parameters, the package provides a single function to handle requests: fmp_get()
.
You can retrieve a company’s profile by providing its stock symbol to the profile
endpoint:
from fmpapi import fmp_get
fmp_get(resource = "profile", symbol = "AAPL")
To retrieve the balance sheet statements for a company, use the balance-sheet-statement
endpoint. You can specify whether to retrieve annual or quarterly data using the period
parameter and the number of records via limit
. Note that you need a paid account for quarterly data.
fmp_get(resource = "balance-sheet-statement", symbol = "AAPL", params = {"period": "annual", "limit": 5})
The income-statement
endpoint allows you to retrieve income statements for a specific stock symbol.
fmp_get(resource = "income-statement", symbol = "AAPL")
You can fetch cash flow statements using the cash-flow-statement
endpoint.
fmp_get(resource = "cash-flow-statement", symbol = "AAPL")
Most free endpoints live under API version 3, but you can also control the api version in fmp_get()
, which you need for some paid endpoints. For instance, the symbol_change
endpoint:
fmp_get(resource = "symbol_change", api_version = "v4")
If you want to get a pandas
data frame instead of polars
, you can use the to_pandas
option (note that pandas
and pyarrow
must be installed):
fmp_get(resource = "cash-flow-statement", symbol = "AAPL", to_pandas = True)
Relation to Existing Libraries
There is an existing Python module that also provide an interface to the FMP API. However, the module lacks flexibility because it provides dedicated functions for specific endpoints, which means that users need to study both the FMP API docs and the package documentation and developers have to create new functions for each new endpoint.
- fmp-python: last commit more than 3 years ago.
Contributing
Feel free to open issues or submit pull requests to improve the package. Contributions are welcome!
License
This package is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fmpapi-0.1.2.tar.gz
.
File metadata
- Download URL: fmpapi-0.1.2.tar.gz
- Upload date:
- Size: 21.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
82b669ee77a5eaae19e45fc8eee6391f487bf07688ade50345f69900182b26b3
|
|
MD5 |
22c98e98d361b7194b5721ac103fb7fd
|
|
BLAKE2b-256 |
43f35dd7b61992e25a17eee7d2ec17093dc621cfb5f34eb66de7ed65f9e41c2e
|
File details
Details for the file fmpapi-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: fmpapi-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
1147a33e478b134f656905ec648eaf6df1d465dcd2303244025b7ffffdcba89a
|
|
MD5 |
4a51a05adb687400ab1d41a02d19348e
|
|
BLAKE2b-256 |
2cd1ed3d5e07b34f0a70be5bcc6cebc226f66381e823b1a6225aa3e864ae3bea
|