This project exists because Trade Republic does not provide a comprehensive view of all purchases and sales. While it is possible to see current holdings in analytics, there is no way to view the analytics of sold assets and their profit. All sale transactions must be tracked manually to understand trading benefits better. This project was created to fill that gap by providing a better representation of trading activities.
Research revealed a few solutions that fulfill similar requirements. However, many are outdated and do not utilize new endpoints (referred to here as websocket message types). Additionally, they are limited in tracking purchases and sales of assets.
Main disadvantages of existing solutions:
A few requirements and limitations were set initially and strictly followed during this project's planning and implementation:
The application performs the same functions as Trade Republic's official frontend application:
Upcoming Features:
Potential Future Features:
Download one of the binaries from the releases section according to the table below:
OS | Architecture | Description | File to download |
---|---|---|---|
macOS | amd64 | Apple devices using Intel CPU | *-darwin-amd64.tar.gz |
macOS | arm64 | Apple devices using Apple Silicon (Apple M1 and newer) | *-darwin-arm64.tar.gz |
Windows | amd64 | 64-Bit Windows | *-windows-amd64.zip |
Windows | arm64 | Windows for ARM | *-windows-arm64.zip |
Linux | amd64 | 64-Bit Linux distro | *-linux-amd64.tar.gz |
Linux | arm64 | Linux distro for ARM processors | *-linux-arm64.tar.gz |
Users using Windows and macOS may receive a warning message before running the binary since it has not been signed.
All available arguments and flags:
➜ traderepublic-portfolio-downloader git:(main) ✗ ./bin/portfoliodownloader --help
Usage: portfoliodownloader [--write-responses] [--debug] [--trace]
Options:
--write-responses, -w
write API responses to the file system
--debug enable debug mode
--trace enable trace mode
--help, -h display this help and exit
After downloading a binary for your OS, run it in the terminal:
➜ traderepublic-portfolio-downloader git:(main) ✗ ./bin/portfoliodownloader
Enter phone number in international format (+49xxxxxxxxxxxxx):
Enter your registered mobile number in international format:
➜ traderepublic-portfolio-downloader git:(main) ✗ ./bin/portfoliodownloader
Enter phone number in international format (+49xxxxxxxxxxxxx):
+491234567890
Provide your PIN and hit enter:
➜ traderepublic-portfolio-downloader git:(main) ✗ ./bin/portfoliodownloader
Enter phone number in international format (+49xxxxxxxxxxxxx):
+491234567890
Enter pin:
Enter the OTP received from Trade Republic and hit enter:
➜ traderepublic-portfolio-downloader git:(main) ✗ ./bin/portfoliodownloader
Enter phone number in international format (+49xxxxxxxxxxxxx):
+491234567890
Enter pin:
Enter 2FA token:
You will see the progress of the download and processing:
➜ traderepublic-portfolio-downloader git:(main) ✗ ./bin/portfoliodownloader
Enter phone number in international format (+49xxxxxxxxxxxxx):
+491234567890
Enter pin:
Enter 2FA token:
Mar 28 12:02:09.385 [INFO] 247 transactions downloaded
Mar 28 12:02:09.385 [INFO] [id:xxxxxxx-xxxxx-xxxxx-xxxxx-xxxx] Fetching transaction details
Mar 28 12:02:09.413 [INFO] [id:xxxxxxx-xxxxx-xxxxx-xxxxx-xxxx] Processing transaction details
Mar 28 12:02:09.453 [INFO] [id:xxxxxxx-xxxxx-xxxxx-xxxxx-xxxx] Unsupported transaction skipped
Mar 28 12:02:09.453 [INFO] [id:xxxxxxx-xxxxx-xxxxx-xxxxx-xxxx] Fetching transaction details
Mar 28 12:02:09.485 [INFO] [id:xxxxxxx-xxxxx-xxxxx-xxxxx-xxxx] Processing transaction details
Mar 28 12:02:09.488 [INFO] [id:xxxxxxx-xxxxx-xxxxx-xxxxx-xxxx] Unsupported transaction skipped
...
Mar 28 12:02:27.379 [INFO] Transactions total: 247; completed: 200; skipped: 47
Jun 16 22:15:09.675 [INFO] Downloading activity log entries
Jun 16 22:15:09.858 [INFO] 42 activity log entries downloaded
Jun 16 22:15:09.858 [INFO] [id:14e2842f-7a4a-4f3f-8f37-52ac2d332673] Fetching activity log entry details
Jun 16 22:15:10.030 [INFO] [id:14e2842f-7a4a-4f3f-8f37-52ac2d332673] Document downloaded
Jun 16 22:15:10.031 [INFO] [id:f61e9ebb-3e6b-473b-91ae-1b61bc8b9dcc] Fetching activity log entry details
Jun 16 22:15:10.133 [INFO] [id:f61e9ebb-3e6b-473b-91ae-1b61bc8b9dcc] Document downloaded
...
Jun 16 22:15:13.484 [INFO] Activity log entries total: 42; completed: 29; skipped: 13
All documents are saved under documents
directory followed by:
transactions
or activity
based on document type.YYYY-mm
format, e.g.: 2020-01
Abrechnung Ausführung.pdf
Exmaples:
documents/transactions/2023-11/67bd11bb-327e-475d-b715-5876bab61c5c/Abrechnung Ausführung.pdf
documents/activity/2023-09/d7488784-2ac1-4daf-856a-f87fb79f641e/Kundenvereinbarung.pdf
Field | Description |
---|---|
ID | Transaction UUID |
Status | Transaction status (should always be executed ) |
Timestamp | Date and time of transaction execution, e.g.: 30 Nov 23 10:22 +0000 |
Type | Transaction type, one of: Purchase, Sale, Dividends, Round Up, Saveback |
Asset type | Asset type, one of: ETF, Cryptocurrency, Lending, Other |
Name | Asset name, e.g.: Bitcoin |
Instrument | Instrument ISIN, e.g.: IE00BK1PV551 |
Shares | Number of shares in the transaction (negative when sold) |
Rate | Price per share in EUR |
Realized yield | Realized yield in percentage (negative if loss) |
Realized PnL | Realized profit or loss amount in EUR (negative if loss) |
Commission | Commission paid to Trade Republic for the transaction in EUR |
Debit | Amount debited from the deposited amount in EUR |
Credit | Amount credited to the deposited amount in EUR |
Tax amount | Tax applied to this transaction in EUR |
Documents | File path to the document PDF files |
Example CSV output can be viewed here: transactions.csv
All values saved into the CSV file are taken "as is" from Trade Republic (except for making them negative in respective cases).
You may encounter errors while running the app due to unexpected data. This is normal as we could only cover the data in our portfolios. It is possible that you have some types of assets we do not own and cannot test, such as derivatives.
Please create an issue and attach the failing response with falsified amounts and removed ID. We will either implement support for these responses or ensure the app does not fail when such a response is received.
We hope this app will improve with community help until Trade Republic implements a better dashboard for an overview of such data.
Please create a pull request with your changes if you have something to contribute. We are very open to constructive suggestions and feedback.
This project and its contributors have no affiliation with Trade Republic Bank GmbH.
Trade Republic is a registered trademark of Trade Republic Bank GmbH.