Bloomberg AIM Routes API
Create, modify, and manage routes to brokers
Create, modify, and manage routes to brokers
openapi: 3.1.0
info:
title: Bloomberg Data License API (HAPI) Broker Strategies Routes API
description: Provides programmatic access to Bloomberg's comprehensive financial, pricing, reference, regulatory, and alternative data covering over 50 million securities and 56,000 fields via the Hypermedia API (HAPI). The BEAP/HAPI follows a hypermedia-driven REST architecture where clients discover resources through link relations in responses.
version: 1.0.0
contact:
name: Bloomberg Developer Support
url: https://developer.bloomberg.com/
license:
name: Proprietary
url: https://www.bloomberg.com/notices/tos/
termsOfService: https://www.bloomberg.com/notices/tos/
servers:
- url: https://api.bloomberg.com/eap
description: Bloomberg Enterprise Access Point (Production)
security:
- bearerAuth: []
- oauth2: []
tags:
- name: Routes
description: Create, modify, and manage routes to brokers
paths:
/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:
- 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/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/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
components:
schemas:
RouteOrderRequest:
type: object
required:
- EMSX_SEQUENCE
- EMSX_AMOUNT
- EMSX_BROKER
- EMSX_ORDER_TYPE
- EMSX_TIF
properties:
EMSX_SEQUENCE:
type: integer
description: Order sequence number to route
example: 10
EMSX_AMOUNT:
type: integer
description: Quantity to route
example: 10
EMSX_BROKER:
type: string
description: Broker code
example: example_value
EMSX_ORDER_TYPE:
type: string
enum:
- MKT
- LMT
- STP
- STP LMT
example: MKT
EMSX_TIF:
type: string
enum:
- DAY
- GTC
- OPG
- IOC
- FOK
- GTD
- MOC
- LOC
example: DAY
EMSX_LIMIT_PRICE:
type: number
example: 42.5
EMSX_STOP_PRICE:
type: number
example: 42.5
EMSX_STRATEGY:
type: string
description: Broker strategy name
example: example_value
EMSX_STRATEGY_PARAMS:
type: object
additionalProperties: true
example: example_value
EMSX_EXEC_INSTRUCTIONS:
type: string
example: example_value
EMSX_ACCOUNT:
type: string
example: example_value
DeleteRouteRequest:
type: object
required:
- EMSX_SEQUENCE
- EMSX_ROUTE_ID
properties:
EMSX_SEQUENCE:
type: integer
description: Order sequence number
example: 10
EMSX_ROUTE_ID:
type: integer
description: Route ID to cancel
example: '500123'
OperationResponse:
type: object
properties:
STATUS:
type: integer
description: Operation status code (0 = success)
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
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
GetRoutesRequest:
type: object
properties:
scope:
type: string
enum:
- PRIVATE
- TEAM
example: PRIVATE
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
GetRoutesResponse:
type: object
properties:
routes:
type: array
items:
$ref: '#/components/schemas/Route'
example: []
ModifyRouteRequest:
type: object
required:
- EMSX_SEQUENCE
- EMSX_ROUTE_ID
properties:
EMSX_SEQUENCE:
type: integer
description: Order sequence number
example: 10
EMSX_ROUTE_ID:
type: integer
description: Route ID to modify
example: '500123'
EMSX_AMOUNT:
type: integer
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
- GTC
- OPG
- IOC
- FOK
- GTD
- MOC
- LOC
example: DAY
EMSX_STRATEGY:
type: string
example: example_value
EMSX_STRATEGY_PARAMS:
type: object
additionalProperties: true
example: example_value
Error:
type: object
properties:
STATUS:
type: integer
example: 10
MESSAGE:
type: string
example: example_value
REASON:
type: string
example: example_value
Route:
type: object
properties:
EMSX_SEQUENCE:
type: integer
description: Parent order sequence number
example: 10
EMSX_ROUTE_ID:
type: integer
description: Unique route identifier
example: '500123'
EMSX_BROKER:
type: string
description: Broker code
example: example_value
EMSX_AMOUNT:
type: integer
description: Routed quantity
example: 10
EMSX_FILLED:
type: integer
description: Filled quantity on this route
example: 10
EMSX_STATUS:
type: string
enum:
- CANCEL
- CXL_PND
- DONE
- FILL
- MOD_PND
- NEW
- PART_FILL
- RJCT
- SENT
- WORKING
example: CANCEL
EMSX_ORDER_TYPE:
type: string
example: example_value
EMSX_LIMIT_PRICE:
type: number
example: 42.5
EMSX_AVG_PRICE:
type: number
description: Average fill price for this route
example: 42.5
EMSX_STRATEGY:
type: string
example: example_value
EMSX_EXEC_INSTRUCTIONS:
type: string
example: example_value
EMSX_LAST_FILL_DATE:
type: string
example: example_value
EMSX_LAST_FILL_TIME:
type: string
example: example_value
EMSX_ROUTE_CREATE_DATE:
type: string
example: example_value
EMSX_ROUTE_CREATE_TIME:
type: string
example: example_value
GroupRouteRequest:
type: object
required:
- EMSX_SEQUENCE
- EMSX_BROKER
- EMSX_ORDER_TYPE
- EMSX_TIF
properties:
EMSX_SEQUENCE:
type: array
items:
type: integer
description: List of order sequence numbers to route as a group
example: []
EMSX_AMOUNT_PERCENT:
type: number
description: Percentage of each order to route (0-100)
minimum: 0
maximum: 100
example: 42.5
EMSX_BROKER:
type: string
example: example_value
EMSX_ORDER_TYPE:
type: string
enum:
- MKT
- LMT
- STP
- STP LMT
example: MKT
EMSX_LIMIT_PRICE:
type: number
example: 42.5
EMSX_TIF:
type: string
enum:
- DAY
- GTC
- OPG
- IOC
- FOK
- GTD
- MOC
- LOC
example: DAY
EMSX_STRATEGY:
type: string
example: example_value
EMSX_STRATEGY_PARAMS:
type: object
additionalProperties: true
example: example_value
RouteOrderResponse:
type: object
properties:
EMSX_SEQUENCE:
type: integer
example: 10
EMSX_ROUTE_ID:
type: integer
description: Unique route identifier
example: '500123'
MESSAGE:
type: string
example: example_value
GroupRouteResponse:
type: object
properties:
numRouted:
type: integer
description: Number of orders successfully routed
example: 10
MESSAGE:
type: string
example: example_value
routeIds:
type: array
items:
type: object
properties:
EMSX_SEQUENCE:
type: integer
EMSX_ROUTE_ID:
type: integer
example: []
responses:
BadRequest:
description: Invalid request parameters or business rule violation
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Bloomberg-issued JWT credential obtained from the Bloomberg Console.
oauth2:
type: oauth2
description: OAuth 2.0 client credentials flow
flows:
clientCredentials:
tokenUrl: https://bsso.blpprofessional.com/ext/api/as/token.oauth2
scopes:
eap: Access to Enterprise Access Point data
eap.catalogs.read: Read catalog data
eap.catalogs.write: Write catalog data