Bloomberg AIM Routes API
Create, modify, and manage routes to brokers
Create, modify, and manage routes to brokers
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/bloomberg-aim-routes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Bloomberg EMSX Routes 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: 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:
Error:
type: object
properties:
STATUS:
type: integer
example: 10
MESSAGE:
type: string
example: example_value
REASON:
type: string
example: example_value
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
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
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'
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
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
GetRoutesRequest:
type: object
properties:
scope:
type: string
enum:
- PRIVATE
- TEAM
example: PRIVATE
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: []
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
GetRoutesResponse:
type: object
properties:
routes:
type: array
items:
$ref: '#/components/schemas/Route'
example: []
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
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
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
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 for EMSX access