Skip to main content

Interactive TUI for browsing and exporting Nordnet financial data

Project description

nordpy

nordpy

A terminal UI for browsing and exporting your Nordnet portfolio data.


[!CAUTION] Disclaimer — This tool is provided as-is, with no warranty of any kind. Use it at your own risk. The author assumes no liability for any loss, damage, or misuse arising from the use of this software. You are solely responsible for securing any exported data and ensuring it is only accessible to you.

Features

  • Browse accounts, balances, holdings, transactions, trades, and orders
  • Export data to CSV, Excel, or DuckDB
  • Session persistence with automatic re-authentication
  • Headless export mode (no TUI) for scripting
  • SOCKS5 proxy support

How It Works

nordpy authenticates with Nordnet through the same MitID flow your browser uses — it simply performs the login via Nordnet's API directly from the terminal, rather than through a web page. Once authenticated, it fetches your portfolio data using Nordnet's standard API endpoints.

[!IMPORTANT] Privacy — nordpy does not collect, transmit, or store any of your personal information. Your credentials are sent directly to MitID and Nordnet — never to any third-party server. Session cookies are saved locally on your machine (with 0600 permissions) solely to avoid repeated logins. No telemetry, analytics, or external services are involved.

Requirements

  • Python 3.13+
  • uv package manager
  • A Nordnet account with MitID (Danish)

Installation

git clone https://github.com/kiliantscherny/nordpy.git
cd nordpy
uv sync

Usage

Interactive TUI

# MitID App approval (default)
uv run nordpy --user <your-mitid-username>

# Force re-authentication (ignore saved session)
uv run nordpy --user <your-mitid-username> --force-login

[!NOTE] The first time you log in, you will be prompted to enter your CPR number as part of the MitID verification process. This is a one-time step required by MitID to link your identity — subsequent logins will skip this.

Headless Export

uv run nordpy --user <your-mitid-username> --export csv
uv run nordpy --user <your-mitid-username> --export xlsx
uv run nordpy --user <your-mitid-username> --export duckdb

Exported files are saved to the exports/ directory.

[!WARNING] Exported files contain sensitive financial data. Make sure the exports/ directory is not shared, synced to public cloud storage, or committed to version control. Keep your exports in a secure location accessible only to you.

Keybindings

Key Action
Enter Select account / drill into detail
e Export current view
r Refresh data
q / Esc Quit

Development

# Install dev dependencies
uv sync --dev

# Run tests
uv run pytest

# Run tests with coverage
uv run pytest --cov=nordpy --cov-report=term-missing

# Lint
uv run ruff check src/

# Type check
uv run ty check src/

License

This project is licensed under the MIT License.

Acknowledgments

This project includes code from MitID-BrowserClient by Hundter, licensed under the MIT License.

Credit also to Morten Helmstedt for the groundwork of looking into this.

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

nordpy-0.2.0.tar.gz (77.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nordpy-0.2.0-py3-none-any.whl (91.3 kB view details)

Uploaded Python 3

File details

Details for the file nordpy-0.2.0.tar.gz.

File metadata

  • Download URL: nordpy-0.2.0.tar.gz
  • Upload date:
  • Size: 77.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nordpy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 665f8792e080126f1722c23bb7ab587a6a014ece83f778923f56d89e42debd46
MD5 14e06cac4bbea5599666b0ec38f3c9a6
BLAKE2b-256 4a338d0274a85c1e3ddf36ef9c6426fcded47ac09fd5cd70f80f5908e3a2228d

See more details on using hashes here.

File details

Details for the file nordpy-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: nordpy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 91.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nordpy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 87ad34cb03510c1bc87a1a4449469370047db2a74f9c1f07e277ee1aef92ae86
MD5 fd7673387912319376e77123c5534e1c
BLAKE2b-256 32419e00615bd064583e8dc7037d687f4828f1621adc99409365c59bdcd5f50c

See more details on using hashes here.

Supported by

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