Flexreport Finance
Python client for the Flexreport Finance REST API. A username and password are required to use the client. If you do not have those, please create a free account at https://app.flexreportfinapi.com/register-api. For more information, please visit https://app.flexreportfinapi.com/ and https://app.flexreportfinapi.com/api-docs.
Quick Install
pip install flexreportfinance
Quick example of real-time streaming
from flexreportfinance import FlexreportClient
with FlexreportClient("username", "password") as client:
for event_id, event in client.events.stream(symbols=["AAPL"]):
print(event_id, event)
stream() keeps the connection open and yields events as they arrive, so the loop runs until you break out of it. Live updates are not published on weekends.
Streaming with a saved subscription
A subscription saves a topics/symbols filter on the server and remembers its position: each time you stream it, it resumes after the last event the previous stream delivered, so a consumer that disconnects misses nothing. Valid topics are listed by client.catalog.topics().
Create it once and keep the id. There is no endpoint to list subscriptions, and creation is limited to 30 per hour.
from flexreportfinance import FlexreportClient
with FlexreportClient("username", "password") as client:
sub = client.events.create_subscription(topics=["eps_update"], symbols=["AAPL", "MSFT"])
print("subscription id:", sub["subscription_id"])
Stream it, now or in any later session:
with FlexreportClient("username", "password") as client:
for event_id, event in client.events.stream_with_subscription("<subscription id>"):
print(event_id, event)
Delete it when you no longer need it (an open stream on it ends shortly after):
with FlexreportClient("username", "password") as client:
client.events.delete_subscription("<subscription id>")
Quick example of downloading the latest research for AAPL
import base64
from flexreportfinance import FlexreportClient
with FlexreportClient("username", "password") as client:
report_data = client.reports.get(symbols=["AAPL"])
for symbol, report in report_data["rendered"].items():
file_path = f"{symbol}_report.pdf"
with open(file_path, "wb") as f:
f.write(base64.b64decode(report["result"]["pdf"]))
print(f"{report['result']['headline']} -> saved to {file_path}")
Downloading all of the latest reports from today
import base64
from datetime import date
from flexreportfinance import FlexreportClient
today = date.today().isoformat() # YYYY-MM-DD
with FlexreportClient("username", "password") as client:
report_plans = client.reports.available(report_date=today)
symbols = list(dict.fromkeys(plan["symbol"] for plan in report_plans))
if not symbols:
raise SystemExit(f"No reports for {today} (none are published on weekends).")
report_data = client.reports.get(symbols=symbols)
for symbol, report in report_data["rendered"].items():
file_path = f"{symbol}_report.pdf"
with open(file_path, "wb") as f:
f.write(base64.b64decode(report["result"]["pdf"]))
print(f"{report['result']['headline']} -> saved to {file_path}")
The client logs in on the first authenticated call and logs in again if the token expires.
Release files for flexreportfinance 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flexreportfinance-0.2.0.tar.gz | 4.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flexreportfinance-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.7 kB
Release files / flexreportfinance-0.2.0.tar.gz
| Download URL | flexreportfinance-0.2.0.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb6ebe3fe49807cd08a50d2c2dcead9fcc430b60d3be40dee86f76b22cc33c43
|
|
BLAKE2b-256 checksum How to use checksums |
5083b03e8ccef3c2bc82c8fbd9baf1a7a52c4c7bc9f5c1de7705b3507a5d19d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.3
|
Release files / flexreportfinance-0.2.0-py3-none-any.whl
| Download URL | flexreportfinance-0.2.0-py3-none-any.whl |
|---|---|
| Size | 6.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a839d0f8718bc62755751dc3f36770bffa2d267c5c92f40c915a8b8c86864aec
|
|
BLAKE2b-256 checksum How to use checksums |
ec3d39ceee568415bcc9edc7225ebec9e09cd408706cc69c98e09bfe7be43b33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.3
|