Saxo Bank Features API

Provides endpoints for querying availability of features.

OpenAPI Specification

saxo-features-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Services.AutoTrading Account Values Features 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: Features
  description: Provides endpoints for querying availability of features.
paths:
  /root/v1/features/availability/subscriptions/{ContextId}/{ReferenceId}:
    delete:
      tags:
      - Features
      summary: Remove a feature availability subscription
      description: Removes the subscription identified by the specified reference id (and streaming context id).
      operationId: FeaturesV1Delete
      parameters:
      - name: ContextId
        in: path
        description: The context id part of the streaming session (used to identify the subscription within a streaming session).
        required: true
        style: simple
        schema:
          type: string
        example: '20180204125301453'
      - name: ReferenceId
        in: path
        description: The reference id that identifies the subscription (within a streaming session).
        required: true
        style: simple
        schema:
          type: string
        example: C04
      responses:
        '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
        restricted: Subscribe
        community: Subscribe
  /root/v1/features/availability/subscriptions:
    post:
      tags:
      - Features
      summary: Create a feature availability subscription
      description: Create a feature availability subscription.
      operationId: FeaturesV1Post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeatureAvailabilitySubscriptionRequest'
            example:
              ContextId: '20221029043400381'
              ReferenceId: Features
              RefreshRate: 1000
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeatureAvailabilitySubscriptionResponse'
              example:
                ContextId: '20221029043400381'
                Format: application/json
                InactivityTimeout: 120
                ReferenceId: Features
                RefreshRate: 1000
                Snapshot:
                - Available: true
                  Feature: Chart
                State: Active
        '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
        restricted: Subscribe
        community: Subscribe
      x-streaming-type:
        $ref: '#/components/schemas/FeatureAvailabilityArray'
  /root/v1/features/availability:
    get:
      tags:
      - Features
      summary: Get the availability of all features
      description: Get the availability of all features.
      operationId: FeaturesV1Get
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FeatureAvailability'
                example:
                - Available: true
                  Feature: Chart
              example:
              - Available: true
                Feature: Chart
        '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:
    ModelStateDictionary:
      type: object
      additionalProperties:
        type: array
        items:
          type: string
    FeatureAvailabilitySubscriptionRequest:
      required:
      - ContextId
      - ReferenceId
      type: object
      properties:
        ContextId:
          title: "The streaming context id that this request is associated with.\n            This parameter must only contain letters (a-z) and numbers (0-9) as well as - (dash) and _ (underscore). It is case insensitive. Max length is 50 characters."
          pattern: ^[a-zA-Z0-9_-]{1,50}$
          type: string
          example: ContextId-1
          x-display-order: 1
        ReferenceId:
          title: "Mandatory client specified reference id for the subscription.\n            This parameter must only contain alphanumberic characters as well as - (dash) and _ (underscore). Cannot start with _. It is case insensitive. Max length is 50 characters."
          pattern: ^[a-zA-Z0-9-][a-zA-Z0-9_-]{0,49}$
          type: string
          example: ReferenceId-1
          x-display-order: 2
        Format:
          title: "Optional Media type (RFC 2046) of the serialized data updates that are streamed to the client.\n            Currently only application/json and application/x-protobuf is supported.\n            If an unrecognized format is specified, the subscription end point will return HTTP status code 400 - Bad format."
          type: string
          example: application/json
        RefreshRate:
          title: "Optional custom refresh rate, measured in milliseconds, between each data update.\n            Note that it is not possible to get a refresh rate lower than the rate specified in the\n            customer service level agreement (SLA)."
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
          example: 0
        ReplaceReferenceId:
          title: Reference id of the subscription that should be replaced.
          pattern: ^[a-zA-Z0-9-][a-zA-Z0-9_-]{0,49}$
          type: string
          example: ReplaceReferenceId-1
        Tag:
          title: Optional client specified tag used for grouping subscriptions.
          type: string
          example: ClientTag
      additionalProperties: false
      example:
        ContextId: '20221029043400381'
        ReferenceId: Features
        RefreshRate: 1000
    FeatureAvailability:
      required:
      - Feature
      type: object
      properties:
        Available:
          title: Indicates whether the feature is available.
          type: boolean
          example: true
        Feature:
          title: The name identifying the feature.
          type: string
          example: stringValue
      additionalProperties: false
      example:
        Available: true
        Feature: Chart
    FeatureAvailabilitySubscriptionResponse:
      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.
          type: string
          example: application/json
        InactivityTimeout:
          title: The time (in seconds) that the client should accept the subscription to be inactive before considering it invalid.
          type: integer
          format: int32
          example: 0
        RefreshRate:
          title: Actual refresh rate assigned to the subscription according to the customers SLA.
          type: integer
          format: int32
          example: 0
        Snapshot:
          title: Snapshot of the current data on hand, when subscription was created.
          type: array
          items:
            $ref: '#/components/schemas/FeatureAvailability'
          example:
          - Available: true
            Feature: Chart
        State:
          title: The value "Active".
          type: string
          description: This property is kept for backwards compatibility.
          example: Active
        Tag:
          title: Client specified tag assigned to the subscription, if specified in the request.
          type: string
          example: ClientTag
      additionalProperties: false
      example:
        ContextId: '20221029043400381'
        Format: application/json
        InactivityTimeout: 120
        ReferenceId: Features
        RefreshRate: 1000
        Snapshot:
        - Available: true
          Feature: Chart
        State: Active
    FeatureAvailabilityArray:
      type: array
      items:
        $ref: '#/components/schemas/FeatureAvailability'
      example:
      - Available: true
        Feature: Chart
  responses:
    Unauthorized:
      description: Indicates that the request was rejected because the 'Authorization' header was missing in the request or contained an invalid security token.
    ServiceUnavailable:
      description: Service Unavailable.
    BadRequest:
      description: One or more of the provided parameters are invalid.
      content:
        application/json:
          schema:
            required:
            - ErrorCode
            - Message
            type: object
            properties:
              ErrorCode:
                enum:
                - InvalidRequest
                type: string
                example: None
                x-enum-descriptions:
                  InvalidRequest: Default error code returned when it cannot be determined which part of the request is malformed.
              Message:
                type: string
              ModelState:
                $ref: '#/components/schemas/ModelStateDictionary'
    TooManyRequests:
      description: The request was rejected due to rate limit being exceeded.
  securitySchemes:
    OpenApiJWTSecurityScheme:
      type: http
      scheme: bearer
      bearerFormat: JWT
    OpenApiOAuthSecurityScheme:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://sim.logonvalidation.net/authorize
          tokenUrl: https://sim.logonvalidation.net/token
          scopes: {}