Saxo API rate limits
What is recorded about how fast you may call the Saxo API: 1 limit record, the wording from the record and 2 related error codes.
Risk warning: CFDs and spread bets are complex instruments and come with a high risk of losing money rapidly due to leverage. You can lose money on these products, and each provider publishes its own loss figure under FCA rules. You should consider whether you understand how they work and whether you can afford to take the high risk of losing your money. Automated and API trading can amplify losses through bugs, connectivity failures and runaway orders.
Recorded limits
One record per limit. The scope is part of the limit: a figure is only useful once you know whether it applies to a key, an account, a session or an address.
| Limit | Value | Scope | Source |
|---|---|---|---|
| Headline limit | 120/min per session, per service group | session | developer.saxochecked |
Rate limits, as the record words them
- Rate limits, as worded
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.
Saxo OpenAPI: rate limitingchecked
Error codes that concern limits
These are the decoded Saxo OpenAPI errors whose code or meaning names a rate limit, an allowance or throttling. Each row links to the full meaning and the fix.
| Code | HTTP status | Meaning, first sentence | Source |
|---|---|---|---|
| HTTP 429 | 429 | Rate limit exceeded: 120 requests per minute per session per service group, 1 order per second per session, or 10,000,000 per day per app. | developer.saxochecked |
| RateLimitExceeded | Not recorded | A throttling policy quota has been exceeded. | developer.saxochecked |
Pacing and backoff, in general
This part is general advice and says nothing about Saxo OpenAPI in particular. The figures that apply are the recorded ones above, and the provider's own documentation is the authority.
Pace before you are refused. Work out the gap between requests that keeps you under the limit, then leave a margin, because a limit counted by a provider's clock will not line up exactly with yours. Spread calls evenly: a burst at the start of each window is the usual way to hit a limit while staying under it on average. The rate limit calculator checks a polling plan against a limit and gives the shortest interval that fits.
When a request is refused for rate, stop sending and wait. Double the wait after each refusal in a row, add a small random amount so that several programs do not retry together, and cap the number of attempts. If the reply names how long to wait, use that figure in place of your own.
Take extra care with dealing requests. A refused or unanswered order may or may not have gone through, so check the state of the order before you send it again. Cache what does not change, such as instrument details and history you have already downloaded, and prefer a stream to polling where one is offered.
Where to go next
- The full Saxo OpenAPI record
- Saxo OpenAPI endpoints
- Saxo OpenAPI quickstart
- All Saxo OpenAPI error codes
- Broker API rate limits compared
- HTTP 429 across broker APIs
- Rate limits for every broker and platform
- The fact register
Other brokers: Axi, Bitget, Capital.com, CMC Markets, Deriv, Dukascopy, eToro, Exness, FOREX.com, FXCM, FxPro, IG, Interactive Brokers, OANDA, Pepperstone, Swissquote, ThinkMarkets, Tickmill, Trading 212, XTB.