Bloomberg EMSX API

The Execution Management System API allows developers to manage and automate trading for equities, futures, and options.

OpenAPI Specification

bloomberg-emsx-api.yml Raw ↑
openapi: 3.1.0
info:
  title: Bloomberg EMSX API
  description: >-
    The Execution Management System API allows developers to manage and
    automate trading for equities, futures, and options using an event-driven
    model with both subscription and request-response paradigms. EMSX
    provides order and route management, broker integration, and fill
    tracking via the BLPAPI protocol. This spec models the request-response
    operations as REST-like endpoints.
  version: 1.0.0
  contact:
    name: Bloomberg Developer Support
    url: https://emsx-api-doc.readthedocs.io/
  license:
    name: Proprietary
    url: https://www.bloomberg.com/notices/tos/
  termsOfService: https://www.bloomberg.com/notices/tos/

servers:
- url: https://localhost:3000
  description: Bloomberg EMSX service via BLPAPI HTTP bridge

security:
- bearerAuth: []

tags:
- name: Orders
  description: Create, modify, and manage orders
- name: Routes
  description: Create, modify, and manage routes to brokers
- name: Fills
  description: Track order and route fills
- name: Broker Strategies
  description: Query available broker strategies and parameters
- name: Teams
  description: Manage EMSX teams and assignments
- name: Subscriptions
  description: Subscribe to real-time order and route updates

