# Saxo connect

Independent and unofficial. Not affiliated with or endorsed by any broker or platform named here. Educational only: nothing here is advice, and nothing here recommends a broker or a trade.

This is the markdown version of https://openbrokerapi.com/brokers/saxo/messages/connect, written from the same records as that page.

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.

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.

- Message: `connect`
- Interface: Saxo OpenAPI streaming connection
- Group: Connection
- Status: verified. Source: [developer.saxo](https://www.developer.saxo/openapi/learn/streaming), checked 2026-10-12.

This is a message of the Saxo OpenAPI streaming connection, not an HTTP endpoint. It has no method and no path: it travels over an open WebSocket connection. It is in no OpenAPI file on this site and the request builder does not list it.

Note: The page says a context id must not be reused except to reconnect to an existing WebSocket, that the server buffers messages so subscriptions can be created while the connection is being opened, and that sending a WebSocket close frame disconnects and cleans up the subscriptions on the server. To keep a connection open past the life of its token, the page describes a PUT to /streaming/ws/authorize with the context id and a new token, answered with 202 Accepted.

## The message

- Name: `connect`
- Direction: Request, sent by the client
- Carried by: WebSocket. Saxo's page says the connection is a plain WebSocket carrying data in binary frames. Subscriptions are not made on it: each is created with an HTTP POST that names the same context id, and those calls are recorded on this site as endpoints.
- Simulation, as the page's example prints it: `https://sim-streaming.saxobank.com/sim/oapi/streaming/ws/connect`

## Fields

- `contextId` (type not stated, required): The id of this streaming connection, sent in the query string. At most 50 characters from a to z, A to Z, 0 to 9 and the hyphen. Two connections of one session must not share one.
- `Authorization` (type not stated, required): The access token, as the word BEARER, a space and the token. Sent as the Authorization header, which the page prefers, or as a query string parameter named authorization where the client platform cannot set headers.
- `messageid` (type not stated, optional): On reconnecting only: the id of the last message received, in the query string. The server then starts from the message after it, out of a small buffer of recent messages it keeps.

## What arrives

HTTP status 101 Switching Protocols where the connection is made. Otherwise another status: 400 where the context id is missing or badly formed, 401 where the token is missing, badly formed or expired, 409 where the session already has a connection with that context id, 426 where the WebSocket version is not 13, and 429 where the session already has as many connections as its throttling profile allows.

## Limits that apply at Saxo OpenAPI

- Headline limit: 120/min per session, per service group
  - Scope: session
  - Status: verified. Source: [developer.saxo](https://www.developer.saxo/openapi/learn/rate-limiting), checked 2026-09-18.
  - Note: Per session per service group; 1 order per second per session.

## More on Saxo

- [All Saxo messages](https://openbrokerapi.com/brokers/saxo/messages): 5 documented here, grouped by what they do.
- [Log in and keep a session: the call at each API](https://openbrokerapi.com/endpoints/session): The same job at every broker and platform API recorded here, HTTP or not.
- [Saxo API quickstart](https://openbrokerapi.com/brokers/saxo/quickstart)
- [All Saxo error codes](https://openbrokerapi.com/errors/saxo)
- [Saxo API page](https://openbrokerapi.com/brokers/saxo): The full record: access, authentication, limits and the source for each.

## Licence and how to cite

The records behind this page are all rights reserved. This file is the page itself, at its own address, in another format. It is not part of the CC BY 4.0 downloads listed at https://openbrokerapi.com/data. Quote from it with a link to the page.

Cite as: Saxo connect. Broker API Hub, https://openbrokerapi.com/brokers/saxo/messages/connect, newest check 2026-10-12.

Where you rely on a single figure, cite the source and the checked date printed beside it as well. Where this page and a broker's own documentation differ, the documentation wins.
