Number of APIs: 68
Exberry admin API allows to manage the exchange static data (instruments, trading calendars and more) as well as sending operational commands (EOD, halt trading and more). Sandbox environment endpoint ( Guidelines: All numbers are stringified unless explicitly mentioned otherwise Optional fields should be omitted from request if not required System ignores any additional parameter that are sent on request body but was not specified in this document Error response contains the below fields: Error response sample: In case of wrong path, generic error will be returned: By default the Admin API apply the commands based on the user default setup. * GET requests: included in the query string (?exchangeId=XYZ) Added Added Added new APIs to adjust active orders and current market data fields(not historical) in case of Corporate Actions Support filter for Adding new TIF to auction - IOC Adding new validation to Changed the derivativeInstrumentCategory filter to filter only instruments that are active and that has an underling instrument and is in this category, in: Added Suffix & Prefix for Symbol & Description filters Added Instruments API: Adding new filter and new values to filters in get instruments, halt and resume tradingHalt and tradingResume Mass cancelation: Adding new generic validation - 1 - Maximum request size is 60kb Added cancellation of active Quotes and active Alleged Trades to the Cancel on Disconnect. Added cancellation of active RFQs, Quotes and Alleged Trades when MP is blocked. Adding Adding optional fields to Adding more optional fields to Adding possibility for user to override the maker chaekcer flow - by super user with new permission Adding new API to Archive Instrument Adding new validations to instrument update : Removed the comment field in the mass cancel. Adding new Equilibrium Price matching algortihm for auctions Adding the ability to configure Remove Added Added new API- Added new API - Remove from the response Adding to the response Changed the error message returned when configured mandatory parties are not in the Trade Entry Adding new value to the maker checker The Adding more requestTypes to the Maker Checker Added support for removing Added a validation to prevent the creation of strategies with strategy leg instruments. Adding new API to the Operations API Adding new field to thew CBR Changed Update Instrument to allow changing the Adding the Maker Checker section Changed Added Bugfix to correct the error returned when updating quantity/price precision of a parent strategy instrument. Error before the fix: Change the Underlying Instrument of O(Option), F(Futures) and K(Strategies) instruments to Optional. Adding new optional fields to the MP APIs to support Self-Trade Prevention. Adding sorting to Auction objects in calendar objects Adding a new validation to PricePrecision and QuantityPrecision of strategy instruments(to validate that the same precision exists between parent and leg instruments). Adding new list to the instrument API- minQuantityTradeEntries Adding new validation to the trade entry - 102 (to consider minQuantityTradeEntries) Adding targetParties to order mass cancel Adding the contractSize to the validation in create and update instrument Adding edge case to the CBR Adding the strike and coupon to the validations in create and update instrument Auction changes: CBR Additions: Adding new validation to the create TickSize Changing bonds paramters values Adding new APIs: New subCategory - Bonds Added available values for: new API permission in MP and MP Group New Operations API allows to: IMPORTANT! New response on MP Group MP name max length = 30 In MP and MPGroup for name and compId fields will have ASCII (32 -126) chars only New strategy- strips Cancel On Disconnect flag in apiKey Trade Entry- response tradeId Instrument symbol- allowed /= characters New optional fields in the instrument for spreads strategy New optional fields in instrument API Instrument API- quoteCurrency is now limited to 10 characters End of day trigger MP status (Active/ Blocked) MP How it was- Market Data Trading Mass Cancel Drop Copy Reporting How it is now- Market Data group: Real Time Market Data Market Data Snapshot Trading group: Place Order Cancel Order Modify Order Replace Order Mass Cancel Drop Copy group: Execution Reports Mass Order Status Trades Reporting group: Orders History Trades History MP Group How it was- Market Data Drop Copy Reporting How it is now- Market Data group: Real Time Market Data Market Data Snapshot Drop Copy group: Execution Reports Mass Order Status Trades Reporting group: Orders History Trades History New Operations API allows to: Capture Trade entry Cancel Trade Set settlement prices Instrument object is now changed and now includes more optional fields New APIs: MPs API MP Groups API Instrument symbol can now contains .(dot) and -(hyphen) Calendar.tradingDays is now optional to allow auctions only trading schedule.General
URL_ORIGIN
): https://admin-api.uat.exberry-uat.io
NEW
Note: There is an option to enable the maker checker flow for some of the Admin actions. More information can be seen in the relevant section.
Error Handling
Name
Description
code
Error code
message
Error message
path
optional
path for the specific field generate the error
requiredPermission
optional
Name of missing permission for that action
instrumentId
optional
InstrumentId cause the error, relevant for action that affect multiple instruments such as Update Calendar
{
"code": 10004,
"message": "Wrong format",
"data": {
"path": [
"id"
]
}
}
{
"message": "Route not found",
"code": 1
}
Generic Error Codes
Code
Message
1
Timeout expired/ Exchange is unavailable/ Invalid JSON/ Route not found
NEW v1.31.0
1Maximum request size is 60kb
10000
Invalid token
10100
Permission denied for exchange [ExchangeID]
Multiple Exchanges
In case that single user needs to use the API for multiple exchange, exchangeId
(approved for this user) can be provided as an optional property in a request as follow:
* POST & PUT request: included in request body ({ ..., exchangeId: XYZ})
API Changes
v1.33.0(2024-08-21)
Accounts API
folder under MP API
requestType
accountId
to Create API Key
/api/operations/corporate-actions/apply-cash-distribution
/api/operations/corporate-actions/apply-security-distribution
trading halt
and trading resume
in the maker checkercreate calendar
v1.32.0(2024-08-07)
cancelReason
to the
v1.31.0(2024-07-16)
quantityPrecision
& pricePrecision
when active Alleged Trades exist.
AllegedTrade
to the targetEntities
targetScope
to support cancellation across all instruments.v1.30.0(2024-06-19)
targetEntities
to Mass cancelget instruments
request to allow filteringTrading Halt
and Trading Resume
requests
quantityPrecision
& pricePrecision
is not allowed when there are active/suspended orders or active RFQs/Quotesv1.29.0(2024-04-23)
auctions.extensions
v1.28.0(2024-04-16)
marketStatus
and tradingStatus
from the response of instrument APIlegPriceBands
to the instrumentplace order
replace order
v1.27.0(2024-04-01)
latestTimestamp
of makerchecker requestmakerUserType
of makerchecker requesttradingModels
field will always be included in the response of Create Update and Get InstrumentrequestType
- CancelOrder
comment
in cancel order is now optionalv1.26.0(2024-02-28)
tradingModels
from instruments.Cancel Order
rounding
v1.25.0 (2024-02-07)
stopDate
after the startDate
v1.24.0 (2024-01-17)
compId(String)
of MP
to compIds(String[])
deliveryStartDate
and deliveryEndDate
to the Instrument
v1.23.0 (2023-12-26)
Legs [price | quantity] precision must be equal to strategy price precision
, error after the fix: [FieldName] can't be changed for strategy related instrument
v1.21.0 (2023-11-20)
2023-10-03
2023-09-19
2023-08-08
2023-07-12
2023-06-06
2023-04-23
2023-03-22
2023-02-13
2023-02-08
2023-01-18
2023-01-03
2022-12-06
2022-11-21
2022-10-30
2022-10-03
2022-09-13
2022-08-31
2021-06-29
April 2021
POST {{URL_ORIGIN}}/api/auth/token
Name | Description |
---|---|
Email provided by Exberry team | |
Password | Password provided by Exberry team |
Name | Description |
---|---|
token | Token to be used for any API call |
expiresIn | Expiration time in seconds |
POST {{URL_ORIGIN}}/api/v2/instruments
This API allows to create a new instrument.
ID will be returned in the response, this ID is the unique identifier of the instrument and should be used when sending update commands.
Note: this ID can be retrieved via Get Instruments API.
Code | Message |
---|---|
1 | System is unavailable |
101 | [FieldName] not found |
101 | [FieldName] must be less than or equal to maxLong/10^ fieldPrecision |
101 | [FieldName] must be more than or equal to minLong/10^ fieldPrecision |
101 | Precision of [Fieldname] is greater than [quantityPrecision] |
101 | Precision of [Fieldname] is greater than [pricePrecision] |
101 | Precision of quantityIncrement must be [quantityPrecision] (quantityPrecision) |
101 | minQuantity should be less than maxQuantity or equal to it |
101 | minPrice should be less than maxPrice or equal to it |
101 | maxQuantity should be less than maxDepth or equal to it |
101 | Stop Date must be after Start Date |
101 | Stop date must be in future |
101 | underlyingInstrumentId/legsInstrumentIds not found |
101 | Legs [price/quantity] precision must be equal to strategy price precision |
102 | symbol already exists for id: [instrumentId] |
105 | Legs [price/quantity] precision must be equal to strategy price precision |
NEW v1.26.0 105 |
Strategies are not allowed as legs |
2603 | [fieldName] of [fieldValue] is not allowed as instrument price precision is [instrumentPricePrecision] |
2605 | [FieldName] must be less than maxLong/10^ pricePrecision |
10001 | Permission denied |
PUT {{URL_ORIGIN}}/api/v2/instruments/:id
This API allows to update existing instrument.
All validations in create instrument and the below
All validations in create instrument and the below
Code | Message |
---|---|
100 | Missing or invalid parameter: [FieldName] |
101 | [FieldName] not found |
101 | [Start Date/ |
101 | No updates allowed after the stop date |
101 | Category can’t be changed for instrument that is underlying instrument |
101 | [FieldName] can’t be changed for strategy related instrument |
NEW v1.30.0 105 |
Mass cancellation must be done before disabling the instrument |
REMOVED v1.30.0 |
|
REMOVED v1.30.0 |
|
REMOVED v1.30.0 |
|
REMOVED v1.30.0 |
|
REMOVED v1.30.0 |
|
NEW v1.30.0 2402 |
Mass cancellation must be done before changing quantityPrecision |
NEW v1.30.0 2402 |
Mass cancellation must be done before changing pricePrecision |
10001 | Permission denied |
GET {{URL_ORIGIN}}/api/v2/instruments
This API allows to get a list of all instruments with their details.
Field | Type | Description |
---|---|---|
symbol | string | Optional free text search by symbol NEW v1.32.0 see the Suffix/Prefix table below |
description | string | Optional free text search by description NEW v1.32.0 see the Suffix/Prefix table below |
calendarId | int | Optional search by calendarId |
tickSizeTableId | int | Optional search by tickSizeTableId |
tradingModel | eNum | Optional search by tradingModel - CLOB - RFQ |
startDateFrom | Date | Optional Search for the instrument that startdate ≥ dateFrom. Format:YYYY-MM-DDThh:mm:ss[.SSS] NEW v1.31.0 for instruments without startDate, send - 0000-01-01T00:00 |
startDateTo | Date | Optional Search for the instrument that startdate < dateTo. Format:YYYY-MM-DDThh:mm:ss[.SSS] |
stopDateFrom | Date | Optional Search for the instrument that stopdate ≥ dateFrom. Format:YYYY-MM-DDThh:mm:ss[.SSS] NEW v1.31.0 for instruments without stopDate, send - 0000-01-01T00:00 |
stopDateTo | Date | Optional Search for the instrument that stopdate < dateTo. Format:YYYY-MM-DDThh:mm:ss[.SSS] |
product | int | Optional Search by underlyingInstrumentId NEW v1.31.0 for instruments without product - send 0 |
NEW v1.31.0 derivativeInstrumentCategory |
eNum | Optional Search instruments that has an underling instrument and is in this category NEW v1.32.0 & active For example see below for values see in the Category List - here |
CHANGED v1.31.0 statuses |
[]eNum | Optional Search by the list of statuses - ACTIVE - DISABLED - ARCHIVED |
categories | []eNum | Optional Search by catagory. for values see in the Category List - here |
subCategory | eNum | Optional Search by sub-catagory. for values see in the SubCategory List - here |
strategy | eNum | Optional Search by strategy. - SPREAD - STRIP |
offset | int | Optional Which record to start send from If nothing was sent default is 0 (=first record) |
limit | int | Optional How many records to include in each page If nothing was sent default is 10,000 |
orderBy | object | Optional object with 2 parameters: - field (String) = Symbol - direction (Asc, Desc) direction If nothing or invalid field was sent the default is [Symbol, Asc] |
Example for derivativeInstrumentCategory instrument -
InstrumentId: 1,
InstrumentId: 2,
InstrumentId: 3,
InstrumentId: 4,
InstrumentId: 10, underlyingInstrumentId: 1, category: Futures, status: active
InstrumentId: 11, underlyingInstrumentId: 2, category: Futures, status: disabled
InstrumentId: 12, underlyingInstrumentId: 3, category: Spot, status: active
InstrumentId: 13, underlyingInstrumentId: 4, category: Spot, status: disabled
When Derivative Instrument Category = Futures → InstrumentId:1 is returned.
When Derivative Instrument Category = Spot →InstrumentId:3 is returned.
Pattern Type | Description | Sample |
---|---|---|
Contains the word X |
Find any description/ symbols that contains X |
X |
Starts with X |
Find any description/ symbols that start with X |
X* |
Ends with X |
Find any description/ symbol that ends with X |
*X |
Equal to 'X' | Find any description/ symbol that = X |
'X' |
Code | Message |
---|---|
102 | Single category should be sent |
102 | Wrong Sub Category |
102 | Strategies category should be sent |
100 | Missing or invalid parameter: [FieldName] |
GET {{URL_ORIGIN}}/api/v2/instruments/:id
This API allows to get a single instrument details.
POST {{URL_ORIGIN}}/api/v2/instruments/:id/archive
This API allows to archiving of existing instrument
Please contact the Exberry team if you would like to enable it on your system.
In order to support a large number of instruments we introduce the ability to archive instruments.
This is an irreversible operation that should happen only in case the instrument is no longer in use permanently.
When an instrument is archived, you can still access historical financial information about it, including Orders, Order events, Trades, and Ops reports. You can also create a new instrument with the same symbol, but the archived instrument is no longer tradable.
Archived instruments will be served only in those places:
In all other APIs, archived instruments will not be served.
Prior to archiving an instrument, it must first be disabled, in case this instrument is a leg of a strategy, the parent must be archived prior to its legs.
Code | Message |
---|---|
1 | Exchange is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | [FieldName] not found |
102 | Disable the instrument before attempting to archive it |
106 | Archiving strategy [parentSymbol] is required |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/v2/calendars
This API allows to create a new calendar.
ID will be returned in the response, this ID is the unique identifier of the calendar and should be used when sending update commands.
Note: this ID can be retrieved via Get Calendars API.
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | Holiday date should not be sent twice |
101 | Wrong holiday close time |
101 | name already exists |
NEW v1.33.0 101 |
IOC TIF is allowed only for Equilibrium Price |
10001 | Permission denied |
10005 | Not found |
20000 | Calendar Name already exists |
20001 | Wrong format |
20002 | Wrong format |
PUT {{URL_ORIGIN}}/api/v2/calendars/:id
This API allows to update existing calendar.
All validations in create calendar and the below
Code | Message |
---|---|
101 | [FieldName] not found |
101 | AutoResume auction is required by [CBR.name] |
10001 | Permission denied |
10005 | Not found |
20000 | Calendar Name already exists |
20001 | Wrong format |
20002 | Wrong format |
GET {{URL_ORIGIN}}/api/v2/calendars/:id
This API allows to get a single calendar details.
GET {{URL_ORIGIN}}/api/v2/calendars
This API allows to get a list of all calendars with their details.
POST {{URL_ORIGIN}}/api/v2/calendars/:id/end-of-day
This API allows to trigger EOD for a specific calendar
Code | Message |
---|---|
1 | System is unavailable |
101 | [FieldName] not found |
102 | EOD is not allowed |
10001 | Permission denied |
GET {{URL_ORIGIN}}/api/accounts
This API allows to get a list of all MPs with their details.
GET {{URL_ORIGIN}}/api/accounts/:id
This API allows to get a list of all MPs with their details.
POST {{URL_ORIGIN}}/api/accounts
This API allows to create a new MP.
ID will be returned in the response, this ID is the unique identifier of the MP and should be used when sending update commands.
Note: this ID can be retrieved via Get MPs API.
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
102 | [FieldName] already exists |
10001 | Permission denied |
PUT {{URL_ORIGIN}}/api/accounts/:id
This API allows to create a new MP.
ID will be returned in the response, this ID is the unique identifier of the MP and should be used when sending update commands.
Note: this ID can be retrieved via Get MPs API.
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
102 | [FieldName] already exists |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/mp-groups/49/api-keys
DELETE {{URL_ORIGIN}}/api/mp-groups/1794788082/api-keys/cadd3e0d-c1a0-4db9-a3d5-c7692675a1d3
GET {{URL_ORIGIN}}/api/mp-groups/49/api-keys/e55da5a9-a171-483e-8735-ebcc2f5eabe8
GET {{URL_ORIGIN}}/api/mp-groups/49/api-keys
POST {{URL_ORIGIN}}/api/mp-groups
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | [FieldName] not found |
102 | [FieldName] already exists |
10001 | Permission denied |
PUT {{URL_ORIGIN}}/api/mp-groups/1794788082
All validations in create instrument and the below
Code | Message |
---|---|
101 | [FieldName] not found |
GET {{URL_ORIGIN}}/api/mp-groups/1035143780
GET {{URL_ORIGIN}}/api/mp-groups
POST {{URL_ORIGIN}}/api/cbrs
This API allows to create a new CBR.
ID will be returned in the response, this ID is the unique identifier of the CBR and should be used when sending update commands.
Note: this ID can be retrieved via Get CBRs API.
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | [FieldName] not found |
102 | name already exists |
105 | Priority [value] already exists |
10001 | Permission denied |
PUT {{URL_ORIGIN}}/api/cbrs/31
This API allows to update existing CBR.
All validations in create CBR
Code | Message |
---|---|
101 | [FieldName] not found |
10001 | Permission denied |
GET {{URL_ORIGIN}}/api/cbrs
This API allows to get CBRs details.
GET {{URL_ORIGIN}}/api/cbrs/:id
This API allows to get a single CBR details.
POST {{URL_ORIGIN}}/api/tick-sizes
This API allows to create a new TickSize.
ID will be returned in the response, this ID is the unique identifier of the TickSize and should be used when sending update commands.
Note: this ID can be retrieved via Get TickSizes API.
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 new |
Max number of ticksizes (items) is 25 |
102 | name already exists |
10001 | Permission denied |
PUT {{URL_ORIGIN}}/api/tick-sizes/19
This API allows to update existing TickSize.
All validations in create TickSize and the below
Code | Message |
---|---|
101 | [FieldName] not found |
10001 | Permission denied |
10004 | Wrong format |
2605 | [FieldName] must be less than maxLong/10^ pricePrecision for [Instrument] |
2603 | [fieldValue] is not allowed as price precision is [lowestinstrumentPricePrecision] for [Instrument] |
GET {{URL_ORIGIN}}/api/tick-sizes
This API allows to get TickSizes details.
GET {{URL_ORIGIN}}/api/tick-sizes/:id
This API allows to get a single TickSize details.
POST {{URL_ORIGIN}}/api/operations/enter-trade
Trade Entry API allows you to capture trade that was done out of the order book
Field | Type | Description |
---|---|---|
instrumentId | Int | Instrument id for the trade |
type | eNum | Block/ EFRP/ Other of the trade |
price | Decimal | Trade price |
quantity | Decimal | Trade quantity |
buy | Side obj | See below |
sell | Side obj | See below |
Field | Type | Description |
---|---|---|
mpId | Int | mpId |
accountType | eNum | Client/House |
parties | []obj | list of parties obj |
Field | Type | Description |
---|---|---|
id | string(20) | The Id of the party |
source | Char | Id source = D |
role | int | Id role = 38 |
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
100 | Trade [FieldName] must be less than [maxLong/10^ fieldPrecision |
100 | Trade [FieldName] must be above than [minLong/10^ fieldPrecision] |
101 | [FieldName] not found |
102 | Market is closed |
102 | Currently not allowed |
102 | Trading is not allowed during auction call |
102 | Trading is not allowed during crossing |
102 | Instrument trading is not allowed |
102 | Price precision is[PricePrecision] |
102 | Quantity precision is[QuantityPrecision] |
102 | Minimum trade quantity is [MinQuantity] |
NEW 102 |
MinQuantity = max( minQuantity, minQuantityTradeEntry.amount) |
102 | Maximum trade quantity is [MaxQuantity] |
102 | Quantity increment is [quantityIncrement] |
102 | Instrument trading is halted |
102 | Price breaches [FieldName] of [FieldValue] |
102 | Maximum value is [maxOrderValue] |
102 | Price tick size is [tickSize] |
102 | Trading is not allowed |
102 | Missing position account |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/cancel-trade
Trade Cancellation API allows you to cancel a trade
Field | Type | Description |
---|---|---|
instrumentId | int String | Instrument ID to cancel the orders |
matchId | int String | Trade Id to cancel |
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | [FieldName] not found |
102 | Market is closed |
102 | Currently not allowed |
102 | Instrument trading is not allowed |
105 | Cancelation failed, trade is already canceled or from previous days or is leg trade |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/place-order
Place Order API allows you to place an order for mp
For more details about place order - see here
Field | Type | Description |
---|---|---|
instrumentId | Int String | Instrument id for the order |
mpId | Int String | mpId |
mpOrderId | Long | Simialar to the trading API |
orderType | Enum | Simialar to the trading API |
side | Enum | Simialar to the trading API |
quantity | Decimal String | Simialar to the trading API |
price optional |
Decimal String | Simialar to the trading API |
timeInForce optional |
Enum | Simialar to the trading API |
expiryDate optional |
UTC Time | Simialar to the trading API |
expiryDay optional |
String | Simialar to the trading API |
minQuantity optional |
Decimal String | Simialar to the trading API |
stopPrice optional |
Decimal String | Simialar to the trading API |
stpAction optional |
Enum | Simialar to the trading API |
accountType optional |
Enum | Simialar to the trading API |
parties optional |
[] Object | Simialar to the trading API |
Validations: same as place order, with the below changes:
Additional validation:
Code | Message |
---|---|
100 | Missing or invalid parameter: [FieldName] |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/replace-order
Replace Order API allows you to replace an order for mp.
For more details about replace order - see here
Field | Type | Description |
---|---|---|
instrumentId | Int String | Original order instrument Id |
orderId | Int String | Exchange order ID to be replaced |
quantity | Decimal String | Similar to the trading API |
price optional |
Decimal String | Similar to the trading API |
timeInForce optional |
Enum | Simialar to the trading API |
expiryDate optional |
UTC Time | Similar to the trading API |
expiryDay optional |
String | Similar to the trading API |
minQuantity optional |
Decimal String | Similar to the trading API |
stopPrice optional |
Decimal String | Similar to the trading API |
stpAction optional |
Enum | Similar to the trading API |
parties optional |
[] Object | Simialar to the trading API |
Validations: same as replaceOrder, with the below changes:
Additional validations:
Code | Message |
---|---|
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/cancel-order
Cancel Order API allows you to cancel order
Field | Type | Description |
---|---|---|
instrumentId | Int | Instrument id for the trade |
orderId | Int | the Id of the order we want to cancel |
(NEW 1.32.0) cancelReason |
Enum | Optional Cancellation reason. (populated in the cancellation events) Allowed values: CancelOrderOnBehalf(default if nothing is sent) CancelRequest CorporateAction |
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | [FieldName] not found |
102 | Trading is not allowed during crossing |
102 | Instrument trading is not allowed |
102 | Market is closed |
102 | Instrument trading is halt |
101 | Not allowed |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/mass-cancel
Mass Cancel API allows you to mass cancel pending activity per request critirias:
Request Parameters
Field | Type | Description |
---|---|---|
instrumentId | Stringfied number | Instrument ID to mass cancel the orders |
Removed v1.30.0 |
||
mpId | Stringfied number | Optional MP ID to mass cancel the target entities Not sending this parameter will mass cancel for all MPs |
targetParties | []TargetParty objects | Optional targetParties to target the mass cancel orders. If multiple targetParty objects are in a request, the system cancels orders with all targetParties. For example: Order1 has party1 Order2 has party1 and party2 Order3 has party1, party2 and party3 Order4 has no parties A mass cancel request with targetParties(party1 and party2) will cancel order 2 and 3. Note: For accounts: id=accountId, source=D, role=1001. |
(NEW 1.30.0) targetEntities |
[] Enum | Optional The system cancels the type of active entities mentioned in the request. Array of below values: Order - cancels all orders RFQ - cancels all RFQs and all active quotes belong to them Quote - cancels all Quotes (NEW v1.31.0) AllegedTrade - cancels all Alleged Trades If not exist, system considers as targetEntities = [‘Order’] |
(NEW 1.31.0) targetScope |
Enum | The field specifies the scope the mass cancel request applies to Allowed values: Instrument - cancel scope is a single instrument All - cancel scope is all instruments If not sent “Instrument” is considered. |
(NEW 1.32.0) cancelReason |
Enum | Optional Cancellation reason. (populated in the cancellation events) Allowed values: MassCancelOnBehalf (default if nothing is sent) MassCancelRequest CorporateAction |
Field | Type | Description |
---|---|---|
id | string | TargetParty id |
source | char | TargetParty source |
role | int | TargetParty role |
Code | Message |
---|---|
2001 | Wrong action |
2001 | Wrong instrumentIds |
2401 | Wrong instrumentId: [instrumentId] |
403 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/settlement-price
Set Settlement Price API allows you to set settlement price for an instrument
Field | Type | Description |
---|---|---|
instrumentId | string | Instrument ID to set a Settlement Price |
price | string | the price to set |
Code | Message |
---|---|
1 | Exchange is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | instrumentId not found |
102 | Currently not allowed |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/halt
Trading Halt API allows you to halt the trading for a:
NEW v1.30.0
Multiple filtered instruments, see here for more detailsField | Type | Description |
---|---|---|
instrumentIds | [] Stringfied numbers | Optional List of instruments to halt Note: not sending this parameter will halt the trading for all instruments |
Code | Message |
---|---|
2001 | Wrong action |
2001 | Wrong instrumentIds |
2401 | Wrong instrumentId: [instrumentId] |
403 | Permission denied |
NEW v1.31.0 201 |
You can send up to 750 instruments per request |
POST {{URL_ORIGIN}}/api/operations/resume
Trading Resume API allows you to resume the trading for a:
NEW v1.30.0
Multiple filtered instruments, see here for more detailsType | Description | |
---|---|---|
instrumentIds | [] Stringfied numbers | Optional List of instruments to resume Note: not sending this parameter will resume the trading for all instruments |
Code | Message |
---|---|
2001 | Wrong action |
2001 | Wrong instrumentIds |
2401 | Wrong instrumentId: [instrumentId] |
403 | Permission denied |
NEW v1.31.0 201 |
You can send up to 750 instruments per request |
POST {{URL_ORIGIN}}/api/operations/corporate-actions/apply-cash-distribution
Apply Cash Distribution API allows you to adjust active orders and current market data fields(not historical) in case of a Corporate Actions that results cash distributions (such as cash dividend).
Field | Type | Description |
---|---|---|
instrumentId | Stringfied number | Instrument ID to apply the cash distribution |
amount | Stringfied Decimal | Cash Amount per share Maximum 10 decimal places |
Field | Description |
---|---|
numberOfOrders | The total number of active/suspended orders for the instrument before applying the corporate action |
numberOfNewOrders | The number of new orders generated for the corporate action |
numberOfCancelledOrders | The number of cancelled orders for the corporate action |
Code | Message |
---|---|
1 | System is unavailable |
10001 | Permission denied |
100 | Missing or invalid parameter: [FieldName] |
100 | [FieldName] must be ≤ [maxLong/10^ fieldPrecision] |
100 | [FieldName] must be ≥ [minLong/10^ fieldPrecision] |
102 | Instrument trading is not allowed |
102 | Trading is not allowed during auction call |
102 | Trading is not allowed during crossing |
102 | Instrument should be halted when market is open |
102 | Apply Cash Distribution is not allowed when there is no Closing Price |
POST {{URL_ORIGIN}}/api/operations/apply-security-distribution
Apply Security Distribution API allows you to adjust active orders and current market data fields(not historical) in case of a Corporate Actions that results security distributions (such as stock dividend).
Field | Type | Description |
---|---|---|
instrumentId | Stringfied number | Instrument ID to apply the cash distribution |
ratioOld | Stringfied Decimal | ratioOld of the stock dividend/forward split Maximum 10 decimal places If 1 new share is issued for each 2 shares held, ratioOld=2 and ratioNew=1. (European Convention) |
ratioNew | Stringfied Decimal | ratioNew of the stock dividend/forward split Maximum 10 decimal places See description of ratioOld for more details |
quantityRounding | Enum | Rounding method applicable to fractional quantities Allowed values: DOWN UP NONE |
Same as Apply Cash Distribution
Same as Apply Cash Distribution with below exceptions
Code | Message |
---|---|
102 | Apply Cash Distribution is not allowed when there is no Closing Price Not applicable to Apply Security Distribution |
PUT {{URL_ORIGIN}}/api/v2/instruments/24220
POST {{URL_ORIGIN}}/api/v2/instruments/:id/archive
This API allows to archive existing instrument which TBD...
Code | Message |
---|---|
1 | Exchange is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | [FieldName] not found |
102 | Disable the instrument before attempting to archive it |
106 | Archiving strategy [parentSymbol] is required |
10001 | Permission denied |
PUT {{URL_ORIGIN}}/api/v2/calendars/10
PUT {{URL_ORIGIN}}/api/mps/15
POST {{URL_ORIGIN}}/api/accounts
This API allows to create a new MP.
ID will be returned in the response, this ID is the unique identifier of the MP and should be used when sending update commands.
Note: this ID can be retrieved via Get MPs API.
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
102 | [FieldName] already exists |
10001 | Permission denied |
PUT {{URL_ORIGIN}}/api/accounts/:id
This API allows to create a new MP.
ID will be returned in the response, this ID is the unique identifier of the MP and should be used when sending update commands.
Note: this ID can be retrieved via Get MPs API.
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
102 | [FieldName] already exists |
10001 | Permission denied |
PUT {{URL_ORIGIN}}/api/mp-groups/1794788082
All validations in create instrument and the below
Code | Message |
---|---|
101 | [FieldName] not found |
PUT {{URL_ORIGIN}}/api/cbrs/31
This API allows to update existing CBR.
All validations in create CBR
Code | Message |
---|---|
101 | [FieldName] not found |
10001 | Permission denied |
PUT {{URL_ORIGIN}}/api/tick-sizes/19
This API allows to update existing TickSize.
All validations in create TickSize and the below
Code | Message |
---|---|
101 | [FieldName] not found |
10001 | Permission denied |
10004 | Wrong format |
2605 | [FieldName] must be less than maxLong/10^ pricePrecision for [Instrument] |
2603 | [fieldValue] is not allowed as price precision is [lowestinstrumentPricePrecision] for [Instrument] |
POST {{URL_ORIGIN}}/api/operations/cancel-order
Trade Entry API allows you to capture trade that was done out of the order book
Field | Type | Description |
---|---|---|
instrumentId | Int | Instrument id for the trade |
type | eNum | Block/ EFRP/ Other of the trade |
price | Decimal | Trade price |
quantity | Decimal | Trade quantity |
buy | Side obj | See below |
sell | Side obj | See below |
Field | Type | Description |
---|---|---|
mpId | Int | mpId |
accountType | eNum | Client/House |
parties | []obj | list of parties obj |
Field | Type | Description |
---|---|---|
id | string(20) | The Id of the party |
source | Char | Id source = D |
role | int | Id role = 38 |
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
100 | Trade [FieldName] must be less than [maxLong/10^ fieldPrecision |
100 | Trade [FieldName] must be above than [minLong/10^ fieldPrecision] |
101 | [FieldName] not found |
102 | Market is closed |
102 | Currently not allowed |
102 | Trading is not allowed during auction call |
102 | Trading is not allowed during crossing |
102 | Instrument trading is not allowed |
102 | Price precision is[PricePrecision] |
102 | Quantity precision is[QuantityPrecision] |
102 | Minimum trade quantity is [MinQuantity] |
NEW 102 |
MinQuantity = max( minQuantity, minQuantityTradeEntry.amount) |
102 | Maximum trade quantity is [MaxQuantity] |
102 | Quantity increment is [quantityIncrement] |
102 | Instrument trading is halted |
102 | Price breaches [FieldName] of [FieldValue] |
102 | Maximum value is [maxOrderValue] |
102 | Price tick size is [tickSize] |
102 | Trading is not allowed |
102 | Missing position account |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/enter-trade
Trade Entry API allows you to capture trade that was done out of the order book
Field | Type | Description |
---|---|---|
instrumentId | Int | Instrument id for the trade |
type | eNum | Block/ EFRP/ Other of the trade |
price | Decimal | Trade price |
quantity | Decimal | Trade quantity |
buy | Side obj | See below |
sell | Side obj | See below |
Field | Type | Description |
---|---|---|
mpId | Int | mpId |
accountType | eNum | Client/House |
parties | []obj | list of parties obj |
Field | Type | Description |
---|---|---|
id | string(20) | The Id of the party |
source | Char | Id source = D |
role | int | Id role = 38 |
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
100 | Trade [FieldName] must be less than [maxLong/10^ fieldPrecision |
100 | Trade [FieldName] must be above than [minLong/10^ fieldPrecision] |
101 | [FieldName] not found |
102 | Market is closed |
102 | Currently not allowed |
102 | Trading is not allowed during auction call |
102 | Trading is not allowed during crossing |
102 | Instrument trading is not allowed |
102 | Price precision is[PricePrecision] |
102 | Quantity precision is[QuantityPrecision] |
102 | Minimum trade quantity is [MinQuantity] |
NEW 102 |
MinQuantity = max( minQuantity, minQuantityTradeEntry.amount) |
102 | Maximum trade quantity is [MaxQuantity] |
102 | Quantity increment is [quantityIncrement] |
102 | Instrument trading is halted |
102 | Price breaches [FieldName] of [FieldValue] |
102 | Maximum value is [maxOrderValue] |
102 | Price tick size is [tickSize] |
102 | Trading is not allowed |
102 | Missing position account |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/cancel-trade
Trade Cancellation API allows you to cancel a trade
Field | Type | Description |
---|---|---|
instrumentId | int | Instrument ID to cancel the orders |
matchId | int | Trade Id to cancel |
Code | Message |
---|---|
1 | System is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | [FieldName] not found |
102 | Market is closed |
102 | Currently not allowed |
102 | Instrument trading is not allowed |
105 | Cancelation failed, trade is already canceled or from previous days or is leg trade |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/settlement-price
Set Settlement Price API allows you to set settlement price for an instrument
Field | Type | Description |
---|---|---|
instrumentId | string | Instrument ID to set a Settlement Price |
price | string | the price to set |
Code | Message |
---|---|
1 | Exchange is unavailable |
100 | Missing or invalid parameter: [FieldName] |
101 | instrumentId not found |
102 | Currently not allowed |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/halt
Trading Halt API allows you to halt the trading for a:
Field | Type | Description |
---|---|---|
instrumentIds | [] Stringfied numbers | Optional List of instruments to halt Note: not sending this parameter will halt the trading for all instruments |
Code | Message |
---|---|
2001 | Wrong action |
2001 | Wrong instrumentIds |
2401 | Wrong instrumentId: [instrumentId] |
403 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/resume
Trading Resume API allows you to resume the trading for a:
Field | Type | Description |
---|---|---|
instrumentIds | [] Stringfied numbers | Optional List of instruments to resume Note: not sending this parameter will resume the trading for all instruments |
Code | Message |
---|---|
2001 | Wrong action |
2001 | Wrong instrumentIds |
2401 | Wrong instrumentId: [instrumentId] |
403 | Permission denied |
POST {{URL_ORIGIN}}/api/operations/mass-cancel
Mass Cancel API allows you to mass cancel orders for :
NEW
Specific targetParty or multiple targetParties
If multiple targetParty objects are in a request, the system cancels orders with all targetParties.
For example:
A mass cancel request with targetParties(party1 and party2) will cancel order 2 and 3.
Request Parameters
Field | Type | Description |
---|---|---|
instrumentId | Stringfied number | Instrument ID to mass cancel the orders |
comment | String | Free text comment |
mpId | Stringfied number | Optional MP ID to mass cancel the orders Note: not sending this parameter will mass cancel the orders for all MPs |
NEW targetParties |
[]TargetParty objects | Optional targetParties to target the mass cancel orders. Note: For accounts: id=accountId, source=D, role=1001. |
Field | Type | Description |
---|---|---|
id | string | TargetParty id |
source | char | TargetParty source |
role | int | TargetParty role |
Code | Message |
---|---|
2001 | Wrong action |
2001 | Wrong instrumentIds |
2401 | Wrong instrumentId: [instrumentId] |
403 | Permission denied |
POST {{URL_ORIGIN}}/api/v2/calendars/:id/end-of-day
This API allows to trigger EOD for a specific calendar
Code | Message |
---|---|
1 | System is unavailable |
101 | [FieldName] not found |
102 | EOD is not allowed |
10001 | Permission denied |
POST {{URL_ORIGIN}}/api/instruments
This API allows to create a new instrument.
ID will be returned in the response, this ID is the unique identifier of the instrument and should be used when sending update commands.
Note: this ID can be retrieved via Get Instruments API.
GET {{URL_ORIGIN}}/api/instruments
This API allows to get a list of all instruments with their details.
GET {{URL_ORIGIN}}/api/instruments/:id
This API allows to get a single instrument details.
PUT {{URL_ORIGIN}}/api/instruments/:id
This API allows to update existing instrument.
POST {{URL_ORIGIN}}/api/calendars
This API allows to create a new calendar.
ID will be returned in the response, this ID is the unique identifier of the calendar and should be used when sending update commands.
Note: this ID can be retrieved via Get Calendars API.
PUT {{URL_ORIGIN}}/api/calendars/:id
This API allows to update existing calendar.
GET {{URL_ORIGIN}}/api/calendars/:id
This API allows to get a single calendar details.
GET {{URL_ORIGIN}}/api/calendars
This API allows to get a list of all calendars with their details.
POST {{URL_ORIGIN}}/api/calendars/10/end-of-day
This API allows to trigger EOD for a specific calendar