paths:
  /request/blp/emapisvc/CreateOrder:
    post:
      operationId: createOrder
      summary: Create a New Order
      description: >-
        Creates a new order in the EMSX blotter. Orders can be created for
        equities, futures, and options with various order types and
        time-in-force parameters.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrderRequest'
            examples:
              CreateorderRequestExample:
                summary: Default createOrder request
                x-microcks-default: true
                value:
                  EMSX_TICKER: example_value
                  EMSX_AMOUNT: 10
                  EMSX_ORDER_TYPE: MKT
                  EMSX_SIDE: BUY
                  EMSX_TIF: DAY
                  EMSX_LIMIT_PRICE: 42.5
                  EMSX_STOP_PRICE: 42.5
                  EMSX_ACCOUNT: example_value
                  EMSX_NOTES: example_value
                  EMSX_HAND_INSTRUCTION: ANY
                  EMSX_BASKET_NAME: example_value
                  EMSX_CFD_FLAG: 'Y'
                  EMSX_CUSTOM_NOTE1: example_value
                  EMSX_CUSTOM_NOTE2: example_value
                  EMSX_CUSTOM_NOTE3: example_value
                  EMSX_CUSTOM_NOTE4: example_value
                  EMSX_CUSTOM_NOTE5: example_value
                  EMSX_GTD_DATE: example_value
                  EMSX_INVESTOR_ID: '500123'
                  EMSX_LOCATE_BROKER: example_value
                  EMSX_LOCATE_ID: '500123'
                  EMSX_PORTFOLIO: example_value
      responses:
        '200':
          description: Order created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOrderResponse'
              examples:
                Createorder200Example:
                  summary: Default createOrder 200 response
                  x-microcks-default: true
                  value:
                    EMSX_SEQUENCE: 10
                    MESSAGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/CreateOrderAndRouteEx:
    post:
      operationId: createOrderAndRoute
      summary: Create an Order and Route Simultaneously
      description: >-
        Creates a new order and immediately routes it to a specified broker
        in a single operation.
      tags:
      - Orders
      - Routes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrderAndRouteRequest'
            examples:
              CreateorderandrouteRequestExample:
                summary: Default createOrderAndRoute request
                x-microcks-default: true
                value: {}
      responses:
        '200':
          description: Order created and routed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOrderAndRouteResponse'
              examples:
                Createorderandroute200Example:
                  summary: Default createOrderAndRoute 200 response
                  x-microcks-default: true
                  value:
                    EMSX_SEQUENCE: 10
                    EMSX_ROUTE_ID: '500123'
                    MESSAGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/ModifyOrderEx:
    post:
      operationId: modifyOrder
      summary: Modify an Existing Order
      description: >-
        Modifies parameters of an existing order such as quantity, limit
        price, or time-in-force.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifyOrderRequest'
            examples:
              ModifyorderRequestExample:
                summary: Default modifyOrder request
                x-microcks-default: true
                value:
                  EMSX_SEQUENCE: 10
                  EMSX_AMOUNT: 10
                  EMSX_ORDER_TYPE: MKT
                  EMSX_LIMIT_PRICE: 42.5
                  EMSX_STOP_PRICE: 42.5
                  EMSX_TIF: DAY
                  EMSX_NOTES: example_value
      responses:
        '200':
          description: Order modified successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResponse'
              examples:
                Modifyorder200Example:
                  summary: Default modifyOrder 200 response
                  x-microcks-default: true
                  value:
                    STATUS: 10
                    MESSAGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/DeleteOrder:
    post:
      operationId: deleteOrder
      summary: Delete an Order
      description: >-
        Deletes (cancels) an order from the EMSX blotter. Only orders that
        have not been fully filled can be deleted.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteOrderRequest'
            examples:
              DeleteorderRequestExample:
                summary: Default deleteOrder request
                x-microcks-default: true
                value:
                  EMSX_SEQUENCE: 10
      responses:
        '200':
          description: Order deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResponse'
              examples:
                Deleteorder200Example:
                  summary: Default deleteOrder 200 response
                  x-microcks-default: true
                  value:
                    STATUS: 10
                    MESSAGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/GroupRouteEx:
    post:
      operationId: groupRoute
      summary: Route Multiple Orders as a Group
      description: >-
        Routes a group of orders to a single broker in a single operation,
        useful for basket or program trading.
      tags:
      - Routes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupRouteRequest'
            examples:
              GrouprouteRequestExample:
                summary: Default groupRoute request
                x-microcks-default: true
                value:
                  EMSX_SEQUENCE:
                  - 10
                  EMSX_AMOUNT_PERCENT: 42.5
                  EMSX_BROKER: example_value
                  EMSX_ORDER_TYPE: MKT
                  EMSX_LIMIT_PRICE: 42.5
                  EMSX_TIF: DAY
                  EMSX_STRATEGY: example_value
                  EMSX_STRATEGY_PARAMS: example_value
      responses:
        '200':
          description: Orders routed as a group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupRouteResponse'
              examples:
                Grouproute200Example:
                  summary: Default groupRoute 200 response
                  x-microcks-default: true
                  value:
                    numRouted: 10
                    MESSAGE: example_value
                    routeIds:
                    - EMSX_SEQUENCE: 10
                      EMSX_ROUTE_ID: '500123'
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/RouteEx:
    post:
      operationId: routeOrder
      summary: Route an Order to a Broker
      description: >-
        Routes an existing order to a specific broker with optional
        strategy parameters.
      tags:
      - Routes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouteOrderRequest'
            examples:
              RouteorderRequestExample:
                summary: Default routeOrder request
                x-microcks-default: true
                value:
                  EMSX_SEQUENCE: 10
                  EMSX_AMOUNT: 10
                  EMSX_BROKER: example_value
                  EMSX_ORDER_TYPE: MKT
                  EMSX_TIF: DAY
                  EMSX_LIMIT_PRICE: 42.5
                  EMSX_STOP_PRICE: 42.5
                  EMSX_STRATEGY: example_value
                  EMSX_STRATEGY_PARAMS: example_value
                  EMSX_EXEC_INSTRUCTIONS: example_value
                  EMSX_ACCOUNT: example_value
      responses:
        '200':
          description: Order routed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouteOrderResponse'
              examples:
                Routeorder200Example:
                  summary: Default routeOrder 200 response
                  x-microcks-default: true
                  value:
                    EMSX_SEQUENCE: 10
                    EMSX_ROUTE_ID: '500123'
                    MESSAGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/ModifyRouteEx:
    post:
      operationId: modifyRoute
      summary: Modify a Route
      description: >-
        Modifies parameters of an existing route, such as quantity or
        strategy parameters.
      tags:
      - Routes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifyRouteRequest'
            examples:
              ModifyrouteRequestExample:
                summary: Default modifyRoute request
                x-microcks-default: true
                value:
                  EMSX_SEQUENCE: 10
                  EMSX_ROUTE_ID: '500123'
                  EMSX_AMOUNT: 10
                  EMSX_ORDER_TYPE: MKT
                  EMSX_LIMIT_PRICE: 42.5
                  EMSX_STOP_PRICE: 42.5
                  EMSX_TIF: DAY
                  EMSX_STRATEGY: example_value
                  EMSX_STRATEGY_PARAMS: example_value
      responses:
        '200':
          description: Route modified
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResponse'
              examples:
                Modifyroute200Example:
                  summary: Default modifyRoute 200 response
                  x-microcks-default: true
                  value:
                    STATUS: 10
                    MESSAGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/DeleteRoute:
    post:
      operationId: deleteRoute
      summary: Delete (cancel) a Route
      description: >-
        Cancels an active route. Only routes that have not been fully
        filled can be cancelled.
      tags:
      - Routes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteRouteRequest'
            examples:
              DeleterouteRequestExample:
                summary: Default deleteRoute request
                x-microcks-default: true
                value:
                  EMSX_SEQUENCE: 10
                  EMSX_ROUTE_ID: '500123'
      responses:
        '200':
          description: Route cancelled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResponse'
              examples:
                Deleteroute200Example:
                  summary: Default deleteRoute 200 response
                  x-microcks-default: true
                  value:
                    STATUS: 10
                    MESSAGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/GetOrders:
    post:
      operationId: getOrders
      summary: Get Orders
      description: >-
        Retrieves the current list of orders in the EMSX blotter, optionally
        filtered by status or other parameters.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetOrdersRequest'
            examples:
              GetordersRequestExample:
                summary: Default getOrders request
                x-microcks-default: true
                value:
                  scope: PRIVATE
      responses:
        '200':
          description: List of orders
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOrdersResponse'
              examples:
                Getorders200Example:
                  summary: Default getOrders 200 response
                  x-microcks-default: true
                  value:
                    orders:
                    - EMSX_SEQUENCE: 10
                      EMSX_TICKER: example_value
                      EMSX_SIDE: BUY
                      EMSX_AMOUNT: 10
                      EMSX_FILLED: 10
                      EMSX_WORKING: 10
                      EMSX_ORDER_TYPE: example_value
                      EMSX_LIMIT_PRICE: 42.5
                      EMSX_STOP_PRICE: 42.5
                      EMSX_TIF: example_value
                      EMSX_STATUS: ASSIGN
                      EMSX_AVG_PRICE: 42.5
                      EMSX_ACCOUNT: example_value
                      EMSX_TRADER: example_value
                      EMSX_NOTES: example_value
                      EMSX_BASKET_NAME: example_value
                      EMSX_DATE: example_value
                      EMSX_TIME_STAMP: example_value
                      EMSX_PORTFOLIO: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/GetRoutes:
    post:
      operationId: getRoutes
      summary: Get Routes
      description: >-
        Retrieves the current list of routes associated with orders in
        the EMSX blotter.
      tags:
      - Routes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetRoutesRequest'
            examples:
              GetroutesRequestExample:
                summary: Default getRoutes request
                x-microcks-default: true
                value:
                  scope: PRIVATE
      responses:
        '200':
          description: List of routes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoutesResponse'
              examples:
                Getroutes200Example:
                  summary: Default getRoutes 200 response
                  x-microcks-default: true
                  value:
                    routes:
                    - EMSX_SEQUENCE: 10
                      EMSX_ROUTE_ID: '500123'
                      EMSX_BROKER: example_value
                      EMSX_AMOUNT: 10
                      EMSX_FILLED: 10
                      EMSX_STATUS: CANCEL
                      EMSX_ORDER_TYPE: example_value
                      EMSX_LIMIT_PRICE: 42.5
                      EMSX_AVG_PRICE: 42.5
                      EMSX_STRATEGY: example_value
                      EMSX_EXEC_INSTRUCTIONS: example_value
                      EMSX_LAST_FILL_DATE: example_value
                      EMSX_LAST_FILL_TIME: example_value
                      EMSX_ROUTE_CREATE_DATE: example_value
                      EMSX_ROUTE_CREATE_TIME: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/GetFills:
    post:
      operationId: getFills
      summary: Get Fills
      description: >-
        Retrieves fill information for orders and routes. Fills represent
        partial or complete executions of routes.
      tags:
      - Fills
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetFillsRequest'
            examples:
              GetfillsRequestExample:
                summary: Default getFills request
                x-microcks-default: true
                value:
                  scope: PRIVATE
                  fromDateTime: '2026-01-15T10:30:00Z'
      responses:
        '200':
          description: List of fills
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFillsResponse'
              examples:
                Getfills200Example:
                  summary: Default getFills 200 response
                  x-microcks-default: true
                  value:
                    fills:
                    - EMSX_SEQUENCE: 10
                      EMSX_ROUTE_ID: '500123'
                      EMSX_FILL_ID: '500123'
                      EMSX_TICKER: example_value
                      EMSX_SIDE: BUY
                      EMSX_FILL_AMOUNT: 10
                      EMSX_FILL_PRICE: 42.5
                      EMSX_FILL_DATE: example_value
                      EMSX_FILL_TIME: example_value
                      EMSX_BROKER: example_value
                      EMSX_EXCHANGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/GetBrokerStrategiesWithAssetClass:
    post:
      operationId: getBrokerStrategies
      summary: Get Broker Strategies
      description: >-
        Retrieves available trading strategies for a specific broker
        and asset class combination.
      tags:
      - Broker Strategies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetBrokerStrategiesRequest'
            examples:
              GetbrokerstrategiesRequestExample:
                summary: Default getBrokerStrategies request
                x-microcks-default: true
                value:
                  EMSX_BROKER: example_value
                  EMSX_ASSET_CLASS: EQTY
      responses:
        '200':
          description: Available broker strategies
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBrokerStrategiesResponse'
              examples:
                Getbrokerstrategies200Example:
                  summary: Default getBrokerStrategies 200 response
                  x-microcks-default: true
                  value:
                    strategies:
                    - example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/GetBrokerStrategyInfoWithAssetClass:
    post:
      operationId: getBrokerStrategyInfo
      summary: Get Broker Strategy Details
      description: >-
        Retrieves detailed information about a specific broker strategy
        including its parameters and constraints.
      tags:
      - Broker Strategies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetBrokerStrategyInfoRequest'
            examples:
              GetbrokerstrategyinfoRequestExample:
                summary: Default getBrokerStrategyInfo request
                x-microcks-default: true
                value:
                  EMSX_BROKER: example_value
                  EMSX_STRATEGY: example_value
                  EMSX_ASSET_CLASS: EQTY
      responses:
        '200':
          description: Strategy details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBrokerStrategyInfoResponse'
              examples:
                Getbrokerstrategyinfo200Example:
                  summary: Default getBrokerStrategyInfo 200 response
                  x-microcks-default: true
                  value:
                    strategyInfo:
                      name: Example Title
                      description: A sample description.
                      parameters:
                      - name: Example Title
                        description: A sample description.
                        type: example_value
                        required: true
                        allowedValues: {}
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/GetTeams:
    post:
      operationId: getTeams
      summary: Get Emsx Teams
      description: >-
        Retrieves the list of EMSX teams available to the user.
      tags:
      - Teams
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            examples:
              GetteamsRequestExample:
                summary: Default getTeams request
                x-microcks-default: true
                value: {}
      responses:
        '200':
          description: List of teams
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTeamsResponse'
              examples:
                Getteams200Example:
                  summary: Default getTeams 200 response
                  x-microcks-default: true
                  value:
                    teams:
                    - name: Example Title
                      members:
                      - {}
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/AssignTrader:
    post:
      operationId: assignTrader
      summary: Assign a Trader to an Order
      description: >-
        Assigns or reassigns a trader to handle a specific order.
      tags:
      - Teams
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignTraderRequest'
            examples:
              AssigntraderRequestExample:
                summary: Default assignTrader request
                x-microcks-default: true
                value:
                  EMSX_SEQUENCE: 10
                  EMSX_TRADER_UUID: '500123'
      responses:
        '200':
          description: Trader assigned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResponse'
              examples:
                Assigntrader200Example:
                  summary: Default assignTrader 200 response
                  x-microcks-default: true
                  value:
                    STATUS: 10
                    MESSAGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /request/blp/emapisvc/ManualFill:
    post:
      operationId: manualFill
      summary: Record a Manual Fill
      description: >-
        Records a manual fill against a route for cases where fills
        are reported outside the electronic execution flow.
      tags:
      - Fills
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManualFillRequest'
            examples:
              ManualfillRequestExample:
                summary: Default manualFill request
                x-microcks-default: true
                value:
                  EMSX_SEQUENCE: 10
                  EMSX_ROUTE_ID: '500123'
                  EMSX_FILL_AMOUNT: 10
                  EMSX_FILL_PRICE: 42.5
                  EMSX_FILL_DATE: example_value
                  EMSX_FILL_TIME: example_value
      responses:
        '200':
          description: Manual fill recorded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationResponse'
              examples:
                Manualfill200Example:
                  summary: Default manualFill 200 response
                  x-microcks-default: true
                  value:
                    STATUS: 10
                    MESSAGE: example_value
        '400':
          $ref: '#/components/responses/BadRequest'

      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bloomberg-issued JWT credential for EMSX access

  responses:
    BadRequest:
      description: Invalid request parameters or business rule violation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'

  schemas:
    CreateOrderRequest:
      type: object
      required:
      - EMSX_TICKER
      - EMSX_AMOUNT
      - EMSX_ORDER_TYPE
      - EMSX_SIDE
      - EMSX_TIF
      properties:
        EMSX_TICKER:
          type: string
          description: Bloomberg security identifier
          examples:
          - 'IBM US Equity'
        EMSX_AMOUNT:
          type: integer
          description: Order quantity (number of shares/contracts)
          example: 10
        EMSX_ORDER_TYPE:
          type: string
          description: Order type
          enum:
          - MKT
          - LMT
          - STP
          - STP LMT
          example: MKT
        EMSX_SIDE:
          type: string
          description: Buy or sell
          enum:
          - BUY
          - SELL
          - SHRT
          example: BUY
        EMSX_TIF:
          type: string
          description: Time in force
          enum:
          - DAY
          - GTC
          - OPG
          - IOC
          - FOK
          - GTD
          - MOC
          - LOC
          example: DAY
        EMSX_LIMIT_PRICE:
          type: number
          description: Limit price (required for LMT and STP LMT orders)
          example: 42.5
        EMSX_STOP_PRICE:
          type: number
          description: Stop price (required for STP and STP LMT orders)
          example: 42.5
        EMSX_ACCOUNT:
          type: string
          description: Trading account identifier
          example: example_value
        EMSX_NOTES:
          type: string
          description: Free-text notes attached to the order
          example: example_value
        EMSX_HAND_INSTRUCTION:
          type: string
          description: Handling instruction
          enum:
          - ANY
          - DIR
          - FCM
          example: ANY
        EMSX_BASKET_NAME:
          type: string
          description: Name of the basket this order belongs to
          example: example_value
        EMSX_CFD_FLAG:
          type: string
          description: Contract for difference flag
          enum:
          - 'Y'
          - 'N'
          example: 'Y'
        EMSX_CUSTOM_NOTE1:
          type: string
          example: example_value
        EMSX_CUSTOM_NOTE2:
          type: string
          example: example_value
        EMSX_CUSTOM_NOTE3:
          type: string
          example: example_value
        EMSX_CUSTOM_NOTE4:
          type: string
          example: example_value
        EMSX_CUSTOM_NOTE5:
          type: string
          example: example_value
        EMSX_GTD_DATE:
          type: string
          description: Good-till-date in YYYYMMDD format
          example: example_value
        EMSX_INVESTOR_ID:
          type: string
          description: Investor identifier for allocation
          example: '500123'
        EMSX_LOCATE_BROKER:
          type: string
          description: Locate broker for short sells
          example: example_value
        EMSX_LOCATE_ID:
          type: string
          description: Locate ID for short sells
          example: '500123'
        EMSX_PORTFOLIO:
          type: string
          description: Portfolio name for the order

          example: example_value
    CreateOrderResponse:
      type: object
      properties:
        EMSX_SEQUENCE:
          type: integer
          description: Unique order sequence number assigned by EMSX
          example: 10
        MESSAGE:
          type: string
          description: Status message

          example: example_value
    CreateOrderAndRouteRequest:
      allOf:
      - $ref: '#/components/schemas/CreateOrderRequest'
      - type: object
        required:
        - EMSX_BROKER
        properties:
          EMSX_BROKER:
            type: string
            description: Broker code for routing
          EMSX_STRATEGY:
            type: string
            description: Broker execution strategy name
          EMSX_STRATEGY_PARAMS:
            type: object
            description: Strategy-specific parameters
            additionalProperties: true
          EMSX_EXEC_INSTRUCTIONS:
            type: string
            description: Execution instructions for the broker

    CreateOrderAndRouteResponse:
      type: object
      properties:
        EMSX_SEQUENCE:
          type: integer
          description: Unique order sequence number
          example: 10
        EMSX_ROUTE_ID:
          type: integer
          description: Unique route identifier
          example: '500123'
        MESSAGE:
          type: string

          example: example_value
    ModifyOrderRequest:
      type: object
      required:
      - EMSX_SEQUENCE
      properties:
        EMSX_SEQUENCE:
          type: integer
          description: Order sequence number to modify
          example: 10
        EMSX_AMOUNT:
          type: integer
          description: New order quantity
          example: 10
        EMSX_ORDER_TYPE:
          type: string
          enum:
          - MKT
          - LMT
          - STP
          - STP LMT
          example: MKT
        EMSX_LIMIT_PRICE:
          type: number
          example: 42.5
        EMSX_STOP_PRICE:
          type: number
          example: 42.5
        EMSX_TIF:
          type: string
          enum:
          - DAY

# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bloomberg-aim/refs/heads/main/openapi/bloomberg-emsx-api.yml