Saxo Bank Features API

Provides endpoints for querying availability of features.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/saxo-features-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

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: {}