Bloomberg EMSX Routes API

Create, modify, delete, and manage order routes to brokers

OpenAPI Specification

bloomberg-emsx-routes-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bloomberg EMSX Trading Brokers Routes API
  description: Bloomberg Execution Management System (EMSX) API provides programmatic access to Bloomberg's order and execution management platform. It enables automated order creation, routing, modification, and execution monitoring for equity, fixed income, futures, and options trading across global markets. The API supports order lifecycle management, broker selection, route management, and real-time fill notifications through the Bloomberg Terminal and B-PIPE infrastructure.
  version: '1.0'
  contact:
    name: Bloomberg Professional Support
    url: https://www.bloomberg.com/professional/support/
  termsOfService: https://www.bloomberg.com/notices/tos/
servers:
- url: https://api.bloomberg.com/emsxapi/v1
  description: Bloomberg EMSX Production API
security:
- bearerAuth: []
tags:
- name: Routes
  description: Create, modify, delete, and manage order routes to brokers
paths:
  /routes:
    get:
      operationId: listRoutes
      summary: Bloomberg EMSX List routes
      description: Retrieve a list of routes across all orders. Supports filtering by route status, broker, and associated order. Returns route-level fields including broker, strategy, filled amount, and average price.
      tags:
      - Routes
      parameters:
      - $ref: '#/components/parameters/teamName'
      - name: status
        in: query
        description: Filter routes by status
        schema:
          type: string
          enum:
          - NEW
          - WORKING
          - PARTIALLY_FILLED
          - FILLED
          - CANCELLED
          - REJECTED
      - name: broker
        in: query
        description: Filter by broker code
        schema:
          type: string
      - name: orderSequenceNumber
        in: query
        description: Filter routes by parent order sequence number
        schema:
          type: integer
      - name: limit
        in: query
        description: Maximum number of routes to return
        schema:
          type: integer
          default: 100
          maximum: 1000
      - name: offset
        in: query
        description: Number of routes to skip for pagination
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: List of routes retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  routes:
                    type: array
                    items:
                      $ref: '#/components/schemas/Route'
                  totalCount:
                    type: integer
                    description: Total number of routes matching the filter
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /routes/{routeId}:
    get:
      operationId: getRoute
      summary: Bloomberg EMSX Get route details
      description: Retrieve detailed information about a specific route, including broker, strategy, fill status, and all route-level fields.
      tags:
      - Routes
      parameters:
      - $ref: '#/components/parameters/routeId'
      responses:
        '200':
          description: Route details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Route'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: modifyRoute
      summary: Bloomberg EMSX Modify an existing route
      description: Modify fields on an existing route such as amount, limit price, or strategy parameters. Only working or partially filled routes can be modified.
      tags:
      - Routes
      parameters:
      - $ref: '#/components/parameters/routeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifyRouteRequest'
      responses:
        '200':
          description: Route modified successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouteResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Route cannot be modified in its current state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: cancelRoute
      summary: Bloomberg EMSX Cancel a route
      description: Cancel an active route. Sends a cancel request to the broker. Only working or partially filled routes can be cancelled.
      tags:
      - Routes
      parameters:
      - $ref: '#/components/parameters/routeId'
      responses:
        '204':
          description: Route cancellation requested successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Route cannot be cancelled in its current state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /routes/manualFill:
    post:
      operationId: createManualFill
      summary: Bloomberg EMSX Create a manual fill
      description: Manually record a fill against a route. Used for reporting executions that occurred outside of electronic routing, such as voice-brokered trades.
      tags:
      - Routes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManualFillRequest'
      responses:
        '201':
          description: Manual fill created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          description: Fill validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Insufficient permissions for this operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required or invalid credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    RouteResponse:
      type: object
      properties:
        routeId:
          type: integer
          description: Route identifier
        status:
          type: string
          description: Route status
        message:
          type: string
          description: Status message
    ModifyRouteRequest:
      type: object
      properties:
        amount:
          type: number
          minimum: 1
          description: Updated route quantity
        limitPrice:
          type: number
          description: Updated limit price
        orderType:
          type: string
          description: Updated order type
        timeInForce:
          type: string
          description: Updated time in force
        strategyParameters:
          type: object
          additionalProperties: true
          description: Updated strategy parameters
    ManualFillRequest:
      type: object
      required:
      - orderSequenceNumber
      - routeId
      - fillAmount
      - fillPrice
      properties:
        orderSequenceNumber:
          type: integer
          description: Parent order sequence number
        routeId:
          type: integer
          description: Route identifier to fill against
        fillAmount:
          type: number
          minimum: 1
          description: Fill quantity
        fillPrice:
          type: number
          description: Fill price
        broker:
          type: string
          description: Executing broker code
        settlementDate:
          type: string
          format: date
          description: Settlement date
        notes:
          type: string
          description: Notes for the manual fill
    Route:
      type: object
      properties:
        routeId:
          type: integer
          description: EMSX route identifier
        orderSequenceNumber:
          type: integer
          description: Parent order sequence number
        ticker:
          type: string
          description: Bloomberg security ticker
        side:
          type: string
          enum:
          - BUY
          - SELL
          - SHORT
          - COVER
          description: Route side
        amount:
          type: number
          description: Route quantity
        filledAmount:
          type: number
          description: Quantity filled on this route
        averagePrice:
          type: number
          description: Average fill price on this route
        remainingAmount:
          type: number
          description: Remaining unfilled quantity
        broker:
          type: string
          description: Broker code
        brokerName:
          type: string
          description: Full broker name
        strategy:
          type: string
          description: Execution strategy name
        strategyParameters:
          type: object
          additionalProperties: true
          description: Strategy-specific parameters
        status:
          type: string
          enum:
          - NEW
          - WORKING
          - PARTIALLY_FILLED
          - FILLED
          - CANCELLED
          - REJECTED
          description: Current route status
        limitPrice:
          type: number
          description: Limit price for the route
        orderType:
          type: string
          description: Order type on the route
        timeInForce:
          type: string
          description: Time in force on the route
        account:
          type: string
          description: Trading account
        exchange:
          type: string
          description: Destination exchange
        reasonCode:
          type: string
          description: Rejection or cancellation reason code
        reasonDescription:
          type: string
          description: Human-readable reason description
        createdTime:
          type: string
          format: date-time
          description: Timestamp when route was created
        lastModifiedTime:
          type: string
          format: date-time
          description: Timestamp when route was last modified
        lastFillTime:
          type: string
          format: date-time
          description: Timestamp of the most recent fill
        customFields:
          type: object
          additionalProperties: true
          description: Custom user-defined fields
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                description: Field that caused the error
              message:
                type: string
                description: Detail about the field error
          description: Detailed error information
    FillResponse:
      type: object
      properties:
        fillId:
          type: integer
          description: Created fill identifier
        status:
          type: string
          description: Fill status
        message:
          type: string
          description: Status message
  parameters:
    teamName:
      name: teamName
      in: query
      description: EMSX team name for shared blotter access
      schema:
        type: string
    routeId:
      name: routeId
      in: path
      required: true
      description: EMSX route identifier
      schema:
        type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bloomberg API authentication token obtained via Bloomberg B-PIPE or Bloomberg Terminal authentication
externalDocs:
  description: Bloomberg EMSX API Documentation
  url: https://www.bloomberg.com/professional/support/api-library/