Finary Unofficial API wrapper
A simple command line tool to interact with your Finary account.
Finary is a real time portfolio & stocks tracker. It supports precious metal, cryptos, stocks and a lot more. If you don't already have an account, here is a referral link to sign up: https://finary.com/referral/7a49bf74c6d9cb3fca2a
:warning: Use at your own risk. I'm not responsible if you trash your account. :warning:
Project goals
- Provide a command line tool to do a large part of what you can do on Finary website
- Automate some requested features not yet implemented by finary like CSV import/export
Quick start
- Install requirements.
pip install finary_uapi. - Copy paste the
credentials.json.tplfile tocredentials.jsonand file your username and password. - Run
python -m finary_uapi signin - You are good to go and can explore the API. Run
python -m finary_uapifor available commands. - Try
python -m finary_uapi meorpython -m finary_uapi investments. - If you get errors about being unauthorized, you need to signin again.
Usage
Run ``python -m finary_uapi` for an up to date version.
Usage:
finary_uapi signin [MFA_CODE]
finary_uapi me
finary_uapi institution_connections
finary_uapi organizations
finary_uapi timeseries <period> <type>
finary_uapi checking_accounts transactions [--page=<page>] [--perpage=<perpage>] [--account=<account_ids>] [--institution=<institution_ids>] [--query=<query>]
finary_uapi fonds_euro
finary_uapi startups
finary_uapi investments
finary_uapi investments dividends
finary_uapi investments transactions [--page=<page>] [--perpage=<perpage>] [--account=<account_ids>] [--institution=<institution_ids>] [--query=<query>]
finary_uapi crowdlendings
finary_uapi crowdlendings distribution
finary_uapi crowdlendings add <account_name> <name> <annual_yield> <month_duration> <initial_investment> <current_price> <currency_code> <start_date>
finary_uapi crowdlendings delete <crowdlending_id>
finary_uapi cryptos
finary_uapi cryptos distribution
finary_uapi cryptos add <code> <quantity> <price> <account_id>
finary_uapi cryptos update <code> <quantity> <price> <account_id>
finary_uapi cryptos delete <code> <account_id>
finary_uapi precious_metals search QUERY
finary_uapi precious_metals
finary_uapi precious_metals add <name> <quantity> <price>
finary_uapi precious_metals delete <commodity_id>
finary_uapi holdings_accounts [crypto | stocks | crowdlending | <account_name>]
finary_uapi holdings_accounts add (crypto | stocks | crowdlending) <account_name>
finary_uapi holdings_accounts add (checking | saving) <account_name> <bank_name> <account_type> <balance>
finary_uapi holdings_accounts delete <account_id>
finary_uapi holdings_accounts update <account_id> <account_name> [<account_balance>]
finary_uapi generic_asset_categories
finary_uapi generic_assets
finary_uapi generic_assets add <name> <category> <quantity> <buying_price> <current_price>
finary_uapi generic_assets update <asset_id> <name> <category> <quantity> <buying_price> <current_price>
finary_uapi generic_assets delete <asset_id>
finary_uapi crypto_chains
finary_uapi crypto_currency search QUERY
finary_uapi fiat_currency search QUERY
finary_uapi institutions search QUERY
finary_uapi securities search QUERY
finary_uapi securities
finary_uapi securities add <code> <quantity> <price> <account_id>
finary_uapi securities delete <security_id>
finary_uapi insights
finary_uapi loans
finary_uapi credit_accounts transactions [--page=<page>] [--perpage=<perpage>] [--account=<account_ids>] [--institution=<institution_ids>] [--query=<query>]
finary_uapi real_estates
finary_uapi real_estates add rent <address> <user_estimated_value> <description> <surface> <buying_price> <building_type> <ownership_percentage> <monthly_charges> <monthly_rent> <yearly_taxes> <rental_period> <rental_type> [<currency_code>]
finary_uapi real_estates add <category> <address> <user_estimated_value> <description> <surface> <buying_price> <building_type> <ownership_percentage> [<currency_code>]
finary_uapi real_estates update rent <asset_id> <user_estimated_value> <description> <buying_price> <ownership_percentage> <monthly_rent>
finary_uapi real_estates update <category> <asset_id> <user_estimated_value> <description> <buying_price> <ownership_percentage>
finary_uapi real_estates delete <asset_id>
finary_uapi scpis search QUERY
finary_uapi scpis
finary_uapi watches search QUERY
finary_uapi import crowdlending_csv FILENAME [-d] [-f]
finary_uapi import cryptocom FILENAME [(--new=NAME | --edit=account_id | --add=account_id)]
finary_uapi import nexo FILENAME [(--new=NAME | --edit=account_id | --add=account_id)]
finary_uapi import crypto_csv FILENAME [(--new=NAME | --edit=account_id | --add=account_id)]
finary_uapi import stocks_csv FILENAME [(--new=NAME | --edit=account_id | --add=account_id)] [-d]
finary_uapi import stocks_json FILENAME [(--new=NAME | --edit=account_id | --add=account_id)] [-d]
Examples
- List crypto accounts, and display id and name
python -m finary_uapi holdings_accounts crypto | jq '.result[] | {id: .id, name: .name}'
- List investment accounts, and display id and name
python -m finary_uapi holdings_accounts stocks | jq '.result[] | {id: .id, name: .name}'
- Import a CSV file from crypto.com in a new crypto account on Finary. Replace the filename and the account name
python -m finary_uapi import cryptocom crypto_transactions_record.csv --new Crypto.com
- Import a generic CSV file (see tests directory for a sample) in a new crypto account on Finary. Replace the filename and the account name.
python -m finary_uapi import crypto_csv cryptodump.csv --new MyLovelyExchange
- Create a "Compte d'épargne' with a 1000€ balance at BNP Paribas
python -m finary_uapi holdings_accounts add checking testchecking "BNP Paribas" "Compte d'épargne" 1000
- Print gross wealth
python -m finary_uapi dashboard gross all | jq '.result["total"]["amount"]'
TODO
- See Issues
- Tests :smile:
- More typing hints
- CSV export. Use pandas ?
- Write, update, delete for Loans, Real estates, SCPIs are entirely TODO
- Precious metal update
- Interactive command line (it would make automation less fun, but manual use easier)
Remarks for finary devs
- Delete responses should be normalized, sometimes we get json back sometimes nothing but the 204 HTTP code.
Contributors ✨
Thanks go to these people (emoji key):
Nicolas Froment 📆 📣 💻 🐛 🤔 📖 |
Victor Quach 💻 |
NickFR 💻 |
Clémence Lesné 💻 |
OxyFlax 💻 |
Patrick Martin 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Metadata
Release files for finary-uapi 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| finary_uapi-0.2.3.tar.gz | 23.2 kB | With provenance | Details for finary_uapi-0.2.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| finary_uapi-0.2.3-py3-none-any.whl | Python 3 | none | any | Details for finary_uapi-0.2.3-py3-none-any.whl |
Total release size: 58.8 kB
Release files / finary_uapi-0.2.3.tar.gz
| Download URL | finary_uapi-0.2.3.tar.gz |
|---|---|
| Size | 23.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
550bae590222e8f27773d1df6034e3095c62806d10a9ce26da3f61576854d0a6
|
|
BLAKE2b-256 checksum How to use checksums |
d08b52d53c222e98ad2f6dd39d67e77e0280a29835dd0b1e16d7d30dcbcc3309
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.
Transparency logRelease files / finary_uapi-0.2.3-py3-none-any.whl
| Download URL | finary_uapi-0.2.3-py3-none-any.whl |
|---|---|
| Size | 35.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a79fba88da473fd820fd8e587ac89a6e782f90143e97a16fcde8c2af8fca5f91
|
|
BLAKE2b-256 checksum How to use checksums |
7ff7c090a0fdf736deb9c8d28ba767699759e7e35090b7887e3be3f5c4bf4d3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.
Transparency logSecurity for finary-uapi 0.2.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for finary_uapi-0.2.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.