Skip to main content

Unofficial Fennel Invest API

This is an unofficial API for Fennel.com (now) built using the official Fennel API. This project is not affiliated with Fennel.com in any way.

While I try my best to ensure the API is working correctly, it is an ongoing work in progress, so it may have bugs and missing features. Please feel free to contribute!

Important!

Versions prior to 2.0.0 used an unofficial reverse-engineered API that mimicked the Fennel Invest mobile app. With the release of the official API, this library has been updated to use that instead and previous versions are no longer supported or recommended.

Installation

Install with uv:

uv add 'fennel-invest-api>=2.0.0'

Or with pip:

pip install 'fennel-invest-api>=2.0.0'

Usage: Logging In

Generate a new Personal Access Token (PAT) from the Fennel Dashboard.

Then, initialize the Fennel class with your PAT:

from fennel_invest_api import Fennel

fennel = Fennel(pat_token="your-personal-access-token")

Usage: Get Account Info

account_info = fennel.get_account_info()
for account in account_info:
    print(f"Name: {account.name}, Account ID: {account.id}, Type: {account.account_type}")

Usage: Get Account Summary

account_info = fennel.get_account_info()
for account in account_info:
    summary = fennel.get_portfolio_cash_summary(account.id)
    print(f"Account: {account.name}, Portfolio Value: ${summary.portfolio_value:.2f}, Buying Power: ${summary.buying_power:.2f}, Cash: ${summary.cash_available:.2f}")

Usage: Get Stock Holdings

account_info = fennel.get_account_info()
for account_id in account_info:
    positions = fennel.get_portfolio_positions(account_id.id)
    print(f"Positions for account {account_id.name}:")
    for position in positions:
        print(f"{position.symbol}: {position.shares} shares at ${position.value:.2f}")

Usage: Placing Orders

Market order (Default):

order = fennel.place_order(
    account_id=account_id,
    symbol="AAPL",
    shares=1,
    side="BUY"
)
print(order)

Limit order:

order = fennel.place_order(
    account_id=account_id,
    ticker="AAPL",
    quantity=1,
    side="BUY",
    order_type="LIMIT",
    limit_price=150.00,
)
print(order)

Contributing

Found or fixed a bug? Have a feature request? Feel free to open an issue or pull request!

Enjoying the project? Feel free to Sponsor me on GitHub or Ko-fi!

Sponsor ko-fi

DISCLAIMER

DISCLAIMER: I am not a financial advisor and not affiliated with Fennel.com. Use this tool at your own risk. I am not responsible for any losses or damages you may incur by using this project. This tool is provided as-is with no warranty.

Release files for fennel_invest_api 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fennel_invest_api 2.0.1
File Size Uploaded
fennel_invest_api-2.0.1.tar.gz 13.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fennel_invest_api 2.0.1
File Interpreter ABI Platform
fennel_invest_api-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 40.3 kB

Release files / fennel_invest_api-2.0.1.tar.gz

Download URL fennel_invest_api-2.0.1.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f012b4fcbf817b32b6bcf19ffc747d67aa700fd210393a80a0a69b4b007775a5
BLAKE2b-256 checksum
How to use checksums
cf99691d4a7e8b454f16d48007334f5a6b334c22c77c3f54750913e3c7c4ebd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fennel_invest_api-2.0.1-py3-none-any.whl

Download URL fennel_invest_api-2.0.1-py3-none-any.whl
Size 26.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b73e0e4960df8af1312766652ded0ad1009ce4a01fd51e8cbbcb11b3a14b185
BLAKE2b-256 checksum
How to use checksums
21c9efd0b0c94dadbb7b5a73428fc84eaab3076fc05f940cc883ba46cd1f9165
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files

2.0.0

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page