{"name":"Broker API Hub: Saxo OpenAPI","page":"https://openbrokerapi.com/brokers/saxo","file":"https://openbrokerapi.com/data/brokers/saxo.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, Saxo OpenAPI, openbrokerapi.com/brokers/saxo, 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":"saxo","slug":"saxo","name":"Saxo OpenAPI","kind":"broker","nativeApi":true,"apiFamily":["REST","WebSocket streaming"],"products":[],"availability":"active","legalEntity":null,"regulator":null,"docsUrl":"https://www.developer.saxo/openapi/learn","baseUrls":{"live":"https://gateway.saxobank.com/openapi","demo":"https://gateway.saxobank.com/sim/openapi","stream_live":"https://live-streaming.saxobank.com/oapi/streaming/ws","stream_demo":"https://sim-streaming.saxobank.com/sim/oapi/streaming/ws"},"orderTypes":["Market","Limit","Stop","Stop limit","OCO"],"sources":[{"url":"https://www.developer.saxo/openapi/learn","title":"Getting started, Saxo OpenAPI","checked":"2026-09-20"},{"url":"https://openapi.help.saxo/hc/en-us/articles/4416505486481-Can-I-use-OpenAPI-for-personal-use","title":"Saxo Support: personal use","checked":"2026-09-21"},{"url":"https://www.developer.saxo/openapi/learn/direct-clients-request-for-openapi-application-credentials-for-the-live-environ","title":"Saxo Developer Portal: Live app credentials","checked":"2026-09-22"},{"url":"https://www.developer.saxo/openapi/learn/environments","title":"Saxo OpenAPI: environments","checked":"2026-09-23"},{"url":"https://www.developer.saxo/openapi/learn/rate-limiting","title":"Saxo OpenAPI: rate limiting","checked":"2026-09-23"},{"url":"https://github.com/SaxoBank","title":"SaxoBank on GitHub","checked":"2026-09-21"},{"url":"https://pypi.org/project/saxo-openapi/","title":"PyPI saxo-openapi (community source)","checked":"2026-09-21"},{"url":"https://www.developer.saxo/openapi/learn/security","title":"Saxo OpenAPI: security","checked":"2026-09-20"},{"url":"https://openapi.help.saxo/hc/en-us/articles/4417065320977-How-many-samples-can-be-returned-at-a-time","title":"Saxo OpenAPI Support: How many samples can be returned at a time?","checked":"2026-09-22"},{"url":"https://www.developer.saxo/openapi/learn/chart","title":"Saxo Developer Portal: Chart","checked":"2026-09-22"},{"url":"https://www.developer.saxo/openapi/referencedocs/cs/v1/historicalreportdata-trades","title":"Saxo Developer Portal: Historical Report Data, Trades","checked":"2026-09-22"},{"url":"https://www.developer.saxo/openapi/learn/order-placement","title":"Saxo Developer Portal: Order placement","checked":"2026-09-22"},{"url":"https://www.home.saxo/en-gb/campaigns/affiliate","title":"Saxo Affiliate Program, Saxo UK","checked":"2026-09-22"},{"url":"https://github.com/SirAdlerBD/saxo-mcp","title":"GitHub: SirAdlerBD/saxo-mcp","checked":"2026-09-22"},{"url":"https://github.com/nohikomiso/mcp-server-saxo-openapi","title":"GitHub: nohikomiso/mcp-server-saxo-openapi","checked":"2026-09-22"},{"url":"https://www.help.saxo/hc/en-us/articles/360022686632-Does-Saxo-offer-the-MetaTrader-platform","title":"Does Saxo offer the MetaTrader platform? (Saxo help centre)","checked":"2026-09-22"},{"url":"https://www.home.saxo/en-gb/platforms","title":"Saxo UK platforms","checked":"2026-09-22"},{"url":"https://www.developer.saxo/openapi/releasenotes/planned-changes","title":"Saxo OpenAPI, planned changes","checked":"2026-09-22"},{"url":"https://www.developer.saxo/openapi/learn/streaming","title":"Saxo: streaming","checked":"2026-09-22"},{"url":"https://www.developer.saxo/openapi/learn/plain-websocket-streaming","title":"Saxo: plain WebSocket streaming","checked":"2026-09-22"},{"url":"https://www.developer.saxo/openapi/releasenotes/completed-planned-changes","title":"Completed and planned changes, Saxo OpenAPI","checked":"2026-09-21"},{"url":"https://www.developer.saxo/openapi/learn/oauth-authorization-code-grant","title":"Saxo OAuth authorization code grant","checked":"2026-09-20"},{"url":"https://www.developer.saxo/openapi/learn/writing-an-openapi-application","title":"Writing an OpenAPI application","checked":"2026-09-20"},{"url":"https://www.developer.saxo/openapi/learn/release-notes","title":"Saxo OpenAPI, release notes","checked":"2026-09-22"},{"url":"https://www.developer.saxo/openapi/releasenotes","title":"Saxo: OpenAPI release notes","checked":"2026-09-24"},{"url":"https://fxnewsgroup.com/forex-news/platforms/saxo-to-upgrade-underlying-architecture-supporting-websocket-streaming-of-openapi/","title":"FX News Group: Saxo websocket architecture upgrade","checked":"2026-09-24"},{"url":"https://www.home.saxo/campaigns/affiliate","title":"Saxo Affiliate Program, Saxo","checked":"2026-09-25"},{"url":"https://openapi.help.saxo/hc/en-us/articles/4416513424913-Am-I-allowed-to-create-a-commercial-app","title":"Am I allowed to create a commercial app, Saxo OpenAPI help","checked":"2026-09-25"}],"lastChecked":"2026-09-24","review":"ported"},"claims":{"licence":"All rights reserved","records":[{"key":"access_route","value":"Create a developer portal account for SIM (24 hour token or registered app); apply for live app credentials after testing.","status":"verified","sources":[{"url":"https://www.developer.saxo/openapi/learn","title":"Saxo OpenAPI Learn","checked":"2026-09-20"}]},{"key":"eligibility","value":"Direct retail and professional clients may use it for personal use; a live account must be funded before creating a live app. The approval criteria for a retail live environment are unverified: the environments and security pages read on 19 Sep 2026 say live requires permission and testing before deployment but do not state what is required.","status":"verified","sources":[{"url":"https://openapi.help.saxo/hc/en-us/articles/4416505486481-Can-I-use-OpenAPI-for-personal-use","title":"Saxo Support: personal use","checked":"2026-09-21"}]},{"key":"demo","value":"Yes: SIM environment; 24 hour portal tokens work in SIM only.","status":"verified","sources":[{"url":"https://www.developer.saxo/openapi/learn/environments","title":"Saxo Environments","checked":"2026-09-20"}]},{"key":"auth","value":"OAuth 2.0 authorization code (with or without PKCE); app key and secret for live. Refresh tokens rotate: each is invalidated on use and replaced. Certificate-based auth is for select partners only, not retail.","status":"verified","sources":[{"url":"https://www.developer.saxo/openapi/learn","title":"Saxo OpenAPI Learn","checked":"2026-09-20"}]},{"key":"streaming","value":"WebSocket streaming (SIM and live hosts). The connection allowance and the instrument cap are unverified as of 20 Sep 2026: the streaming pages no longer publish either figure and say only that the number of WebSocket connections depends on the throttling profile assigned to the application.","status":"verified","sources":[{"url":"https://www.developer.saxo/openapi/learn/environments","title":"Saxo Environments","checked":"2026-09-21"}]},{"key":"history_depth","value":"Chart samples max 1,200 per request; some FX data back to 2002. Trades report takes FromDate and ToDate with no stated limit.","status":"verified","sources":[{"url":"https://openapi.help.saxo/hc/en-us/articles/4417065320977-How-many-samples-can-be-returned-at-a-time","title":"Saxo OpenAPI Support: How many samples can be returned at a time?","checked":"2026-09-22"}]},{"key":"rate_limits","value":"10,000,000 requests a day per app; 120 a minute per session per service group; 1 order a second per session; a duplicate order inside 15 seconds is rejected with HTTP 409. Read 23 Sep 2026.","status":"verified","sources":[{"url":"https://www.developer.saxo/openapi/learn/rate-limiting","title":"Saxo OpenAPI: rate limiting","checked":"2026-09-23"}]}]},"platformApis":{"licence":"All rights reserved","records":[{"platform":"metatrader-4","available":false,"entity":"Saxo (group help centre)","note":"Help centre states: 'Saxo does not offer MetaTrader (MT4) platform.' Saxo points clients to SaxoTrader and its OpenAPI instead.","status":"verified","source":"https://www.help.saxo/hc/en-us/articles/360022686632-Does-Saxo-offer-the-MetaTrader-platform","sourceTitle":"Does Saxo offer the MetaTrader platform? (Saxo help centre)","checked":"2026-09-18"},{"platform":"metatrader-5","available":false,"entity":"Saxo UK","note":"MT5 not listed on the broker's UK platforms page; absence from an overview page is not proof, so unverified.","status":"unverified","source":"https://www.home.saxo/en-gb/platforms","sourceTitle":"Saxo UK platforms","checked":"2026-09-18"},{"platform":"ctrader-open-api","available":false,"entity":"Saxo UK","note":"cTrader not listed on the broker's UK platforms page; absence from an overview page is not proof, so unverified.","status":"unverified","source":"https://www.home.saxo/en-gb/platforms","sourceTitle":"Saxo UK platforms","checked":"2026-09-18"},{"platform":"tradelocker","available":false,"entity":"Saxo UK","note":"TradeLocker not listed on the broker's UK platforms page; absence from an overview page is not proof, so unverified.","status":"unverified","source":"https://www.home.saxo/en-gb/platforms","sourceTitle":"Saxo UK platforms","checked":"2026-09-18"},{"platform":"match-trader","available":false,"entity":"Saxo UK","note":"Match-Trader not listed on the broker's UK platforms page; absence from an overview page is not proof, so unverified.","status":"unverified","source":"https://www.home.saxo/en-gb/platforms","sourceTitle":"Saxo UK platforms","checked":"2026-09-18"},{"platform":"dxtrade","available":false,"entity":"Saxo UK","note":"DXtrade not listed on the broker's UK platforms page; absence from an overview page is not proof, so unverified.","status":"unverified","source":"https://www.home.saxo/en-gb/platforms","sourceTitle":"Saxo UK platforms","checked":"2026-09-18"}]},"sdks":{"licence":"All rights reserved","records":[{"name":"openapi-samples-js","language":"JavaScript","url":"https://github.com/SaxoBank/openapi-samples-js","official":true,"source":"https://github.com/SaxoBank/openapi-samples-js","checked":null},{"name":"openapi-samples-csharp","language":"C#","url":"https://github.com/SaxoBank/openapi-samples-csharp","official":true,"source":"https://github.com/SaxoBank/openapi-samples-csharp","checked":null},{"name":"saxo_openapi","language":"Python","url":"https://github.com/hootnot/saxo_openapi","official":false,"source":"https://pypi.org/project/saxo-openapi/","checked":"2026-09-18"},{"name":"openapi-clientlib-js","language":"JavaScript","url":"https://github.com/SaxoBank/openapi-clientlib-js","official":true,"source":"https://github.com/SaxoBank","checked":"2026-09-18"}]},"endpoints":{"licence":"All rights reserved","leftOut":"Parameters, request bodies, example responses and notes. Each is on the endpoint's page.","records":[{"method":"GET","path":"/chart/v3/charts","version":"v3","group":"Chart data","summary":"Returns timestamped open, high, low and close samples for one instrument, up to 1,200 samples a call. Horizon sets the bar length in minutes.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/chart/v3/charts/get__chart","officialReference":"https://www.developer.saxo/openapi/referencedocs/chart/v3/charts/get__chart","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/charts"},{"method":"POST","path":"/chart/v3/charts/subscriptions","version":"v3","group":"Chart data","summary":"Sets up a streaming subscription on chart samples and returns the most recent completed ones as a first snapshot.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/chart/v3/charts/post__chart__subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/chart/v3/charts/post__chart__subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/charts-subscribe"},{"method":"DELETE","path":"/chart/v3/charts/subscriptions/{ContextId}/{ReferenceId}","version":"v3","group":"Chart data","summary":"Removes one chart subscription, identified by its context and reference ids, and frees what it held on the server.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/chart/v3/charts/delete__chart__subscriptions_contextid_referenceid","officialReference":"https://www.developer.saxo/openapi/referencedocs/chart/v3/charts/delete__chart__subscriptions_contextid_referenceid","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/charts-unsubscribe"},{"method":"GET","path":"/hist/v1/transactions","version":"v1","group":"Closed positions and history","summary":"Lists historical transactions, such as trades, within a date range for a client or account. Filter by transaction type, asset type or instrument.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/hist/v1/transactions/get__hist","officialReference":"https://www.developer.saxo/openapi/referencedocs/hist/v1/transactions/get__hist","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/hist-transactions"},{"method":"GET","path":"/hist/v4/performance/summary","version":"v4","group":"Closed positions and history","summary":"Returns aggregated trade results and performance figures, such as accumulated profit or loss and win fraction, for a client or account over a period.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/hist/v4/performance/get__hist__summary","officialReference":"https://www.developer.saxo/openapi/referencedocs/hist/v4/performance/get__hist__summary","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/performance-summary"},{"method":"GET","path":"/port/v1/accounts","version":"v1","group":"Accounts and balances","summary":"Lists the accounts owned by a client. With no ClientKey it answers for the logged in user's own client.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/accounts/get__port","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/accounts/get__port","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/accounts"},{"method":"GET","path":"/port/v1/accounts/{AccountKey}","version":"v1","group":"Accounts and balances","summary":"Details of one account: its identifiers, type, currency, whether it is active and what it is allowed to trade.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/accounts/get__port__accountkey","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/accounts/get__port__accountkey","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/account-by-key"},{"method":"GET","path":"/port/v1/accounts/me","version":"v1","group":"Accounts and balances","summary":"Lists every account under the client the logged in user belongs to. Each account carries the AccountKey you pass to price, order and portfolio calls.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/accounts/get__port__me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/accounts/get__port__me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/accounts-me"},{"method":"POST","path":"/port/v1/accounts/subscriptions","version":"v1","group":"Accounts and balances","summary":"Sets up a streaming subscription on a list of accounts and returns a first snapshot of them.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/accounts/post__port__subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/accounts/post__port__subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/accounts-subscribe"},{"method":"GET","path":"/port/v1/balances","version":"v1","group":"Accounts and balances","summary":"Balance figures for a client, an account group or a single account: cash, cash available for trading, collateral and margin.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/balances/get__port","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/balances/get__port","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/balances"},{"method":"GET","path":"/port/v1/balances/marginoverview","version":"v1","group":"Accounts and balances","summary":"A margin overview for a client, an account group or a single account, returned as a list of groups.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/balances/get__port__marginoverview","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/balances/get__port__marginoverview","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/balances-marginoverview"},{"method":"GET","path":"/port/v1/balances/me","version":"v1","group":"Accounts and balances","summary":"Returns cash, margin and total value for the logged in client, rolled up in the client's currency.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/balances/get__port__me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/balances/get__port__me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/balances-me"},{"method":"POST","path":"/port/v1/balances/subscriptions","version":"v1","group":"Accounts and balances","summary":"Sets up a streaming subscription on a balance and returns a first snapshot of it.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/balances/post__port__subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/balances/post__port__subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/balances-subscribe"},{"method":"GET","path":"/port/v1/clients/{ClientKey}","version":"v1","group":"Session and user","summary":"Details of one client by its key: identifiers, default account, default currency and the netting and trading settings that apply.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/clients/get__port__clientkey","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/clients/get__port__clientkey","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/client-by-key"},{"method":"GET","path":"/port/v1/clients/me","version":"v1","group":"Session and user","summary":"Returns the client the logged in user belongs to, including ClientKey, default account and default currency. You need the ClientKey for some history and performance calls.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/clients/get__port__me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/clients/get__port__me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/clients-me"},{"method":"GET","path":"/port/v1/closedpositions","version":"v1","group":"Closed positions and history","summary":"Lists closed positions for a client, an account group or an account, chosen by query parameters.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/closedpositions/get__port","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/closedpositions/get__port","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/closedpositions"},{"method":"GET","path":"/port/v1/closedpositions/{ClosedPositionId}","version":"v1","group":"Closed positions and history","summary":"One closed position by its id.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/closedpositions/get__port__closedpositionid","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/closedpositions/get__port__closedpositionid","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/closedposition-by-id"},{"method":"GET","path":"/port/v1/closedpositions/me","version":"v1","group":"Closed positions and history","summary":"Lists positions closed for the logged in client, with open and close prices, times and realised profit or loss.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/closedpositions/get__port__me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/closedpositions/get__port__me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/closedpositions-me"},{"method":"POST","path":"/port/v1/closedpositions/subscriptions","version":"v1","group":"Closed positions and history","summary":"Sets up a streaming subscription on a list of closed positions and returns a first snapshot of them.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/closedpositions/post__port__subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/closedpositions/post__port__subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/closedpositions-subscribe"},{"method":"GET","path":"/port/v1/exposure/currency/me","version":"v1","group":"Positions","summary":"The net exposure in each currency for the logged in user's client.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/exposure/get__port__currency_me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/exposure/get__port__currency_me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/exposure-currency-me"},{"method":"GET","path":"/port/v1/exposure/fxspot/me","version":"v1","group":"Positions","summary":"The currency exposure that comes from FX spot positions alone, for the logged in user's client.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/exposure/get__port__fxspot_me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/exposure/get__port__fxspot_me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/exposure-fxspot-me"},{"method":"GET","path":"/port/v1/exposure/instruments/me","version":"v1","group":"Positions","summary":"The net exposure in each instrument for the logged in user's client.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/exposure/get__port__instruments_me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/exposure/get__port__instruments_me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/exposure-instruments-me"},{"method":"GET","path":"/port/v1/netpositions","version":"v1","group":"Positions","summary":"Lists net positions for a client, an account group or an account, with filters by instrument. Each can carry its sub positions if you ask for them.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/netpositions/get__port","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/netpositions/get__port","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/netpositions"},{"method":"GET","path":"/port/v1/netpositions/{NetPositionId}","version":"v1","group":"Positions","summary":"One net position by its id, with static details in NetPositionBase and the live view in NetPositionView.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/netpositions/get__port__netpositionid","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/netpositions/get__port__netpositionid","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/netposition-by-id"},{"method":"GET","path":"/port/v1/netpositions/me","version":"v1","group":"Positions","summary":"Lists positions netted per instrument for the logged in client, with average open price and profit or loss. Add SubPositions to FieldGroups to include the underlying positions.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/netpositions/get__port__me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/netpositions/get__port__me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/netpositions-me"},{"method":"POST","path":"/port/v1/netpositions/subscriptions","version":"v1","group":"Positions","summary":"Sets up a streaming subscription on a list of net positions and returns a first snapshot of them.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/netpositions/post__port__subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/netpositions/post__port__subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/netpositions-subscribe"},{"method":"GET","path":"/port/v1/orders","version":"v1","group":"Orders","summary":"Lists the open orders of a client or an account. By default only working orders are returned.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/orders/get__port","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/orders/get__port","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/orders"},{"method":"GET","path":"/port/v1/orders/{ClientKey}/{OrderId}","version":"v1","group":"Orders","summary":"One open order of a client, looked up by the client's key and the order id.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/orders/get__port__clientkey_orderid","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/orders/get__port__clientkey_orderid","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/order-by-id"},{"method":"GET","path":"/port/v1/orders/me","version":"v1","group":"Orders","summary":"Lists all open (working) orders across every account of the logged in client. Filled or cancelled orders do not appear here.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/orders/get__port__me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/orders/get__port__me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/orders-me"},{"method":"POST","path":"/port/v1/orders/subscriptions","version":"v1","group":"Orders","summary":"Sets up a streaming subscription on a list of open orders and returns a first snapshot of them.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/orders/post__port__subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/orders/post__port__subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/orders-subscribe"},{"method":"GET","path":"/port/v1/positions","version":"v1","group":"Positions","summary":"Lists open positions for a client, an account group, an account or one net position, chosen by query parameters.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/positions/get__port","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/positions/get__port","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/positions"},{"method":"GET","path":"/port/v1/positions/{PositionId}","version":"v1","group":"Positions","summary":"One open position by its id, with opening details in PositionBase and the live view in PositionView.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/positions/get__port__positionid","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/positions/get__port__positionid","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/position-by-id"},{"method":"GET","path":"/port/v1/positions/me","version":"v1","group":"Positions","summary":"Lists each open position for the logged in client, with opening details in PositionBase and live price and profit or loss in PositionView.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/positions/get__port__me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/positions/get__port__me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/positions-me"},{"method":"POST","path":"/port/v1/positions/subscriptions","version":"v1","group":"Positions","summary":"Sets up a streaming subscription on a list of positions and returns a first snapshot of them.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/positions/post__port__subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/positions/post__port__subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/positions-subscribe"},{"method":"GET","path":"/port/v1/users/me","version":"v1","group":"Session and user","summary":"Returns details about the logged in user, such as name, language, time zone and the ClientKey of the owning client. A good first call to check a token works.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/users/get__port__me","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/users/get__port__me","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/users-me"},{"method":"GET","path":"/port/v1/users/me/entitlements","version":"v1","group":"Session and user","summary":"The market data entitlements held by the logged in user's client, listed per exchange.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/port/v1/users/get__port__me_entitlements","officialReference":"https://www.developer.saxo/openapi/referencedocs/port/v1/users/get__port__me_entitlements","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/users-me-entitlements"},{"method":"GET","path":"/ref/v1/countries","version":"v1","group":"Reference data","summary":"The countries Saxo supports, as a list.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/countries/get__ref","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/countries/get__ref","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/ref-countries"},{"method":"GET","path":"/ref/v1/cultures","version":"v1","group":"Reference data","summary":"The cultures Saxo supports for localising a user's preferences, as a list.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/cultures/get__ref","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/cultures/get__ref","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/ref-cultures"},{"method":"GET","path":"/ref/v1/currencies","version":"v1","group":"Reference data","summary":"The currencies Saxo supports, as a list.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/currencies/get__ref","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/currencies/get__ref","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/ref-currencies"},{"method":"GET","path":"/ref/v1/currencypairs","version":"v1","group":"Reference data","summary":"The currency pairs Saxo supports, as a list.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/currencypairs/get__ref","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/currencypairs/get__ref","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/ref-currencypairs"},{"method":"GET","path":"/ref/v1/exchanges","version":"v1","group":"Reference data","summary":"Every exchange Saxo lists, with details of each such as its identifiers, country, currency and sessions.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/exchanges/get__ref","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/exchanges/get__ref","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/ref-exchanges"},{"method":"GET","path":"/ref/v1/exchanges/{ExchangeId}","version":"v1","group":"Reference data","summary":"Details of one exchange: its identifiers, country, currency, time zone and trading sessions.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/exchanges/get__ref__exchangeid","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/exchanges/get__ref__exchangeid","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/ref-exchange-by-id"},{"method":"GET","path":"/ref/v1/instruments","version":"v1","group":"Instruments","summary":"Searches Saxo's instrument universe by keyword, asset type, exchange or Uic and returns summary rows. Use it to find the Uic you need for prices, charts and orders.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/instruments/get__ref","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/instruments/get__ref","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/instruments-search"},{"method":"GET","path":"/ref/v1/instruments/details","version":"v1","group":"Instruments","summary":"Detailed reference data for a list of instruments in one call, chosen by Uic and asset type.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/instruments/get__ref__details","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/instruments/get__ref__details","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/instruments-details-list"},{"method":"GET","path":"/ref/v1/instruments/details/{Uic}/{AssetType}","version":"v1","group":"Instruments","summary":"Returns full details for one instrument: symbol, currency, tick size, minimum trade size, exchange and the order types it supports.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/instruments/get__ref__details_uic_assettype","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/instruments/get__ref__details_uic_assettype","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/instrument-details"},{"method":"GET","path":"/ref/v1/instruments/tradingschedule/{Uic}/{AssetType}","version":"v1","group":"Instruments","summary":"The trading schedule of one instrument: its sessions and the time zone they are given in.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/instruments/get__ref__tradingschedule_uic_assettype","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/instruments/get__ref__tradingschedule_uic_assettype","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/instrument-tradingschedule"},{"method":"GET","path":"/ref/v1/languages","version":"v1","group":"Reference data","summary":"The languages Saxo supports, as a list.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/languages/get__ref","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/languages/get__ref","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/ref-languages"},{"method":"GET","path":"/ref/v1/standarddates/forwardtenor/{Uic}","version":"v1","group":"Reference data","summary":"The standard forward tenor dates for one instrument.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/standarddates/get__ref__forwardtenor_uic","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/standarddates/get__ref__forwardtenor_uic","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/standarddates-forwardtenor"},{"method":"GET","path":"/ref/v1/timezones","version":"v1","group":"Reference data","summary":"The time zones Saxo supports, as a list.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/ref/v1/timezones/get__ref","officialReference":"https://www.developer.saxo/openapi/referencedocs/ref/v1/timezones/get__ref","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/ref-timezones"},{"method":"GET","path":"/root/v1/diagnostics/get","version":"v1","group":"Session and user","summary":"A test call that does nothing but answer. Use it to check that a GET request reaches the gateway.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/root/v1/diagnostics/get__root__get","officialReference":"https://www.developer.saxo/openapi/referencedocs/root/v1/diagnostics/get__root__get","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/diagnostics-get"},{"method":"GET","path":"/root/v1/features/availability","version":"v1","group":"Session and user","summary":"Which features are currently available, as a list of feature names each with a flag. Saxo marks this call obsolete.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/root/v1/features/get__root__availability","officialReference":"https://www.developer.saxo/openapi/referencedocs/root/v1/features/get__root__availability","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/features-availability"},{"method":"GET","path":"/root/v1/sessions/capabilities","version":"v1","group":"Session and user","summary":"What the current session is allowed: its authentication level, data level and trade level.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/root/v1/sessions/get__root__capabilities","officialReference":"https://www.developer.saxo/openapi/referencedocs/root/v1/sessions/get__root__capabilities","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/sessions-capabilities"},{"method":"PUT","path":"/root/v1/sessions/capabilities","version":"v1","group":"Session and user","summary":"Change the trade level of the current session, which decides whether it can trade on quotes and receive real time data.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/root/v1/sessions/put__root__capabilities","officialReference":"https://www.developer.saxo/openapi/referencedocs/root/v1/sessions/put__root__capabilities","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/put-sessions-capabilities"},{"method":"POST","path":"/root/v1/sessions/events/subscriptions","version":"v1","group":"Session and user","summary":"Sets up a streaming subscription on the session's capabilities, so a change in them is pushed to you.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/root/v1/sessions/post__root__events_subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/root/v1/sessions/post__root__events_subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/sessions-events-subscribe"},{"method":"GET","path":"/root/v1/user","version":"v1","group":"Session and user","summary":"The current user's id, client id, roles and the operations the token may perform. Saxo marks this call obsolete.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/root/v1/user/get__root","officialReference":"https://www.developer.saxo/openapi/referencedocs/root/v1/user/get__root","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/root-user"},{"method":"GET","path":"/trade/v1/infoprices","version":"v1","group":"Prices","summary":"Returns a one off price snapshot (bid, ask, mid and delay) for one instrument. For a live feed Saxo offers price subscriptions over the streaming connection instead.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v1/infoprices/get__trade","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v1/infoprices/get__trade","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/infoprices"},{"method":"GET","path":"/trade/v1/infoprices/list","version":"v1","group":"Prices","summary":"Info prices for several instruments of one asset type in a single call. Info prices are for display, not prices you can trade on.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v1/infoprices/get__trade__list","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v1/infoprices/get__trade__list","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/infoprices-list"},{"method":"POST","path":"/trade/v1/infoprices/subscriptions","version":"v1","group":"Prices","summary":"Sets up a streaming subscription on info prices for a list of instruments and returns a first snapshot.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v1/infoprices/post__trade__subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v1/infoprices/post__trade__subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/infoprices-subscribe"},{"method":"GET","path":"/trade/v1/messages","version":"v1","group":"Orders","summary":"Trade messages for the current user that have not yet been marked as seen.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v1/messages/get__trade","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v1/messages/get__trade","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/trade-messages"},{"method":"PATCH","path":"/trade/v1/positions/{PositionId}","version":"v1","group":"Positions","summary":"Change a property of an existing position. The documented use is clearing its force open flag so that it can net against an opposite position.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v1/positions/patch__trade__positionid","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v1/positions/patch__trade__positionid","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/patch-position"},{"method":"POST","path":"/trade/v1/prices/subscriptions","version":"v1","group":"Prices","summary":"Sets up a streaming price subscription on one instrument and returns an initial snapshot. Updates then arrive on your WebSocket connection under the same ContextId and ReferenceId.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v1/prices/post__trade__subscriptions","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v1/prices/post__trade__subscriptions","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/prices-subscribe"},{"method":"DELETE","path":"/trade/v1/prices/subscriptions/{ContextId}/{ReferenceId}","version":"v1","group":"Prices","summary":"Removes one price subscription from the current streaming session, identified by its context and reference ids.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v1/prices/delete__trade__subscriptions_contextid_referenceid","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v1/prices/delete__trade__subscriptions_contextid_referenceid","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/prices-unsubscribe"},{"method":"DELETE","path":"/trade/v2/orders","version":"v2","group":"Orders","summary":"Cancels every order in one instrument on one account in a single call.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/delete__trade","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/delete__trade","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/cancel-orders-by-instrument"},{"method":"PATCH","path":"/trade/v2/orders","version":"v2","group":"Orders","summary":"Changes one or more existing open orders, for example the price, size or duration. The order is identified by OrderId in the body, not in the path.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/patch__trade","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/patch__trade","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/change-order"},{"method":"POST","path":"/trade/v2/orders","version":"v2","group":"Orders","summary":"Places a new order, optionally with related limit and stop orders as children. A 200 reply can still carry ErrorInfo, so check for OrderId before treating the order as placed.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/place-order"},{"method":"DELETE","path":"/trade/v2/orders/{OrderIds}","version":"v2","group":"Orders","summary":"Cancels one or more open orders. Pass a comma separated list of order ids in the path and the AccountKey as a query parameter.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/delete__trade__orderids","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/delete__trade__orderids","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/cancel-orders"},{"method":"POST","path":"/trade/v2/orders/multileg","version":"v2","group":"Orders","summary":"Places a combined options order whose legs must all fill together, for strategies such as straddles and calendar spreads. Saxo says only some options exchanges support it.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade__multileg","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade__multileg","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/place-multileg-order"},{"method":"POST","path":"/trade/v2/orders/precheck","version":"v2","group":"Orders","summary":"Checks an order without placing it and returns the expected costs, cash required and margin impact. Useful to show a cost preview before the user confirms.","status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade__precheck","officialReference":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade__precheck","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/endpoints/precheck-order"}]},"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":[{"kind":"message","interface":"Saxo OpenAPI streaming connection","name":"_disconnect","group":"Control messages","summary":"Sent when the server is closing the user's streams, for example after the user changes the account password. No more messages follow, and requests are refused with 401 until the user logs in again.","role":"event","payloadType":null,"replies":[],"fields":[{"name":"ReferenceId","type":null,"required":null}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Simulation, as the page's example prints it","url":"https://sim-streaming.saxobank.com/sim/oapi/streaming/ws/connect"}]},"tasks":[],"status":"verified","source":"https://www.developer.saxo/openapi/learn/streaming","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/messages/disconnect"},{"kind":"message","interface":"Saxo OpenAPI streaming connection","name":"_heartbeat","group":"Control messages","summary":"Sent when a subscription has had no data for a while, to show the connection is still alive. One message can bundle a heartbeat for each of several subscriptions, each with a reason.","role":"event","payloadType":null,"replies":[],"fields":[{"name":"ReferenceId","type":null,"required":null},{"name":"Heartbeats","type":null,"required":null},{"name":"Heartbeats[].OriginatingReferenceId","type":null,"required":null},{"name":"Heartbeats[].Reason","type":null,"required":null}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Simulation, as the page's example prints it","url":"https://sim-streaming.saxobank.com/sim/oapi/streaming/ws/connect"}]},"tasks":[],"status":"verified","source":"https://www.developer.saxo/openapi/learn/streaming","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/messages/heartbeat"},{"kind":"message","interface":"Saxo OpenAPI streaming connection","name":"_resetsubscriptions","group":"Control messages","summary":"Tells the client to delete some of its subscriptions and create them again, after the server has detected a lost message or another error. Where it names no subscriptions, every subscription on the connection is to be reset.","role":"event","payloadType":null,"replies":[],"fields":[{"name":"ReferenceId","type":null,"required":null},{"name":"Timestamp","type":null,"required":null},{"name":"TargetReferenceIds","type":null,"required":null}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Simulation, as the page's example prints it","url":"https://sim-streaming.saxobank.com/sim/oapi/streaming/ws/connect"}]},"tasks":[],"status":"verified","source":"https://www.developer.saxo/openapi/learn/streaming","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/messages/resetsubscriptions"},{"kind":"message","interface":"Saxo OpenAPI streaming connection","name":"connect","group":"Connection","summary":"Opens the streaming WebSocket. It is an HTTP GET that upgrades to a WebSocket, carrying a context id you choose and an access token. Data for every subscription made with that context id then arrives on this one connection.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"contextId","type":null,"required":true},{"name":"Authorization","type":null,"required":true},{"name":"messageid","type":null,"required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Simulation, as the page's example prints it","url":"https://sim-streaming.saxobank.com/sim/oapi/streaming/ws/connect"}]},"answer":{"name":null,"fields":[]},"tasks":["session"],"status":"verified","source":"https://www.developer.saxo/openapi/learn/streaming","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/messages/connect"},{"kind":"message","interface":"Saxo OpenAPI streaming connection","name":"Data message","group":"Message layout","summary":"The binary layout every streaming message arrives in: a message id, the reference id of the subscription it belongs to, a payload format and the payload. One WebSocket frame can hold several messages, and one message can be split across frames.","role":"event","payloadType":null,"replies":[],"fields":[{"name":"Message identifier","type":"8 bytes, at byte 0","required":true},{"name":"Reserved","type":"2 bytes, at byte 8","required":true},{"name":"Reference id size","type":"1 byte, at byte 10","required":true},{"name":"Reference id","type":"ASCII, at byte 11","required":true},{"name":"Payload format","type":"1 byte, after the reference id","required":true},{"name":"Payload size","type":"4 bytes, after the payload format","required":true},{"name":"Payload","type":"as many bytes as the payload size says","required":true}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Simulation, as the page's example prints it","url":"https://sim-streaming.saxobank.com/sim/oapi/streaming/ws/connect"}]},"tasks":[],"status":"verified","source":"https://www.developer.saxo/openapi/learn/streaming","officialReference":null,"checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/saxo/messages/data-message"}]},"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":"saxo.headline","broker":"saxo","name":"Headline limit","value":null,"text":"120/min per session, per service group","unit":null,"scope":"session","source":"https://www.developer.saxo/openapi/learn/rate-limiting","alsoSources":[],"checked":"2026-09-18","status":"verified","conflict":null,"note":"Per session per service group; 1 order per second per session.","structuredValue":120,"structuredUnit":null,"windowSeconds":60}]},"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/saxo","register":"https://openbrokerapi.com/data/errors.json","records":[{"code":"_disconnect","http":null,"category":"streaming-message","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/plain-websocket-streaming","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/disconnect"},{"code":"_resetsubscriptions","http":null,"category":"streaming-message","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/plain-websocket-streaming","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/resetsubscriptions"},{"code":"ActiveFollowerCannotDoManualTrade","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/active-follower-no-manual-trade"},{"code":"AlgoOrderTimeBeforeExchangeOpen","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/algo-order-time-before-exchange-open"},{"code":"AmountBelowMinimumLotSize","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/amount-below-minimum-lot-size"},{"code":"AmountCannotBeLessThanFilledAmount","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/amount-less-than-filled-amount"},{"code":"AmountNotInLotSize","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/amount-not-in-lot-size"},{"code":"BlocksExistForOwnedContracts","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/blocks-exist-for-owned-contracts"},{"code":"BreakoutUpPriceCannotBeLessThanDownPrice","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/breakout-up-price-below-down"},{"code":"BrokerOption","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/broker-option"},{"code":"CashAmountLessThanMinInitialInvestmentAmount","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/cash-below-min-initial-investment"},{"code":"ClientCountrySanctioned","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/client-country-sanctioned"},{"code":"ClientExposureLimitation","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/client-exposure-limitation"},{"code":"ClientNotEnabledForExtendedTradingHours","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/client-not-enabled-extended-hours"},{"code":"ClientOnReduceForcedExposureReductionViolation","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/client-on-reduce-exposure-violation"},{"code":"ClosingPositionNotAllowedForMultiDayExecutionOrder","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/closing-not-allowed-multi-day-order"},{"code":"ClosingPositionNotAllowedOnJointExecutionModel","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/closing-not-allowed-joint-execution"},{"code":"ConditionDurationNotSupported","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/condition-duration-not-supported"},{"code":"ConditionOnWrongSideOfMarket","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/condition-on-wrong-side-of-market"},{"code":"ConditionPriceExceedsAggressiveTolerance","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/condition-price-exceeds-tolerance"},{"code":"ConditionTooFarFromMarket","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/condition-too-far-from-market"},{"code":"ContactExposureLimitation","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/contact-exposure-limitation"},{"code":"CouldNotCompleteRequest","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/order-placement-return-codes","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/could-not-complete-request"},{"code":"CrossCurrencyOrderOnMarginLendingAccountNotAllowed","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/cross-currency-on-margin-lending"},{"code":"DealCaptureAllocationKeyNotCorrect","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/deal-capture-allocation-key"},{"code":"DealCaptureInformationNotCorrect","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/deal-capture-information"},{"code":"DomainValidationError","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/domain-validation-error"},{"code":"DurationNotSupported","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/duration-not-supported"},{"code":"ExpirationDateInPast","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/expiration-date-in-past"},{"code":"ExpirationDateRequired","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/expiration-date-required"},{"code":"ExplicitCloseNotAllowedForIntradayNetting","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/explicit-close-intraday-netting"},{"code":"ExtendedHoursTradingCannotBeChanged","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/extended-hours-cannot-be-changed"},{"code":"FeatureNotEnabled","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/feature-not-enabled"},{"code":"ForcedExposureReductionViolation","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/forced-exposure-reduction-violation"},{"code":"ForceOpenNotAllowed","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/force-open-not-allowed"},{"code":"ForwardDateInPast","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/forward-date-in-past"},{"code":"ForwardDateRequired","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/forward-date-required"},{"code":"GtdOrderCannotBeLaterThanExpiry","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/gtd-order-later-than-expiry"},{"code":"HTTP 400","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-09-18","page":"https://openbrokerapi.com/errors/saxo/bad-request"},{"code":"HTTP 401","http":401,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-09-18","page":"https://openbrokerapi.com/errors/saxo/unauthorised"},{"code":"HTTP 403","http":403,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/rate-limiting","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/forbidden"},{"code":"HTTP 404","http":404,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/account-details","checked":"2026-09-18","page":"https://openbrokerapi.com/errors/saxo/not-found"},{"code":"HTTP 409 (duplicate order)","http":409,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/rate-limiting","checked":"2026-09-18","page":"https://openbrokerapi.com/errors/saxo/409-duplicate-order"},{"code":"HTTP 426","http":426,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/plain-websocket-streaming","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/426-upgrade-required"},{"code":"HTTP 429","http":429,"category":"api-error","rateLimit":true,"status":"verified","source":"https://www.developer.saxo/openapi/learn/rate-limiting","checked":"2026-09-18","page":"https://openbrokerapi.com/errors/saxo/429"},{"code":"HTTP 500","http":500,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/internal-service-error"},{"code":"HTTP 503","http":503,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-09-18","page":"https://openbrokerapi.com/errors/saxo/service-unavailable"},{"code":"IllegalAccount","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/illegal-account"},{"code":"IllegalAmount","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/illegal-amount"},{"code":"IllegalAssetType","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/illegal-asset-type"},{"code":"IllegalDate","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/illegal-date"},{"code":"IllegalInstrumentId","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/illegal-instrument-id"},{"code":"IllegalRequest","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/illegal-request"},{"code":"IllegalStrike","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/illegal-strike"},{"code":"IncorrectValuationTypeAndNettingMethod","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/incorrect-valuation-and-netting"},{"code":"InstrumentDisabledForTrading","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/instrument-disabled-for-trading"},{"code":"InstrumentForcedExposureReductionViolation","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/instrument-exposure-reduction"},{"code":"InstrumentHasExpired","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/instrument-has-expired"},{"code":"InstrumentNotAllowed","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/instrument-not-allowed"},{"code":"InstrumentNotSupportedForExtendedHours","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/instrument-no-extended-hours"},{"code":"InsufficientCash","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-09-18","page":"https://openbrokerapi.com/errors/saxo/insufficient-cash"},{"code":"InsufficientCash_CausedByOvernightAddOn","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/insufficient-cash-overnight-add-on"},{"code":"InternalTimeout","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/internal-timeout"},{"code":"InvalidAcceptLanguageHeader","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-accept-language-header"},{"code":"InvalidAllocationKeyUsed","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-allocation-key-used"},{"code":"InvalidMediaTypeHeader","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-media-type-header"},{"code":"InvalidModelState","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-model-state"},{"code":"InvalidOrderRelation","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-order-relation"},{"code":"InvalidQueryParameters","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-query-parameters"},{"code":"InvalidRequest","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-request"},{"code":"InvalidRequestHeader","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-request-header"},{"code":"InvalidUic","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-uic"},{"code":"InvalidValueDate","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/invalid-value-date"},{"code":"LimitTooFarFromStop","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/limit-too-far-from-stop"},{"code":"MarketClosed","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-09-18","page":"https://openbrokerapi.com/errors/saxo/market-closed"},{"code":"NotOwned","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/not-owned"},{"code":"NotPrimarySession","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/not-primary-session"},{"code":"NotSuitable","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/not-suitable"},{"code":"NotTradableAtPresent","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/not-tradable-at-present"},{"code":"OnlyLimitOrderAllowedForExtendedHours","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/only-limit-order-extended-hours"},{"code":"OnlySidedReductionAllowed","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/only-sided-reduction-allowed"},{"code":"OnWrongSideOfMarket","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/on-wrong-side-of-market"},{"code":"OptionExerciseAfterCutoff","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/option-exercise-after-cutoff"},{"code":"OptionExerciseNotAllowedDueExDateOfUpcomingCorporateActionOnInstrument","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/option-exercise-corporate-action"},{"code":"OrderCommandPending","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-command-pending"},{"code":"OrderCommandTimeout","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-command-timeout"},{"code":"OrderExceedsMarketLimitUpDownTolerance","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-exceeds-limit-up-down"},{"code":"OrderIsRestrictedForAccountManagementType","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-restricted-account-mgmt-type"},{"code":"OrderNotFound","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-not-found"},{"code":"OrderNotPlaced","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-not-placed"},{"code":"OrderNotSupportedForAccountType","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-not-supported-account-type"},{"code":"OrderPriceOutsideLimit","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-price-outside-limit"},{"code":"OrderRejectedByBroker","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-rejected-by-broker"},{"code":"OrderRelatedPositionIsClosed","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-related-position-is-closed"},{"code":"OrderRelatedPositionMissMatch","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-related-position-miss-match"},{"code":"OrderRequestAfterLastTradingDate","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-after-last-trading-date"},{"code":"OrderSizeGreaterThanMaximumAllowed","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-size-above-maximum"},{"code":"OrderTypeNotSupported","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-type-not-supported"},{"code":"OrderValueTooLarge","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-value-too-large"},{"code":"OrderValueToSmall","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/order-value-to-small"},{"code":"OtherError","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/order-placement-return-codes","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/other-error"},{"code":"PriceExceedsAggressiveTolerance","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/price-exceeds-aggressive-tolerance"},{"code":"PriceHasMoved","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/price-has-moved"},{"code":"PriceNotInTickSizeIncrements","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/price-not-in-tick-size-increments"},{"code":"RateLimitExceeded","http":null,"category":"api-error","rateLimit":true,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/rate-limit-exceeded"},{"code":"RelatedOrClosingOrderNotAllowedForIntradayNettingClients","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-order-intraday-netting"},{"code":"RelatedOrderNotAllowedForInstrument","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-order-not-for-instrument"},{"code":"RelatedOrderNotAllowedForIpo","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-order-not-allowed-for-ipo"},{"code":"RelatedOrderNotAllowedForShortLived","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-order-not-for-short-lived"},{"code":"RelatedOrderNotAllowedOnChildOrder","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-order-not-on-child-order"},{"code":"RelatedOrderNotAllowedOnMultiLegPartialFilled","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-order-multi-leg-partial"},{"code":"RelatedOrderNotAllowedOnTrailingStopOrder","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-order-not-on-trailing-stop"},{"code":"RelatedPositionAlreadyHasImplicitClosingOrders","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-position-has-closing-orders"},{"code":"RelatedPositionAlreadyHasRelatedOrders","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-position-has-related-orders"},{"code":"RelatedPositionAlreadyHasRelatedOrderType","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-position-has-order-type"},{"code":"RelatedPositionNotFound","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/related-position-not-found"},{"code":"RepeatTradeOnAutoQuote","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/repeat-trade-on-auto-quote"},{"code":"RequestNotAllowed","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/request-not-allowed"},{"code":"ReservedByShortContractOptions","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/reserved-by-short-contract-options"},{"code":"SellExceedsSettledExposure","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/sell-exceeds-settled-exposure"},{"code":"SellOrdersAlreadyExistForOwnedContracts","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/sell-orders-exist-for-owned"},{"code":"ShortTradeDisabled","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/short-trade-disabled"},{"code":"SubscriptionLimitExceeded","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/subscription-limit"},{"code":"SubscriptionPermanentlyDisabled","http":null,"category":"streaming-message","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/plain-websocket-streaming","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/subscription-permanently-disabled"},{"code":"SubscriptionTemporarilyDisabled","http":null,"category":"streaming-message","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/plain-websocket-streaming","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/subscription-temporarily-disabled"},{"code":"TooCloseToMarket","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/too-close-to-market"},{"code":"TooCloseToOcoRelatedOrderPrice","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/too-close-to-oco-related-order-price"},{"code":"TooFarFromEntryOrder","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/too-far-from-entry-order"},{"code":"TooFarFromMarket","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/too-far-from-market"},{"code":"ToOpenNotAllowedOnInstrument","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/to-open-not-allowed-on-instrument"},{"code":"TradeNotCompleted","http":202,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/order-placement-return-codes","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/trade-not-completed"},{"code":"TradingDisabled","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/trading-disabled"},{"code":"TradingOnNonFundedAccount","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/trading-on-non-funded-account"},{"code":"TypeConversionError","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/type-conversion-error"},{"code":"UnsupportedSubscriptionFormat","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/learn/openapi-request-response","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/unsupported-subscription-format"},{"code":"WouldComeTooCloseToAccountValueProtectionLimit","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/too-close-to-value-protection"},{"code":"WouldExceedAccountValueProtectionLimit","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/would-exceed-value-protection"},{"code":"WouldExceedMargin","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-09-18","page":"https://openbrokerapi.com/errors/saxo/would-exceed-margin"},{"code":"WouldExceedMarginCeiling","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/would-exceed-margin-ceiling"},{"code":"WouldExceedMaxCreditLine","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/would-exceed-max-credit-line"},{"code":"WouldExceedMaxCreditLineLimit","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/would-exceed-max-credit-line-limit"},{"code":"WouldExceedTradingLine","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/would-exceed-trading-line"},{"code":"WrongSideOfRelatedOrder","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://www.developer.saxo/openapi/referencedocs/trade/v2/orders/post__trade","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/saxo/wrong-side-of-related-order"}]},"mcpServers":{"licence":"CC BY 4.0","page":"https://openbrokerapi.com/ai/mcp-directory","register":"https://openbrokerapi.com/data/mcp-servers.json","records":[{"id":"saxo-community","name":"saxo-mcp","vendor":"SirAdlerBD, community","owner":"saxo","official":false,"officialNote":"No official Saxo server was found on this reading.","can":"Read only until armed. Trading tools exist only when enabled. TypeScript, stdio plus HTTP Streamable with bearer auth.","placesOrders":true,"posture":"gated","postureNote":"Read only by default with a hard block. Trading requires SAXO_TRADING=enabled, enforced at three layers: config validation, tool registration (the trading tools are not registered at all when disabled) and HTTP client request blocking.","custody":"local","custodyNote":"OAuth 2.0 with PKCE. Tokens in a local JSON file at mode 0600. Refresh rotation invalidates the old token.","demo":null,"demoNote":null,"maintained":"MIT, 11 commits, 0 stars, 0 forks.","sources":[{"url":"https://github.com/SirAdlerBD/saxo-mcp","title":"SirAdlerBD/saxo-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/saxo","record":{"id":"saxo","firm":"Saxo Bank","programmeType":"institutional-only","pagesOpened":["https://www.home.saxo/institutional-and-partners/introducing-broker"],"publishedFigure":null,"figureAsWorded":"no published figure","figureIsCeiling":false,"figureNote":"No public affiliate programme was found this cycle; the introducing broker page is institutional.","restrictionsForPublishers":"The introducing broker route requires a financial licence, so it is not open to a publisher of developer content.","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":"saxo-2026-09-22-1","date":"2026-09-22","kind":"docs","text":"Saxo's order placement page, re-read on 22 Sep 2026, now names only Market, Limit, Stop and StopLimit plus OCO; Stop if traded and trailing stop types are no longer listed there, so we mark them unverified. Its streaming page gives token refresh on the new sim-streaming and live-streaming hosts.","source":"https://www.developer.saxo/openapi/learn/order-placement","sourceTitle":"developer.saxo, order placement","checked":"2026-09-22"},{"id":"saxo-2026-09-21-1","date":"2026-09-21","kind":"additive","text":"Saxo released an EventIds filter on ca/v2/eventviews for corporate action events. Non breaking.","source":"https://www.developer.saxo/openapi/releasenotes/completed-planned-changes","sourceTitle":"Completed and planned changes, Saxo OpenAPI","checked":"2026-09-21"},{"id":"saxo-2026-09-01-1","date":"2026-09-01","kind":"breaking","text":"Breaking, and the deadline has passed: root/v1/user was removed and replaced by root/v2/user. An integration still on v1 is broken now, not later.","source":"https://developer.saxobank.com/openapi/releasenotes/planned-changes","sourceTitle":"Saxo planned changes","checked":"2026-09-19"},{"id":"saxo-2026-05-31-1","date":"2026-05-31","kind":"breaking","text":"ca/v1/proxyvoting/events replaced by ca/v2/proxyvoting/events.","source":"https://www.developer.saxo/openapi/releasenotes/planned-changes","sourceTitle":"Saxo Developer Portal: Planned changes","checked":"2026-09-22"},{"id":"saxo-2025-05-15-1","date":"2025-05-15","kind":"additive","text":"ENS adds OrderSubStatuses filter and a new Requested substatus; portfolio adds bond pool factors and option strategy views.","source":"https://www.developer.saxo/openapi/releasenotes/rn-release-2025-05-15","sourceTitle":"Saxo Developer Portal release notes 2025/05/15","checked":null},{"id":"saxo-2024-12-01-1","date":"2024-12-01","kind":"additive","text":"Pre-trade disclaimer endpoints added; precheck returns a PreTradeDisclaimers object.","source":"https://www.developer.saxo/openapi/releasenotes/rn-release-2024-12-01","sourceTitle":"Saxo Developer Portal release notes 2024/12/01","checked":null}]}}