openapi: 3.0.1
info:
title: Services.AutoTrading Account Values Charts API
description: 'The AutoTrading service group provides endpoints for interacting with Saxo Bank''s SaxoSelect offering.Through these interfaces a client application can get Saxo Select trade leaders, portfolios and investments. Portfolio investments can be created and modifed.<div class=well style=''border: 1px solid rgb(204, 82, 0); border-image: none; background-color: rgb(255, 209, 179);padding:1px;''><strong> Note:</strong> </br>This service is subject to special licensing agreements and not generally available to all OpenAPI applications.</div>'
version: 2.4.138+710c760591
x-framework-version: 38.0.2+439c5b0ec3
x-machine: SIMOAWEB11-DK2
servers:
- url: https://gateway.saxobank.com/sim/openapi
tags:
- name: Charts
description: Allows you to set up subscriptions for streamed charts data.
paths:
/chart/chart/ClientConfig:
get:
tags:
- Charts
summary: OBSOLETE Get the chart client configuration
description: "Returns configuration data for the chart client.\n Including:\n Maximum/minimum amount of samples to request\n Request frequency\n Timeout values"
operationId: ChartGetClientConfig
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ClientConfigData'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
/chart/chart/{Symbol}:
get:
tags:
- Charts
summary: OBSOLETE Get chart data for an instrument.
description: Responsible for getting chart data for an instrument from the back end domain.
operationId: ChartGetChartData
parameters:
- name: Count
in: query
description: Optional number of samples. Max. is 1200, default is 0.
required: true
schema:
type: integer
format: int32
- name: Horizon
in: query
description: "The horizon to get samples from. Values are interpreted in minutes: 1, 5, 10, 15, 30, 60, 120,\n 240, 360, 480, 1440, 10080, 43200."
required: true
schema:
type: integer
format: int32
- name: Mode
in: query
description: "Defines how to get the data from the chart feed server. Following options are available: START,\n FROM, UPTO"
required: true
schema:
type: string
- name: Seq
in: query
description: "Optional sequence id that is repeated in the response to help clients correlate responses with\n requests. Must be an integer"
schema:
type: integer
format: int32
- name: Symbol
in: path
description: The symbol of the instrument to retreive data for. NB! Symbol is case sensitive.
required: true
schema:
type: string
- name: Time
in: query
description: "Optional UTC time of the first/last sample. This depends on the MODE parameter. (MODE=FROM => time\n equals first sample, MODE=UPTO => time equals last sample)."
schema:
type: integer
format: int32
- name: Tz
in: query
description: "Optional time zone to get UTC-offsets for. Must be a zone name from the tz-database\n (http://www.iana.org/time-zones). Example: Australia/Hobart"
schema:
type: string
- name: Version
in: query
description: Optional protocol version. If not specified the default version 105 will be used.
schema:
type: string
responses:
'200':
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
/chart/v1/charts/subscriptions/{ContextId}/{ReferenceId}:
delete:
tags:
- Charts
summary: Remove subscription
description: Removes subscriptions for the given reference id on this resource, and frees resources on the server.
operationId: ChartsDeleteSubscription
parameters:
- name: ContextId
in: path
description: Unique streaming context ID part of the streaming session.
required: true
schema:
type: string
example: '20160204125301453'
- name: ReferenceId
in: path
description: The reference id that identifies the subscription (within a streaming session).
required: true
schema:
type: string
example: '20160204125301444'
responses:
'204':
description: No Content
'202':
description: Subscription delete request will be processed eventually.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Subscribe
community: Subscribe
/chart/v1/charts/subscriptions/{ContextId}:
delete:
tags:
- Charts
summary: Remove multiple subscriptions
description: Removes all subscriptions for the current session on this resource, and frees all resources on the server.
operationId: ChartsDeleteSubscriptions
parameters:
- name: ContextId
in: path
description: Unique streaming context ID part of the streaming session.
required: true
schema:
type: string
example: '20160204125301453'
- name: Tag
in: query
description: Tag that subscriptions are marked with.
schema:
type: string
example: TAB9
responses:
'204':
description: No Content
'202':
description: Subscription delete request will be processed eventually.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Subscribe
community: Subscribe
/chart/v1/charts/subscriptions:
post:
tags:
- Charts
summary: Create a subscription on chart data
description: "Sets up a subscription and returns an initial snapshot of most recently completed samples specified by the parameters in the request.\n \n\n Subsequent samples are delivered over the streaming channel. Most often a single new sample or sample update is delivered at a time, \n but when a sample closes, you will typcially get two samples: The now closed bar, and the bar just opening.\n \n\n\n Two events may require that a client application must close the current subscribtion and resubscribe:\n \n\n\n* The chart has been revised, either due to a correction or a corporate action.\n* The data stream has shifted from real-time to delayed prices or visa versa.\n\n In both cases the client application will receive a _resetsubscriptions instruction over the streaming channel."
operationId: ChartsAddSubscriptionAsync
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ChartStreamingRequest'
example:
Arguments:
AssetType: FxSpot
Count: 2
FieldGroups:
- ChartInfo
- Data
- DisplayAndFormat
Horizon: 1
Uic: 21
ContextId: '20221029043401185'
Format: application/json
ReferenceId: CH11578
RefreshRate: 1000
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ChartStreamingResponse'
example:
ContextId: '20221029043401208'
Format: application/json
InactivityTimeout: 0
ReferenceId: CH21848
RefreshRate: 1000
Snapshot:
ChartInfo:
DelayedByMinutes: 15
ExchangeId: SBFX
FirstSampleTime: '2015-02-02T01:02:03Z'
Horizon: 1
Data:
- CloseAsk: 1.3475
CloseBid: 1.3473
HighAsk: 1.4003
HighBid: 1.4001
LowAsk: 1.2804
LowBid: 1.2802
OpenAsk: 1.3478
OpenBid: 1.3476
Time: '2015-02-01T11:45:00Z'
- CloseAsk: 1.3475
CloseBid: 1.3473
HighAsk: 1.4003
HighBid: 1.4001
LowAsk: 1.2804
LowBid: 1.2802
OpenAsk: 1.3478
OpenBid: 1.3476
Time: '2015-02-01T11:46:00Z'
DataVersion: 1892739
DisplayAndFormat:
Currency: USD
Decimals: 4
Description: Euro/US Dollar
Format: AllowDecimalPips
Symbol: EURUSD
State: Active
Tag: Tag01
'400':
description: Bad Request
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- InvalidModelState
- UnsupportedSubscriptionFormat
type: string
example: None
x-enum-descriptions:
InvalidModelState: Error code returned when model state is invalid.
UnsupportedSubscriptionFormat: Error code returned when a subscription format that isn't supported by the publisher is requested.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'409':
description: Conflict
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- SubscriptionLimitExceeded
type: string
example: None
x-enum-descriptions:
SubscriptionLimitExceeded: Error code returned when more than the maximum allowed number of subscriptions for a specified type, is exceeded.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Subscribe
community: Subscribe
x-streaming-type:
$ref: '#/components/schemas/ChartResponseDomainEvent'
/chart/v1/charts/subscriptions/active:
post:
tags:
- Charts
summary: Obsolete Create a subscription on chart data
description: "Sets up a subscription and returns an initial snapshot of most recently completed samples specified by the parameters in the request.\n \n\n Subsequent samples are delivered over the streaming channel. Most often a single new sample or sample update is delivered at a time, \n but when a sample closes, you will typcially get two samples: The now closed bar, and the bar just opening.\n \n\n\n Two events may require that a client application must close the current subscribtion and resubscribe:\n \n\n\n* The chart has been revised, either due to a correction or a corporate action.\n* The data stream has shifted from real-time to delayed prices or visa versa.\n\n In both cases the client application will receive a _resetsubscriptions instruction over the streaming channel."
operationId: ChartsAddSubscriptionActiveAsync
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ChartStreamingRequest'
example:
Arguments:
AssetType: FxSpot
Count: 2
FieldGroups:
- ChartInfo
- Data
- DisplayAndFormat
Horizon: 1
Uic: 21
ContextId: '20221029043401185'
Format: application/json
ReferenceId: CH11578
RefreshRate: 1000
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ChartStreamingResponse'
example:
ContextId: '20221029043401208'
Format: application/json
InactivityTimeout: 0
ReferenceId: CH21848
RefreshRate: 1000
Snapshot:
ChartInfo:
DelayedByMinutes: 15
ExchangeId: SBFX
FirstSampleTime: '2015-02-02T01:02:03Z'
Horizon: 1
Data:
- CloseAsk: 1.3475
CloseBid: 1.3473
HighAsk: 1.4003
HighBid: 1.4001
LowAsk: 1.2804
LowBid: 1.2802
OpenAsk: 1.3478
OpenBid: 1.3476
Time: '2015-02-01T11:45:00Z'
- CloseAsk: 1.3475
CloseBid: 1.3473
HighAsk: 1.4003
HighBid: 1.4001
LowAsk: 1.2804
LowBid: 1.2802
OpenAsk: 1.3478
OpenBid: 1.3476
Time: '2015-02-01T11:46:00Z'
DataVersion: 1892739
DisplayAndFormat:
Currency: USD
Decimals: 4
Description: Euro/US Dollar
Format: AllowDecimalPips
Symbol: EURUSD
State: Active
Tag: Tag01
'400':
description: Bad Request
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- InvalidModelState
- UnsupportedSubscriptionFormat
type: string
example: None
x-enum-descriptions:
InvalidModelState: Error code returned when model state is invalid.
UnsupportedSubscriptionFormat: Error code returned when a subscription format that isn't supported by the publisher is requested.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'409':
description: Conflict
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- SubscriptionLimitExceeded
type: string
example: None
x-enum-descriptions:
SubscriptionLimitExceeded: Error code returned when more than the maximum allowed number of subscriptions for a specified type, is exceeded.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
deprecated: true
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Subscribe
community: Subscribe
x-streaming-type:
$ref: '#/components/schemas/ChartResponseDomainEvent'
/chart/v1/charts:
get:
tags:
- Charts
summary: Get chart data
description: Returns timestamped OHLC samples for a single instrument identified by UIC and AssetType. The time period covered by the samples and interval size between them are controlled by the combination of parameters Horizon, Time, Mode and Count.
operationId: ChartsGetChartDataAsync
parameters:
- name: AssetType
in: query
description: Assettype of the instrument.
required: true
schema:
title: Assettype of the instrument.
allOf:
- $ref: '#/components/schemas/AssetType'
example: FxSpot
- name: Count
in: query
description: Specifies maximum number of samples to return. Maximum is 1200. If not specified a default of 1200 samples are returned.
schema:
title: Specifies maximum number of samples to return. Maximum is 1200. If not specified a default of 1200 samples are returned.
type: integer
format: int32
example: 99
- name: FieldGroups
in: query
description: Use FieldGroups to add additional information to the samples like display/formatting details or information about the price source. If FieldGroups are not specified in the request then the response defaults to only hold the bare OHLC samples and nothing else.
schema:
title: Use FieldGroups to add additional information to the samples like display/formatting details or information about the price source. If FieldGroups are not specified in the request then the response defaults to only hold the bare OHLC samples and nothing else.
type: array
items:
$ref: '#/components/schemas/ChartFieldGroupSpec'
example:
- ChartInfo
- name: Horizon
in: query
description: 'The time period that each sample covers. Values are interpreted in minutes: 1, 5, 10, 15, 30, 60, 120, 240, 360, 480, 1440, 10080, 43200.'
required: true
schema:
title: 'The time period that each sample covers. Values are interpreted in minutes: 1, 5, 10, 15, 30, 60, 120, 240, 360, 480, 1440, 10080, 43200.'
type: integer
format: int32
example: 99
- name: Mode
in: query
description: If Time is supplied, mode specifies if the endpoint should returns samples "UpTo" (and including) or "From" (and including) the specified time.
schema:
title: If Time is supplied, mode specifies if the endpoint should returns samples "UpTo" (and including) or "From" (and including) the specified time.
allOf:
- $ref: '#/components/schemas/ChartRequestMode'
example: UpTo
- name: Time
in: query
description: Specifies the time of a sample, which must either be the first (If Mode=="From") or the last (if Mode=="UpTo") in the returned data.
schema:
title: Specifies the time of a sample, which must either be the first (If Mode=="From") or the last (if Mode=="UpTo") in the returned data.
type: string
format: date-time
x-type-name: UtcDateTime
example: '9999-12-31T23:59:59.9999990+00:00'
- name: Uic
in: query
description: UIC (Universal Instrument Code) of the instrument.
required: true
schema:
title: UIC (Universal Instrument Code) of the instrument.
type: integer
format: int32
example: 99
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ChartResponse'
example:
ChartInfo:
DelayedByMinutes: 15
ExchangeId: SBFX
FirstSampleTime: '2015-02-02T01:02:03Z'
Horizon: 1
Data:
- CloseAsk: 1.3475
CloseBid: 1.3473
HighAsk: 1.4003
HighBid: 1.4001
LowAsk: 1.2804
LowBid: 1.2802
OpenAsk: 1.3478
OpenBid: 1.3476
Time: '2015-02-01T11:45:00Z'
- CloseAsk: 1.3475
CloseBid: 1.3473
HighAsk: 1.4003
HighBid: 1.4001
LowAsk: 1.2804
LowBid: 1.2802
OpenAsk: 1.3478
OpenBid: 1.3476
Time: '2015-02-01T11:46:00Z'
DataVersion: 1892739
DisplayAndFormat:
Currency: USD
Decimals: 4
Description: Euro/US Dollar
Format: AllowDecimalPips
Symbol: EURUSD
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: []
- OpenApiJWTSecurityScheme: []
x-required-permissions:
personal: Read
restricted: Read
community: Read
components:
schemas:
ClientConfigData:
type: object
properties:
ConfigRate:
type: integer
format: int32
example: 99
ErrorRepeat:
type: integer
format: int32
example: 99
ErrorTimeout:
type: integer
format: int32
example: 99
MaxFetch:
type: integer
format: int32
example: 99
MinFetch:
type: integer
format: int32
example: 99
RequestTimeout:
type: integer
format: int32
example: 99
UpdateRate:
type: integer
format: int32
example: 99
WaitRepeat:
type: integer
format: int32
example: 99
WaitTimeout:
type: integer
format: int32
example: 99
additionalProperties: false
ChartResponseDomainEvent:
type: object
properties:
Data:
title: The type of data transported by the DomainEvent instance (e.g. price update, position list update etc.).
allOf:
- $ref: '#/components/schemas/ChartResponse'
PartitionNumber:
title: The partition number if this DomainEvent is a partition.
type: integer
format: int32
example: 99
ReferenceId:
title: Client specified id, which is sent back to the client with every data update.
type: string
example: stringValue
Timestamp:
title: The UTC date and time of the event.
type: string
format: date-time
x-type-name: UtcDateTime
TotalPartitions:
title: The total number of partitions if this DomainEvent is a partition.
type: integer
format: int32
example: 99
additionalProperties: false
example: null
ModelStateDictionary:
type: object
additionalProperties:
type: array
items:
type: string
AssetType:
title: The possible AssetTypes for which you can get a quote or place an order or a trade.
enum:
- Bond
- Cash
- CertificateBonus
- CertificateCappedBonus
- CertificateCappedCapitalProtected
- CertificateCappedOutperformance
- CertificateConstantLeverage
- CertificateDiscount
- CertificateExpress
- CertificateTracker
- CertificateUncappedCapitalProtection
- CertificateUncappedOutperformance
- CfdIndexOption
- CfdOnCompanyWarrant
- CfdOnEtc
- CfdOnEtf
- CfdOnEtn
- CfdOnFund
- CfdOnFutures
- CfdOnIndex
- CfdOnRights
- CfdOnStock
- CompanyWarrant
- ContractFutures
- Etc
- Etf
- Etn
- Fund
- FuturesOption
- FuturesStrategy
- FxBinaryOption
- FxForwards
- FxKnockInOption
- FxKnockOutOption
- FxNoTouchOption
- FxOneTouchOption
- FxSpot
- FxVanillaOption
- GuaranteeNote
- IpoOnStock
- ManagedFund
- MiniFuture
- MutualFund
- PortfolioNote
- Rights
- SrdOnEtf
- SrdOnStock
- Stock
- StockIndex
- StockIndexOption
- StockOption
- Warrant
- WarrantDoubleKnockOut
- WarrantKnockOut
- WarrantOpenEndKnockOut
- WarrantSpread
type: string
example: FxSpot
x-enum-descriptions:
FxSpot: Forex Spot.
FxForwards: Forex Forward.
FxVanillaOption: Forex Vanilla Option.
FxKnockInOption: Forex Knock In Option.
FxKnockOutOption: Forex Knock Out Option.
FxBinaryOption: Forex Binary Option.
FxOneTouchOption: Forex One Touch Option.
FxNoTouchOption: Forex No Touch Option.
ContractFutures: Contract Futures.
FuturesStrategy: Futures Strategy.
Stock: Stock.
StockOption: Stock Option.
Bond: Bond.
FuturesOption: Futures Option.
StockIndexOption: Stock Index Option.
ManagedFund: 'Obsolete: Managed Fund.'
Cash: Cash. Not tradeable!
CfdOnStock: Cfd on Stock.
CfdOnIndex: Cfd on Stock Index.
CfdOnFutures: Cfd on Futures.
StockIndex: Stock Index.
MutualFund: Mutual Fund.
CfdIndexOption: Cfd Index Option.
CfdOnEtf: Cfd on Etf
CfdOnEtc: Cfd on Etc
CfdOnEtn: Cfd on Etn
CfdOnFund: Cfd on Fund
CfdOnRights: Cfd on Rights
CfdOnCompanyWarrant: Cfd on unlisted warrant issued by a corporation.
Etf: Exchange traded fund.
Etc: Etc
Etn: Etn
Fund: Fund
Rights: Rights
Warrant: Warrant
MiniFuture: MiniFuture.
WarrantSpread: Warrant with built-in spread.
WarrantKnockOut: Warrant with a knock-out barrier.
WarrantOpenEndKnockOut: Knock-out Warrant with no expiry.
WarrantDoubleKnockOut: Warrant with two knock-out barriers.
CertificateUncappedCapitalProtection: Guarantees a percentage increase of the underlying asset's value above the issue price at expiry/maturity. Max loss is the amount invested multiplied by the CapitalProtection percentage.
CertificateCappedCapitalProtected: Guarantees a capped percentage increase of the underlying asset's value above the issue price at expiry/maturity. Max loss is the amount invested multiplied by the CapitalProtection percentage.
CertificateDiscount: Yields a capped return if the underlying asset's value is above the specified cap level at expiry. If the underlying's value is below the strike at expiry, the investor received the underlying or equivalent value. Offers direct exposure in underlying at a lower price (discount) with a capped potential profit and limited loss.
CertificateCappedOutperformance: Capped Outperformance Certificate.
CertificateCappedBonus: Certificate Capped Bonus.
CertificateExpress: Certificate Express kick out.
CertificateTracker: A certificate that mirrors the price movement of the underlying instrument. Often used to trade movements in indicies. Movements can be a fixed ratio of the underlying and can be inverted for bearish/short speculation. Risk is equivalent to owning the underlying.
CertificateUncappedOutperformance: Provides leveraged returns when the underlying price exceeds the threshold strike price. The amount leverage is defined by the Participation %. When the underlying is below the strike price, the certificate mirrors the underlying price 1:1.
CertificateBonus: Mirrors the price movement of the underlying only if and when the underlying price exceeds the defined barrier. If the certificate expires below the barrier, it offers partial protection/return of investment.
CertificateConstantLeverage: Certificate Constant Leverage.
SrdOnStock: SRD. (Service de Règlement Différé) on Stock.
SrdOnEtf: SRD. (Service de Règlement Différé) on Etf.
IpoOnStock: IPO on Stock
CompanyWarrant: Unlisted warrant issued by a corporation, often physically settled.
PortfolioNote: Danish pooled investment scheme (“Pulje”). Not online tradeable.
GuaranteeNote: Danish investment scheme (“Grantbevis”). Not online tradeable.
ChartInfo:
title: Holds basic information about this chart time series
type: object
properties:
DelayedByMinutes:
title: If the pricefeed is delayed, this field will be returned indicating the delay in minutes.
type: integer
format: int32
example: 99
ExchangeId:
title: Id of the Exchange. Go to the ReferenceData/Exhanges endpoint to get exchange session info.
type: string
example: stringValue
FirstSampleTime:
title: The time of the first (oldest) available sample available for this instrument. Useful for the client when calculating the size of the horizontal slider.
type: string
format: date-time
x-type-name: UtcDateTime
Horizon:
title: Horizon in minutes.
type: integer
format: int32
example: 99
additionalProperties: false
example:
DelayedByMinutes: 15
ExchangeId: SBFX
FirstSampleTime: '2015-02-02T01:02:03.0000000+00:00'
Horizon: 1
ChartStreamingResponse:
title: Subscription response.
type: object
properties:
ContextId:
title: The streaming context id that this response is associated with.
type: string
example: ContextId-1
x-display-order: 1
ReferenceId:
title: The reference id that (along with streaming context id and session id) identifies the subscription (within the context of a specific service/subscription type)
type: string
example: ReferenceId-1
x-display-order: 2
Format:
title: The media type (RFC 2046), of the serialized data updates that are streamed to the client.
typ
# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/saxo/refs/heads/main/openapi/saxo-charts-api-openapi.yml