All guides

How to Sync Trading 212 to Notion

There are two ways to get your Trading 212 holdings into a Notion database that's actually useful: rebuild it by hand every so often, or wire it up once so it updates itself. Here's both.

Option 1: the manual database

This works fine if you check in weekly rather than daily. Create a Notion database with these properties — this is the schema that holds up over time without needing to be redesigned:

  • Asset — title property, the ticker or company name
  • Currency — select (USD / EUR / GBP)
  • Price — number
  • Quantity — number
  • Value — a formula property: prop("Price") * prop("Quantity")
  • Last Updated — date, so you can tell at a glance how stale a row is

Trading 212 doesn't have a built-in CSV export for live positions (only for historical orders), so updating this means opening the app and re-typing price and quantity per holding. Fine for a handful of positions checked occasionally; tedious past that.

Option 2: an API-driven sync

Trading 212 has a public API (Settings → API (Beta) in the app) that returns your live portfolio as JSON — no scraping, no CSV. To build something against it yourself:

  • Create a key with the portfolio scope, read-only
  • Auth is HTTP Basic — Key ID as the username, Secret Key as the password. (Most examples floating around treat it as a bare bearer token; that 401s. It's Basic auth.)
  • GET /api/v0/equity/portfolio returns your current positions
  • Write each position into the Notion database above via the Notion API (POST /v1/pages for new rows, PATCH /v1/pages/{id} to update existing ones, matched by ticker)
  • Run it on a schedule — a daily cron job is enough for most people; markets don't need second-by-second tracking in a Notion page

The one setting worth knowing about ahead of time: if you turn on the key's optional IP restriction, it will silently block any server that isn't running from that fixed address — including most cron/serverless hosts, which don't have one. Leave it off unless you're running the sync from a machine with a static IP.

Or skip building it

This is exactly what PortfolioSync automates — connect Trading 212 once, pick Notion as the destination, and it creates the database and keeps it updated every morning. Read-only the whole way through; it can never place a trade.

Or skip the manual setup — PortfolioSync keeps this synced automatically, every morning.

Get started — €8.90/mo