{"name":"Broker API Hub: Trading 212","page":"https://openbrokerapi.com/brokers/trading-212","file":"https://openbrokerapi.com/data/brokers/trading-212.json","generated":"2026-10-12","generatedBasis":"The newest checked date among the records in this file. It is not the date the file was built.","newestReading":"2026-10-12","newestReadingBasis":"The date the page prints as Newest reading: the newest checked date on the record itself, on its claims, on its limit and endpoint records and, for a platform, on a broker's note that it offers the platform. generated can be later, because this file also holds error, change and MCP records.","licence":"Mixed. Each section states its own licence. Sections from the registers are CC BY 4.0. Sections from the broker, platform, endpoint and error records are all rights reserved and are given for reference.","licenceUrl":"https://creativecommons.org/licenses/by/4.0/","cite":"Broker API Hub, Trading 212, openbrokerapi.com/brokers/trading-212, newest check 2026-10-12","note":"Independent and unofficial. An empty list or a null means this site holds no record. It does not mean that none exists. Every record carries its own source and checked date: cite those where you rely on a single figure.","identity":{"licence":"All rights reserved","leftOut":"The tagline, which is this site's own writing. It is on the page.","id":"trading-212","slug":"trading-212","name":"Trading 212","kind":"broker","nativeApi":null,"apiFamily":["REST"],"products":["Invest","ISA"],"availability":"active","legalEntity":null,"regulator":null,"docsUrl":"https://docs.trading212.com/api/section/rate-limiting","baseUrls":{"live":"https://live.trading212.com","demo":"https://demo.trading212.com"},"orderTypes":[],"sources":[{"url":"https://docs.trading212.com/api/section/authentication","title":"Trading 212 API docs","checked":"2026-10-12"},{"url":"https://helpcentre.trading212.com/hc/en-us/articles/14584770928157-Trading-212-API-key","title":"Trading 212 help centre: Trading 212 API key","checked":"2026-10-12"},{"url":"https://docs.trading212.com/api/section/rate-limiting","title":"Trading 212 API docs: rate limiting","checked":"2026-10-12"},{"url":"https://docs.trading212.com/api","title":"Trading 212 API docs: general information","checked":"2026-10-12"},{"url":"https://docs.trading212.com/api/section/general-information/api-environments","title":"Trading 212 API docs: API environments","checked":"2026-10-12"},{"url":"https://docs.trading212.com/api/accounts","title":"Trading 212 API docs: accounts","checked":"2026-10-12"}],"lastChecked":"2026-10-12","review":"ported"},"claims":{"licence":"All rights reserved","records":[{"key":"access_route","value":"On the web or in the app: menu, Settings, API (Beta), Generate API key. A risk warning must be accepted first. You then name the key, choose its permissions and choose whether to restrict it to given IP addresses. A key and a secret are issued, and the secret is shown once.","status":"verified","sources":[{"url":"https://helpcentre.trading212.com/hc/en-us/articles/14584770928157-Trading-212-API-key","title":"Trading 212 help centre: Trading 212 API key","checked":"2026-10-12"}]},{"key":"eligibility","value":"The docs say the API is enabled and usable only for the Invest and Stocks ISA account types.","status":"verified","sources":[{"url":"https://docs.trading212.com/api","title":"Trading 212 API docs: general information","checked":"2026-10-12"}]},{"key":"demo","value":"Yes: the docs name a paper trading (demo) environment on its own host, demo.trading212.com, beside the live host. Documented paths start /api/v0 on both.","status":"verified","sources":[{"url":"https://docs.trading212.com/api/section/general-information/api-environments","title":"Trading 212 API docs: API environments","checked":"2026-10-12"},{"url":"https://docs.trading212.com/api/accounts","title":"Trading 212 API docs: accounts","checked":"2026-10-12"}]},{"key":"auth","value":"HTTP Basic: Authorization header of Basic base64(API_KEY:API_SECRET).","status":"verified","sources":[{"url":"https://docs.trading212.com/api/section/authentication","title":"Trading 212 API docs: authentication","checked":"2026-10-12"}]},{"key":"streaming","value":"None documented. REST plus polling only.","status":"unverified","sources":[]},{"key":"rate_limits","value":"Per endpoint, applied per account whatever the API key or IP: for example account summary at 1 request every 5 seconds, with the reset time in an x-ratelimit-reset header.","status":"verified","sources":[{"url":"https://docs.trading212.com/api/section/rate-limiting","title":"Trading 212 API docs: rate limiting","checked":"2026-10-12"},{"url":"https://docs.trading212.com/api/accounts","title":"Trading 212 API docs: accounts","checked":"2026-10-12"}]}]},"platformApis":{"licence":"All rights reserved","records":[]},"sdks":{"licence":"All rights reserved","records":[]},"endpoints":{"licence":"All rights reserved","leftOut":"Parameters, request bodies, example responses and notes. Each is on the endpoint's page.","records":[{"method":"GET","path":"/api/v0/equity/account/summary","version":"v0","group":"Accounts","summary":"Cash and investment figures for the account: funds free to trade, cash reserved for pending orders, the value and cost of holdings, and the total.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/account-summary"},{"method":"GET","path":"/api/v0/equity/history/dividends","version":"v0","group":"History","summary":"Dividends paid into the account, paged, with the amount, the quantity held and the per share figure.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/history-dividends"},{"method":"GET","path":"/api/v0/equity/history/exports","version":"v0","group":"History","summary":"The CSV reports you have asked for and the status of each. Once a report is Finished its entry carries a link to download the file.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/history-exports"},{"method":"POST","path":"/api/v0/equity/history/exports","version":"v0","group":"History","summary":"Ask for a CSV report of account history over a period. The report is built in the background: the reply is a reportId to look for in the list of reports.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/post-history-exports"},{"method":"GET","path":"/api/v0/equity/history/orders","version":"v0","group":"History","summary":"Past orders on the account, paged, each paired with the fill it produced.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/history-orders"},{"method":"GET","path":"/api/v0/equity/history/transactions","version":"v0","group":"History","summary":"Movements of cash in and out of the account, paged: deposits, withdrawals, fees, transfers and interest.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/history-transactions"},{"method":"GET","path":"/api/v0/equity/metadata/exchanges","version":"v0","group":"Instruments","summary":"The exchanges the account can reach and the working schedules of each, which say when its instruments trade.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/metadata-exchanges"},{"method":"GET","path":"/api/v0/equity/metadata/instruments","version":"v0","group":"Instruments","summary":"Every instrument the account can reach, with its ticker, name, ISIN, type, currency and the working schedule it trades on.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/metadata-instruments"},{"method":"GET","path":"/api/v0/equity/orders","version":"v0","group":"Orders","summary":"Every order still active on the account, meaning not yet filled, cancelled or expired.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/orders"},{"method":"DELETE","path":"/api/v0/equity/orders/{id}","version":"v0","group":"Orders","summary":"Ask for a pending order to be cancelled. A success reply means the request was accepted, not that the order has gone: it may already be filling.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/delete-order"},{"method":"GET","path":"/api/v0/equity/orders/{id}","version":"v0","group":"Orders","summary":"One pending order, looked up by its numeric identifier. Use it to check on an order you placed earlier.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/order-by-id"},{"method":"POST","path":"/api/v0/equity/orders/limit","version":"v0","group":"Orders","summary":"Place a limit order, which fills at the limit price or better. The sign of quantity sets the direction.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/post-orders-limit"},{"method":"POST","path":"/api/v0/equity/orders/market","version":"v0","group":"Orders","summary":"Place a market order, to deal at the next available price. The sign of quantity sets the direction. If the market is closed the order waits for it to open.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/post-orders-market"},{"method":"POST","path":"/api/v0/equity/orders/stop","version":"v0","group":"Orders","summary":"Place a stop order, which becomes a market order once the last traded price reaches the stop price. The sign of quantity sets the direction.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/post-orders-stop"},{"method":"POST","path":"/api/v0/equity/orders/stop_limit","version":"v0","group":"Orders","summary":"Place a stop limit order: when the last traded price reaches the stop price, a limit order is placed at the limit price. The sign of quantity sets the direction.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/post-orders-stop-limit"},{"method":"GET","path":"/api/v0/equity/positions","version":"v0","group":"Positions","summary":"Every open position on the account, with quantity, average price paid, current price and the effect on the account in its own currency.","status":"verified","source":"https://docs.trading212.com/api","officialReference":"https://docs.trading212.com/api","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/trading-212/endpoints/positions"}]},"calls":{"licence":"All rights reserved","what":"Functions of a language binding and messages of a wire protocol: calls that are not HTTP requests, so they have no method and no path and are in no OpenAPI file.","leftOut":"Descriptions of arguments and fields, return values, samples and notes. Each is on the call's page.","records":[]},"limits":{"licence":"CC BY 4.0","register":"https://openbrokerapi.com/data/limits.json","structure":"structuredValue, structuredUnit and windowSeconds restate a limit as numbers where its own value and unit, or the opening of its text, state them outright: a count, optionally what is counted, and a window. They are read by a fixed pattern and are null wherever the pattern does not fit, so a null means not restated, not that there is no limit. windowSeconds is null for an allowance that is not a rate. structuredUnit is null where the wording does not name what is counted. A week is taken as 7 days. They add nothing to the record: value, unit, text and scope are unchanged and remain the record. A record whose status is conflicting has a second reading under conflict, which these fields do not restate.","records":[{"id":"trading-212.headline","broker":"trading-212","name":"Headline limit","value":null,"text":"1 req/5s, account summary (example)","unit":null,"scope":"account","source":"https://docs.trading212.com/api/section/rate-limiting","alsoSources":[],"checked":"2026-10-12","status":"verified","conflict":null,"note":"Limits are set per endpoint and applied per account; this is the account summary example from the docs, not a single global figure. A different endpoint on the same docs page carries a much higher limit, order placement (POST market order) at 50 requests a minute, about one call every 1.2 seconds, shown elsewhere on this site's re-verified note dated 23 Sep 2026. The two figures are not a contradiction: they are two different endpoints on one rate-limiting page, read account summary 22 Sep 2026 and order placement 23 Sep 2026. Build a rate limiter against the endpoint you actually call, not against either figure alone.","structuredValue":1,"structuredUnit":"requests","windowSeconds":5}]},"errors":{"licence":"All rights reserved","leftOut":"The meaning and the fix of each error. They are this site's own writing, which the open licence does not cover, so each record gives the address of the page that holds them.","index":"https://openbrokerapi.com/errors/trading-212","register":"https://openbrokerapi.com/data/errors.json","records":[{"code":"Bad filtering arguments","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://docs.trading212.com/api/historical-events/orders_1.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/trading-212/400-bad-filtering-arguments"},{"code":"Failed validation","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://docs.trading212.com/api/orders/placemarketorder.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/trading-212/400-failed-validation"},{"code":"HTTP 401","http":401,"category":"api-error","rateLimit":null,"status":"verified","source":"https://docs.trading212.com/api/accounts/getaccountsummary","checked":"2026-09-21","page":"https://openbrokerapi.com/errors/trading-212/401-invalid-api-key"},{"code":"HTTP 403","http":403,"category":"api-error","rateLimit":null,"status":"unverified","source":"https://docs.trading212.com/api/accounts/getaccountsummary","checked":"2026-09-21","page":"https://openbrokerapi.com/errors/trading-212/403-missing-scope"},{"code":"HTTP 429","http":429,"category":"api-error","rateLimit":true,"status":"verified","source":"https://docs.trading212.com/api/section/rate-limiting","checked":"2026-09-21","page":"https://openbrokerapi.com/errors/trading-212/429-rate-limit"},{"code":"Missing Permissions","http":403,"category":"api-error","rateLimit":null,"status":"verified","source":"https://docs.trading212.com/api/historical-events/requestreport.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/trading-212/403-missing-permissions"},{"code":"Order not found","http":404,"category":"api-error","rateLimit":null,"status":"verified","source":"https://docs.trading212.com/api/orders/cancelorder.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/trading-212/404-order-not-found"},{"code":"Timed-out","http":408,"category":"api-error","rateLimit":null,"status":"verified","source":"https://docs.trading212.com/api/orders/placemarketorder.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/trading-212/408-timed-out"}]},"mcpServers":{"licence":"CC BY 4.0","page":"https://openbrokerapi.com/ai/mcp-directory","register":"https://openbrokerapi.com/data/mcp-servers.json","records":[{"id":"t212-official","name":"Trading 212 Agent Skill","vendor":"Trading 212","owner":"trading-212","official":true,"officialNote":"Official, and an agent skill rather than an MCP server. Announced by Momchil.G on 4 February 2026. Compatible with Claude Code, OpenClaw, Clawdbot and Cursor.","can":"Portfolio and account summaries, instrument search, positions and P&L, historical transactions and orders, exchange schedules, and order placement: it can buy and sell shares via market, limit, stop and stop limit orders.","placesOrders":true,"posture":"open","postureNote":"No gating is described. Demo and live are selected by an environment variable. The repository's own warning is the safeguard.","custody":"local","custodyNote":"T212_API_KEY and T212_API_SECRET in environment variables. Keys are generated in the Trading 212 app.","demo":null,"demoNote":null,"maintained":"MIT, 89 stars, 5 forks, 7 commits.","sources":[{"url":"https://github.com/trading212-labs/agent-skills","title":"trading212-labs/agent-skills","checked":"2026-09-24"},{"url":"https://community.trading212.com/t/trading-212s-api-can-now-integrate-with-ai/90278","title":"Trading 212 community announcement","checked":"2026-09-24"}],"checked":"2026-09-24"},{"id":"t212-community","name":"trading212-mcp","vendor":"t0knight, community","owner":"trading-212","official":false,"officialNote":"Community alternative to the official Trading 212 skill.","can":"Full API coverage, with market, limit, stop and stop limit orders in demo and live.","placesOrders":true,"posture":"open","postureNote":"One good pattern: the environment is fixed at server startup and cannot be changed by the client. But the server has no authentication and no transport encryption, runs over HTTP, and is localhost only.","custody":"local","custodyNote":"Localhost only, but with no authentication and no transport encryption on the server itself.","demo":null,"demoNote":null,"maintained":"MIT, 0 stars, one commit.","sources":[{"url":"https://github.com/t0knight/trading212-mcp","title":"t0knight/trading212-mcp","checked":"2026-09-24"}],"checked":"2026-09-24"}],"noneFound":[]},"partnerProgramme":{"licence":"CC BY 4.0","register":"https://openbrokerapi.com/data/programmes.json","page":"https://openbrokerapi.com/partners/trading-212","record":{"id":"trading-212","firm":"Trading 212","programmeType":"none-found","pagesOpened":["https://www.trading212.com/partnerships"],"publishedFigure":null,"figureAsWorded":"no published figure","figureIsCeiling":false,"figureNote":"No programme was found on the page opened this cycle.","restrictionsForPublishers":"No publisher facing programme terms were found on the page opened this cycle.","documentsNotOpened":null,"checked":"2026-10-05","verification":"page-opened"}},"changes":{"licence":"CC BY 4.0","page":"https://openbrokerapi.com/changes","register":"https://openbrokerapi.com/data/changes.json","checkedMeans":"checked is the day the source was last opened. It is null where the register does not record one: read that as not recorded.","records":[{"id":"trading-212-2026-10-12-71","date":"2026-10-12","kind":"docs","text":"Trading 212's API docs, read on 12 Oct 2026, name two environments: paper trading on demo.trading212.com and live on live.trading212.com, with every documented path starting /api/v0. This site had recorded only the live address and had the demo host as not settled. Both hosts are now recorded, without the /api/v0 prefix because the paths carry it. The way to build the Basic header is now sourced to the docs, since the help centre article cited before describes how to generate a key but not the header.","source":"https://docs.trading212.com/api/section/general-information/api-environments","sourceTitle":"Trading 212 API docs: API environments","checked":"2026-10-12"}]}}