Trading 212 wallets, ISA allowance and pie holdings
Trading 212: Stocks, ETFs, ISA is Trading 212's Android brokerage for European retail investors. After email or SSO sign-in, customers switch between Invest, Stocks ISA, Cash ISA, SIPP, CFD and Crypto accounts, place commission-free stock and ETF tickets (including value orders), build AutoInvest pies, borrow shares for lending income, park uninvested cash on daily interest, spend on a 212 debit card with cashback and round-ups, and fund or withdraw over bank transfer, Adyen cards and Google Pay. Charts (including TradingView), watchlists, economic calendar, share-lending and in-app support sit around the order ticket. The client ships as com.avuscapital.trading212 (build 8.52.0) under dealers AVUS, AVUS_UK and T212_CY, competing with Trade Republic, Scalable Capital, eToro and Revolut Invest in Germany, France, Spain and the wider EEA.
Invest-account freeFunds sit beside blockedFunds and pendingDeposit on the cash strip, while a Stocks ISA row carries isaAllowance against the current taxYear. AutoInvest pies expose each slice as ticker, quantity, actualWeight and targetWeight with unrealised ppl; CFD summaries add equity, margin and leverage. Share-lending stamps annualPercentYield on lent inventory, and a 212 card reports cardStatus with cardLastFour.
Tax-wrapper bots, pie rebalancers, CFD margin desks and card-spend monitors consume those fields. openData Studio turns them into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Mobile sign-in
POST
/v1/sessions/mobile-signinopenbankingExchanges email plus password (or a stored loginToken) for customerSession / accountSession cookies, the customer row (uuid, dealer, lang) and the current account (tradingType, currencyCode, readyToTrade).
Auth: Unauthenticated. Email plus password (or a stored login token / SSO) in the sign-in body. The response's customerSession and accountSession are kept as a session cookie; later calls also send a client-descriptor header (platform, app version, accountId).
- password
- rememberMe
- customerSession
- accountSession
- loginToken
- backupCode
- serverTimestamp
- customer.id
- customer.uuid
- customer.email
- customer.dealer
- customer.lang
- customer.registerDate
- account.id
- account.type
- account.tradingType
- account.status
- account.currencyCode
- account.readyToTrade
- account.createdDate
- account.lastSwitchedDate
- account.registerSource
POST /v1/sessions/mobile-signin HTTP/1.1 Content-Type: application/json X-Client-Info: platform=android,appVersion=8.52 { "email": "[email protected]", "password": "••••••••", "rememberMe": true }{ "customerSession": "sess-c-7f21a9", "accountSession": "sess-a-3c90e1", "loginToken": "lt-9b12d4", "backupCode": null, "serverTimestamp": "2026-10-21T08:14:02.511Z", "customer": { "id": 18492011, "uuid": "6e3c1a52-71b4-4e08-8d2a-5c0e1f7b3a64", "email": "[email protected]", "dealer": "AVUS_UK", "lang": "en", "registerDate": "2019-03-12T10:22:00.000Z" }, "account": { "id": 55210188, "type": "EQ", "tradingType": "INVEST", "status": "ACTIVE", "currencyCode": "EUR", "readyToTrade": true, "createdDate": "2019-03-12T10:22:11.000Z", "lastSwitchedDate": "2026-10-21T08:14:02.000Z", "registerSource": "MOBILE" } }Switch trading account
POST
/v1/sessions/active-accountopenbankingSwitches the live session onto another account the customer holds (Invest, Stocks ISA, Cash ISA, SIPP, CFD or Crypto) and returns a fresh accountSession plus readyToTrade / currencyCode.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- accountId
- tradingType
- accountSession
- account.id
- account.type
- account.status
- account.currencyCode
- account.readyToTrade
- account.lastSwitchedDate
POST /v1/sessions/active-account HTTP/1.1 Cookie: session=sess-a-3c90e1 X-Client-Info: platform=android,appVersion=8.52,accountId=55210188 Content-Type: application/json { "accountId": 55218801, "tradingType": "ISA" }{ "accountSession": "sess-a-8e22c0", "account": { "id": 55218801, "type": "EQ", "tradingType": "ISA", "status": "ACTIVE", "currencyCode": "GBP", "readyToTrade": true, "lastSwitchedDate": "2026-10-21T08:15:44.000Z" } }Invest account wallets
GET
/v1/accounts/invest/cashopenbankingReads per-currency Invest cash wallets: freeFunds available to trade, blockedFunds reserved for open orders, pendingDeposit in flight, and total cash.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- wallets
- currencyCode
- freeFunds
- blockedFunds
- pendingDeposit
- cash
GET /v1/accounts/invest/cash HTTP/1.1 Cookie: session=sess-a-3c90e1 X-Client-Info: platform=android,appVersion=8.52,accountId=55210188{ "wallets": [ { "currencyCode": "EUR", "freeFunds": 4210.55, "blockedFunds": 180.00, "pendingDeposit": 0.00, "cash": 4390.55 }, { "currencyCode": "USD", "freeFunds": 850.10, "blockedFunds": 0.00, "pendingDeposit": 200.00, "cash": 1050.10 } ] }Cash ISA summary
GET
/v1/wrappers/cash-isa/overviewopenfinanceReads the Cash ISA home: cash on the wrapper, current-tax-year isaAllowance, remaining allowanceLeft, taxYear and the advertised AER.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call. Account must be switched to a Cash ISA account type.
- cashIsaSummary
- currencyCode
- cash
- isaAllowance
- allowanceLeft
- taxYear
- aer
GET /v1/wrappers/cash-isa/overview HTTP/1.1 Cookie: session=sess-a-8e22c0 X-Client-Info: platform=android,appVersion=8.52,accountId=55218801{ "cashIsaSummary": { "currencyCode": "GBP", "cash": 12500.00, "isaAllowance": 20000.00, "allowanceLeft": 7500.00, "taxYear": "2026/27", "aer": 0.038 } }SIPP contributions
GET
/v1/wrappers/sipp/contributionsopenfinanceReads SIPP contributions for the current tax year: thisYear paid in, taxRelief claimed, and remainingDepositLimit still open on the wrapper.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call. Account must be a SIPP.
- sippAccountId
- sippContribution
- thisYear
- taxRelief
- remainingDepositLimit
- taxYear
- currencyCode
GET /v1/wrappers/sipp/contributions HTTP/1.1 Cookie: session=sess-a-91bb04 X-Client-Info: platform=android,appVersion=8.52,accountId=55219002{ "sippAccountId": 55219002, "sippContribution": { "thisYear": 4800.00, "taxRelief": 1200.00, "remainingDepositLimit": 31200.00, "taxYear": "2026/27", "currencyCode": "GBP" } }Crypto account summary
GET
/v1/accounts/crypto/overviewopenfinanceReads the Crypto account home: summaryValue in account currency, per-asset wallets (ticker, quantity, value) and any lockedQuantities.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call. Account type Crypto.
- currencyCode
- summaryValue
- wallets
- ticker
- quantity
- value
- lockedQuantities
GET /v1/accounts/crypto/overview HTTP/1.1 Cookie: session=sess-a-c4aa11 X-Client-Info: platform=android,appVersion=8.52,accountId=55220110{ "currencyCode": "EUR", "summaryValue": 3120.40, "wallets": [ { "ticker": "BTCcrypto", "quantity": 0.0215, "value": 1980.10 }, { "ticker": "ETH", "quantity": 0.40, "value": 1140.30 } ], "lockedQuantities": [] }CFD account summary
GET
/v1/accounts/cfd/overviewopenfinanceReads the CFD account strip: equity, freeFunds versus blockedFunds, unrealised ppl, margin in use and the account leverage.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call. Account type CFD.
- currencyCode
- equity
- freeFunds
- blockedFunds
- ppl
- margin
- leverage
- readyToTrade
GET /v1/accounts/cfd/overview HTTP/1.1 Cookie: session=sess-a-d7ee20 X-Client-Info: platform=android,appVersion=8.52,accountId=55221044{ "currencyCode": "EUR", "equity": 15420.88, "freeFunds": 9800.12, "blockedFunds": 2100.00, "ppl": 312.40, "margin": 3520.76, "leverage": 5, "readyToTrade": true }AutoInvest pie holdings
GET
/v1/portfolios/pies/holdingsopenfinanceLists AutoInvest pie slices: pieId plus per-instrument ticker / isin, quantity at averagePrice versus currentPrice, unrealised ppl, and actualWeight against targetWeight.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- holdings
- pieId
- ticker
- isin
- quantity
- averagePrice
- currentPrice
- ppl
- actualWeight
- targetWeight
GET /v1/portfolios/pies/holdings HTTP/1.1 Cookie: session=sess-a-3c90e1 X-Client-Info: platform=android,appVersion=8.52,accountId=55210188{ "holdings": [ { "pieId": "pie-8f21c4", "ticker": "VUSAd_EQ", "isin": "IE00B3XXRP09", "quantity": 42.15, "averagePrice": 88.40, "currentPrice": 91.22, "ppl": 118.86, "actualWeight": 0.41, "targetWeight": 0.40 }, { "pieId": "pie-8f21c4", "ticker": "AAPLd_EQ", "isin": "US0378331005", "quantity": 6.00, "averagePrice": 172.10, "currentPrice": 189.55, "ppl": 104.70, "actualWeight": 0.22, "targetWeight": 0.20 } ] }Equity value-order review
POST
/v1/orders/value/previewopenfinancePreviews a commission-free equity value order before submit: converts value into estimated quantity at currentPrice and itemises cost, fxFee and commission.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- ticker
- instrumentCode
- isin
- side
- value
- quantity
- currentPrice
- cost
- fxFee
- commission
- orderType
POST /v1/orders/value/preview HTTP/1.1 Cookie: session=sess-a-3c90e1 X-Client-Info: platform=android,appVersion=8.52,accountId=55210188 Content-Type: application/json { "ticker": "AAPLd_EQ", "side": "BUY", "value": 500.00, "currencyCode": "EUR" }{ "ticker": "AAPLd_EQ", "instrumentCode": "AAPLd_EQ", "isin": "US0378331005", "side": "BUY", "value": 500.00, "quantity": 2.637, "currentPrice": 189.55, "cost": 500.00, "fxFee": 0.75, "commission": 0.00, "orderType": "VALUE" }Open positions
GET
/v1/positions/{positionId}openfinanceReads one open CFD (or Invest) position: ticker, side, quantity at averagePrice versus currentPrice, unrealised ppl, margin and leverage.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- positionId
- ticker
- side
- quantity
- averagePrice
- currentPrice
- ppl
- margin
- leverage
- currencyCode
GET /v1/positions/pos-441902 HTTP/1.1 Cookie: session=sess-a-d7ee20 X-Client-Info: platform=android,appVersion=8.52,accountId=55221044{ "positionId": "pos-441902", "ticker": "EURUSD", "side": "BUY", "quantity": 10000, "averagePrice": 1.08410, "currentPrice": 1.08740, "ppl": 33.00, "margin": 216.82, "leverage": 30, "currencyCode": "EUR" }Interest on cash status
GET
/v1/cash/interest-statusopenfinanceReads whether interest-on-cash is ENABLED, the per-currency interestRate / apy, uninvestedCash the rate applies to, and today's dailyInterest.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- status
- currencyCode
- interestRate
- apy
- uninvestedCash
- dailyInterest
- eligibility
GET /v1/cash/interest-status HTTP/1.1 Cookie: session=sess-a-3c90e1 X-Client-Info: platform=android,appVersion=8.52,accountId=55210188{ "status": "ENABLED", "currencyCode": "EUR", "interestRate": 0.0205, "apy": 0.0207, "uninvestedCash": 4210.55, "dailyInterest": 0.24, "eligibility": true }Share-lending account status
GET
/v1/lending/statusopenfinanceReads share-lending enrolment: ENABLED/OFF status, account-level annualPercentYield, lentValue of inventory on loan and estimatedMonthlyIncome, plus per-ticker quantity still lent.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- status
- annualPercentYield
- lentValue
- estimatedMonthlyIncome
- instruments
- ticker
- quantity
GET /v1/lending/status HTTP/1.1 Cookie: session=sess-a-3c90e1 X-Client-Info: platform=android,appVersion=8.52,accountId=55210188{ "status": "ENABLED", "annualPercentYield": 0.012, "lentValue": 8420.00, "estimatedMonthlyIncome": 8.40, "instruments": [ { "ticker": "AAPLd_EQ", "quantity": 6.00, "annualPercentYield": 0.018 } ] }Withdrawable total cash
GET
/v1/funds/withdrawableopenbankingReads cash available to start a withdrawal: totalCash on the account versus freeFunds already unblocked.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- currencyCode
- totalCash
- freeFunds
- blockedFunds
GET /v1/funds/withdrawable HTTP/1.1 Cookie: session=sess-a-3c90e1 X-Client-Info: platform=android,appVersion=8.52,accountId=55210188{ "currencyCode": "EUR", "totalCash": 4390.55, "freeFunds": 4210.55, "blockedFunds": 180.00 }Deposit bank accounts
GET
/v1/funds/deposit-accountsopenbankingLists the customer's saved deposit bank accounts (iban, swiftCode, paymentProviderId) together with the slider depositLimit (min / max / defaultValue / recurringMin).
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- bankAccounts
- id
- iban
- swiftCode
- paymentProviderId
- currencyCode
- depositLimit
- min
- max
- defaultValue
- maxSlider
- recurringMin
GET /v1/funds/deposit-accounts HTTP/1.1 Cookie: session=sess-a-3c90e1 X-Client-Info: platform=android,appVersion=8.52,accountId=55210188{ "bankAccounts": [ { "id": 901122, "iban": "BG80BNBG96611020345678", "swiftCode": "BNBGDBGXXXX", "paymentProviderId": 14, "currencyCode": "EUR" } ], "depositLimit": { "min": 10.0, "max": 50000.0, "defaultValue": 100.0, "maxSlider": 10000.0, "recurringMin": 50.0 } }212 card status
GET
/v1/cards/{cardId}/stateopenbankingReads one 212 debit card: cardStatus (ACTIVE / Frozen / Terminated) and cardLastFour used when pushing the card into Google Wallet.
Auth: Session cookie plus client-descriptor header obtained from the sign-in call.
- cardId
- cardStatus
- cardLastFour
- displayName
GET /v1/cards/crd-220198/state HTTP/1.1 Cookie: session=sess-a-3c90e1 X-Client-Info: platform=android,appVersion=8.52,accountId=55210188{ "cardId": "crd-220198", "cardStatus": "ACTIVE", "cardLastFour": "4412", "displayName": "212 Card" }
Data categories
- session cookies
- multi-account switch
- invest wallets
- ISA allowance
- SIPP contributions
- crypto wallets
- CFD margin
- pie holdings
- equity orders
- open positions
- cash interest
- share lending
- withdrawals
- deposit IBANs
- debit cards
Where teams use this data
ISA headroom versus Invest freeFunds
A tax-wrapper bot reads isaAllowance and allowanceLeft on the Cash ISA summary, then compares Invest freeFunds so a transfer into the Stocks ISA does not overshoot the current taxYear cap.
Pie actualWeight versus targetWeight
A rebalance job pages AutoInvest holdings and flags slices whose actualWeight drifted from targetWeight, using quantity, averagePrice and currentPrice to size the buy or sell ticket.
CFD margin versus equity
A risk desk watches CFD equity, margin, leverage and unrealised ppl against freeFunds so a margin call is raised before blockedFunds consume the account.
Share-lending yield versus lent inventory
An income monitor joins annualPercentYield and lentValue from share-lending status with per-ticker quantity still on loan, then nets dailyInterest from the cash-interest strip.
Frequently asked questions
How does Trading 212 authenticate a session?
POST /v1/sessions/mobile-signin returns customerSession and accountSession, which the client keeps as a session cookie. Every later call also carries a client-descriptor header with the platform, app version and accountId. POST /v1/sessions/active-account issues a fresh accountSession when the customer moves between Invest, ISA, SIPP, CFD and Crypto.
Which fields split Invest cash from an ISA wrapper?
GET /v1/accounts/invest/cash returns per-currency freeFunds, blockedFunds, pendingDeposit and cash. GET /v1/wrappers/cash-isa/overview is the wrapper view: isaAllowance, allowanceLeft and taxYear on cashIsaSummary. SIPP money is a third bucket at GET /v1/wrappers/sipp/contributions (thisYear, taxRelief, remainingDepositLimit).
How are AutoInvest pies marked to market?
GET /v1/portfolios/pies/holdings lists each slice with ticker, isin, quantity, averagePrice, currentPrice, unrealised ppl, actualWeight and targetWeight. A rebalance job sizes tickets from the weight gap; equity value orders are previewed first at POST /v1/orders/value/preview (value, estimated quantity, fxFee, commission).
What CFD and lending fields sit next to the cash strip?
GET /v1/accounts/cfd/overview returns equity, margin, leverage and ppl. Individual tickets load at GET /v1/positions/{positionId} with averagePrice versus currentPrice. Share-lending status at GET /v1/lending/status adds annualPercentYield and lentValue; cash interest at GET /v1/cash/interest-status adds apy and dailyInterest on uninvestedCash.
Apps similar to Trading 212: Stocks, ETFs, ISA
- Trade Republic: Broker & Bank — Trade Republic is a Berlin online broker and bank whose mobile app offers stock and ETF brokerage, and after a 2023 European Central Bank banking licence it added savings and current-account products.
- Scalable Capital — Scalable Capital is a Munich digital investment platform and bank whose services include self-directed brokerage, wealth management, savings plans and deposits, and it is active in Germany, Austria, France, Italy, Spain and the Netherlands.
- eToro — eToro is an Israeli multi-asset brokerage whose electronic platform and CopyTrader social system cover stocks, CFDs, commodities, currencies and cryptoassets for retail clients across dozens of countries.
- Revolut — Revolut is a London neobank whose app launched in-app share trading for European customers in 2019 and, after a 2024 UK trading licence, expanded that offering to UK and EU-listed stocks and ETFs.
- DEGIRO — DEGIRO is a Dutch online brokerage brand, now the Dutch branch of Flatexdegiro Bank, that lets retail investors trade securities on international markets from a platform launched in the Netherlands in 2013 and later rolled out across Europe.
- Freetrade — Freetrade is a UK mobile trading platform, acquired by IG Group in 2025, that lets retail investors trade equities and ETFs through iOS and Android apps.
- Interactive Brokers — Interactive Brokers is a Greenwich, Connecticut brokerage that provides automated execution and custody for stocks, options, futures, FX, bonds and funds on electronic markets worldwide.
- Plus500 — Plus500 is a Haifa-headquartered multi-asset fintech that offers CFDs, share dealing, futures, prediction markets and options on futures through web and mobile apps.
Topics
- Trading 212 API
- freeFunds
- isaAllowance
- AutoInvest pie holdings
- CFD margin
- share lending
- 212 card
- Trading 212 ISA data
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use