Skip to main content

Use TradeRepublic in terminal

Project description

GitHub tag (with filter) PyPI build and publish PyPI - Version

pytr: Use TradeRepublic in terminal

This is a library for the private API of the Trade Republic online brokerage. It is not affiliated with Trade Republic Bank GmbH.

Table of Contents

Quickstart

This is the right section for you if all you want to do is to "just run the thing". Whether you've never run a piece of code before, or are new to Python, these steps will make it the easiest for you to run pytr.

We strongly recommend that you use uv to run pytr. Since pytr is written in the Python programming language, you usually need to make sure you have an installation of Python on your computer before you can run any Python program. However, uv will take care of installing an appropriate Python version for you if you don't already have one.

To install uv on OSX/Linux, run:

$ curl -LsSf https://astral.sh/uv/install.sh | sh

On Windows, run:

> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Then, to run the latest released version of pytr:

$ uvx pytr@latest

If you want to use the cutting-edge version, use this command instead:

$ uvx --with git+https://github.com/pytr-org/pytr.git pytr

Usage

usage: pytr [-h] [-V] [-v {warning,info,debug}] [--debug-logfile DEBUG_LOGFILE] [--debug-log-filter DEBUG_LOG_FILTER]
            {help,login,dl_docs,portfolio,details,get_price_alarms,set_price_alarms,export_transactions,completion} ...

Use "pytr command_name --help" to get detailed help to a specific command

Commands:
  {help,login,dl_docs,portfolio,details,get_price_alarms,set_price_alarms,export_transactions,completion}
                                        Desired action to perform
    help                                Print this help message
    login                               Check if credentials file exists. If not create it and ask for input. Try to
                                        login. Ask for device reset if needed
    dl_docs                             Download all pdf documents from the timeline and sort them into folders. Also
                                        export account transactions (account_transactions.csv) and JSON files with all
                                        events (events_with_documents.json and other_events.json)
    portfolio                           Show current portfolio
    details                             Get details for an ISIN
    get_price_alarms                    Get current price alarms
    set_price_alarms                    Set new price alarms
    export_transactions                 Create a CSV with the deposits and removals ready for importing into Portfolio
                                        Performance
    completion                          Print shell tab completion

Options:
  -h, --help                            show this help message and exit
  -V, --version                         Print version information and quit (default: False)
  -v, --verbosity {warning,info,debug}  Set verbosity level (default: info) (default: info)
  --debug-logfile DEBUG_LOGFILE         Dump debug logs to a file (default: None)
  --debug-log-filter DEBUG_LOG_FILTER   Filter debug log types (default: None)

Authentication

There are two authentication methods:

Web login (default)

Web login is the newer method that uses the same login method as app.traderepublic.com, meaning you receive a four-digit code in the TradeRepublic app or via SMS. This will keep you logged in your primary device, but means that you may need to repeat entering a new four-digit code ever so often when runnnig pytr.

App login

App login is the older method that uses the same login method as the TradeRepublic app. First you need to perform a device reset - a private key will be generated that pins your "device". The private key is saved to your keyfile. This procedure will log you out from your mobile device.

$ pytr login
$ # or
$ pytr login --phone_no +49123456789 --pin 1234

If no arguments are supplied pytr will look for them in the file ~/.pytr/credentials (the first line must contain the phone number, the second line the pin). If the file doesn't exist pytr will ask for for the phone number and pin.

Development

Setting Up a Development Environment

Clone the repository:

$ git clone https://github.com/pytr-org/pytr.git

Install dependencies:

$ uv sync

Run the tests to ensure everything is set up correctly:

$ uv run pytest

Linting and Code Formatting

This project uses Ruff for code linting and auto-formatting, as well as Mypy for type checking.

You can auto-format the code with Ruff by running:

uv run ruff format            # Format code
uv run ruff check --fix-only  # Remove unneeded imports, order imports, etc.

You can check the typing of the code with Mypy by running:

uv run mypy .

Ruff and Mypy run as part of CI and your Pull Request cannot be merged unless it satisfies the linting, formatting checks and type checks.

Release process

  1. Create a pull request that bumps the version number in pyproject.toml
  2. After successfully merging the PR, create a new release via GitHub and make use of the "Generate release notes" button. Tags are formatted as vX.Y.Z.
  3. The package will be published to PyPI from CI.

Keep the readme updated

This readme contains a few automatically generated bits. To keep them up to date, simply run the following command:

$ uvx mksync@0.1.4 -i README.md

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytr-0.4.2.tar.gz (45.0 kB view details)

Uploaded Source

Built Distribution

pytr-0.4.2-py3-none-any.whl (54.4 kB view details)

Uploaded Python 3

File details

Details for the file pytr-0.4.2.tar.gz.

File metadata

  • Download URL: pytr-0.4.2.tar.gz
  • Upload date:
  • Size: 45.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pytr-0.4.2.tar.gz
Algorithm Hash digest
SHA256 d01337a50df274e0c79bf439758150019ef3f0160ce654b2d91e558c4b2d6c1b
MD5 01ec381491b1dfc36853a04d3aa6d511
BLAKE2b-256 aa3bb74359d120b09430f9b76a9985575f77336751b53cfe4c3be0971c335a8f

See more details on using hashes here.

File details

Details for the file pytr-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: pytr-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pytr-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 910c8c4221a98fe62e284770413f920c7d1df2715d0463f7cd0b140584344907
MD5 b24cddbd00a7b7f7e5b1150a588e5f04
BLAKE2b-256 f7c0b554c1b686d415a16f7d1a2483c704abd8c86bc0721dca20af14085a84c3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page