Logo
Admin API API Documentation

Exberry Admin API

Number of APIs: 68


General

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 (URL_ORIGIN): https://admin-api.uat.exberry-uat.io

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

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

Error response contains the below fields:

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

Error response sample:

{
    "code": 10004,
    "message": "Wrong format",
    "data": {
        "path": [
            "id"
        ]
    }
}

In case of wrong path, generic error will be returned:

{
    "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 1 Maximum request size is 60kb
10000 Invalid token
10100 Permission denied for exchange [ExchangeID]

Multiple Exchanges

By default the Admin API apply the commands based on the user default setup.
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:

* GET requests: included in the query string (?exchangeId=XYZ)
* POST & PUT request: included in request body ({ ..., exchangeId: XYZ})


API Changes

v1.33.0(2024-08-21)

  • Added Accounts API folder under MP API

    • Added accounts related actions to the maker checker requestType
  • Added accountId to Create API Key

  • Added new APIs to adjust active orders and current market data fields(not historical) in case of Corporate Actions

    • /api/operations/corporate-actions/apply-cash-distribution
    • /api/operations/corporate-actions/apply-security-distribution
  • Support filter for trading halt and trading resume in the maker checker

  • Adding new TIF to auction - IOC

  • Adding new validation to create calendar

v1.32.0(2024-08-07)

  • Changed the derivativeInstrumentCategory filter to filter only instruments that are active and that has an underling instrument and is in this category, in:

    • Get Instruments
    • Trading Halt
    • Trading Resume
  • Added Suffix & Prefix for Symbol & Description filters

  • Added cancelReason to the

    • Cancel Order
    • Mass Cancel

v1.31.0(2024-07-16)

  • Instruments API:

    • Change the status filter to be a list and rename it to statues.
    • Added a validation to prevent changing quantityPrecision & pricePrecision when active Alleged Trades exist.
    • Adding new filter and new values to filters in get instruments, halt and resume

      • product - new value
      • startDateFrom - new value
      • stopDateFrom - new value
      • derivativeInstrumentCategory - new filter
  • tradingHalt and tradingResume

    • Same changes mentioned above on instrument filters
    • Adding new validation to the halt & resume - 201 - You can send up to 750 instruments per request
  • Mass cancelation:

    • Added AllegedTrade to the targetEntities
    • Added targetScope to support cancellation across all instruments.
  • 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.

v1.30.0(2024-06-19)

  • Adding targetEntities to Mass cancel

  • Adding optional fields to get instruments request to allow filtering

  • Adding more optional fields to Trading Halt and Trading Resume requests

  • Adding possibility for user to override the maker chaekcer flow - by super user with new permission

  • Adding new API to Archive Instrument

    • This action can be cofigured to require make/ checker process
    • Adding new activityStatus to get instrument
  • Adding new validations to instrument update :

    • Disabling an instrumentis not allowed when there are active/suspended orders or active RFQs/Quotes
    • Changing quantityPrecision & pricePrecision is not allowed when there are active/suspended orders or active RFQs/Quotes
  • Removed the comment field in the mass cancel.

v1.29.0(2024-04-23)

  • Adding new Equilibrium Price matching algortihm for auctions

  • Adding the ability to configure auctions.extensions

v1.28.0(2024-04-16)

  • Remove marketStatus and tradingStatus from the response of instrument API

  • Added legPriceBands to the instrument

  • Added new API- place order

  • Added new API - replace order

v1.27.0(2024-04-01)

  • Remove from the response latestTimestamp of makerchecker request

  • Adding to the response makerUserType of makerchecker request

  • Changed the error message returned when configured mandatory parties are not in the Trade Entry

  • tradingModels field will always be included in the response of Create Update and Get Instrument

  • Adding new value to the maker checker requestType - CancelOrder

  • The comment in cancel order is now optional

v1.26.0(2024-02-28)

  • Adding more requestTypes to the Maker Checker

  • Added support for removing tradingModels from instruments.

  • Added a validation to prevent the creation of strategies with strategy leg instruments.

  • Adding new API to the Operations API Cancel Order

  • Adding new field to thew CBR rounding

v1.25.0 (2024-02-07)

  • Changed Update Instrument to allow changing the stopDate after the startDate

  • Adding the Maker Checker section

v1.24.0 (2024-01-17)

  • Changed compId(String) of MP to compIds(String[])

  • Added deliveryStartDate and deliveryEndDate to the Instrument

v1.23.0 (2023-12-26)

  • Bugfix to correct the error returned when updating quantity/price precision of a parent strategy instrument. Error before the fix:Legs [price | quantity] precision must be equal to strategy price precision, error after the fix: [FieldName] can't be changed for strategy related instrument

  • 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.

v1.21.0 (2023-11-20)

  • 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).

2023-10-03

  • Deprecate v1 Calendar and V1 Instrument

2023-09-19

  • Adding new list to the instrument API- minQuantityTradeEntries

  • Adding new validation to the trade entry - 102 (to consider minQuantityTradeEntries)

2023-08-08

  • Adding targetParties to order mass cancel

  • Adding the contractSize to the validation in create and update instrument

    • 101- Precision of [Fieldname] is greater than [quantityPrecision]
  • Adding edge case to the CBR

2023-07-12

  • Adding the strike and coupon to the validations in create and update instrument

    • 101- Precision of [Fieldname] is greater than [quantityPrecision]
    • 101- [FieldName] must be less than or equal to maxLong/10^ fieldPrecision

2023-06-06

  • Auction changes:

    • Adding seconds to start time
    • New field- overrideReferencePrice
  • CBR Additions:

    • New type of CBR that monitor market rate changes since the previous trade rate (last price).
    • New actionType: RESUME_AUCTION
  • Adding new validation to the create TickSize

  • Changing bonds paramters values

2023-04-23

  • Adding new APIs:

    • TickSize
    • CBR

2023-03-22

  • New subCategory - Bonds

    • New underlyingAssets
    • New optional fields in instruments

2023-02-13

  • Added available values for:

    • categoty
    • subCategory
    • underlyingAssets

2023-02-08

  • new API permission in MP and MP Group

  • New Operations API allows to:

    • Trading Halt
    • Trading Resume
    • Mass cancel

2023-01-18

  • 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

2023-01-03

  • New field in auction- trigger

2022-12-06

  • New strategy- strips

  • Cancel On Disconnect flag in apiKey

2022-11-21

  • Trade Entry- response tradeId

  • Instrument symbol- allowed /= characters

  • New optional fields in the instrument for spreads strategy

2022-10-30

  • New optional fields in instrument API

  • Instrument API- quoteCurrency is now limited to 10 characters

  • End of day trigger

  • MP status (Active/ Blocked)

2022-10-03

  • New APIKeys permission-

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

2022-09-13

  • New Operations API allows to:

  • Capture Trade entry

  • Cancel Trade

  • Set settlement prices

  • Instrument object is now changed and now includes more optional fields

2022-08-31

  • New APIs:

  • MPs API

  • MP Groups API

2021-06-29

  • Instrument symbol can now contains .(dot) and -(hyphen)

  • Calendar.tradingDays is now optional to allow auctions only trading schedule.

April 2021

  • Initial version of API released.


1. Authentication API - Get Token

POST {{URL_ORIGIN}}/api/auth/token

Request Parameters

Name Description
email Email provided by Exberry team
Password Password provided by Exberry team

Response Parameters

Name Description
token Token to be used for any API call
expiresIn Expiration time in seconds


2. Instruments API - Create Instrument

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.

Create Instrument- Error Codes

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


3. Instruments API - Update Instrument

PUT {{URL_ORIGIN}}/api/v2/instruments/:id

This API allows to update existing instrument.

Update Instrument- Error Codes

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/Stop Date Removed v1.25 / Category] can’t be changed after 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 2402 [NumberOfOrders] active orders have quantity precision higher than [quantityPrecision]
REMOVED v1.30.0 2402 [NumberOfOrders] active orders have quantity higher than [maxLong/10^ quantityPrecision]
REMOVED v1.30.0 2403 [NumberOfOrders] active orders have price precision higher than [pricePrecision]
REMOVED v1.30.0 2403 [NumberOfOrders] active orders have price higher than [maxLong/10^ pricePrecision]
REMOVED v1.30.0 2404 Current total depth is higher than [maxLong/10^ quantityPrecision]. You should remove some depth or decrease the quantity precision
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


4. Instruments API - Get Instruments

GET {{URL_ORIGIN}}/api/v2/instruments

This API allows to get a list of all instruments with their details.

NEW v1.30.0 Get Instruments- Fields

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.0for 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.0for 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.0for instruments without product - send 0
NEW v1.31.0derivativeInstrumentCategory 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.

NEW v1.32.0 Suffix & Prefix

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'

NEW v1.30.0 Get Instrument- Error Codes

Code Message
102 Single category should be sent
102 Wrong Sub Category
102 Strategies category should be sent
100 Missing or invalid parameter: [FieldName]


5. Instruments API - Get Instrument

GET {{URL_ORIGIN}}/api/v2/instruments/:id

This API allows to get a single instrument details.



6. Instruments API - NEW v1.30.0 Archive Instrument

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:

  • Reporting
    • Orders
    • Orders event
    • Trades
    • Operations
  • Reporting API:
    • v1/exchange.reporting/mp/orders
    • v2/exchange.reporting/mp/trades

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.

Archive Instrument- Error Codes

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


7. Calendars API - Create Calendar

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.

Create Calendar- Error Codes

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.0101 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


8. Calendars API - Update Calendar

PUT {{URL_ORIGIN}}/api/v2/calendars/:id

This API allows to update existing calendar.

Update Calendar- Error Codes

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


9. Calendars API - Get Calendar

GET {{URL_ORIGIN}}/api/v2/calendars/:id

This API allows to get a single calendar details.



10. Calendars API - Get Calendars

GET {{URL_ORIGIN}}/api/v2/calendars

This API allows to get a list of all calendars with their details.



11. Calendars API - End Of Day

POST {{URL_ORIGIN}}/api/v2/calendars/:id/end-of-day

This API allows to trigger EOD for a specific calendar

End Of Day- Error Codes

Code Message
1 System is unavailable
101 [FieldName] not found
102 EOD is not allowed
10001 Permission denied


12. MPs API-(NEW v1.33.0) Accounts API - Get Accounts

GET {{URL_ORIGIN}}/api/accounts

This API allows to get a list of all MPs with their details.



13. MPs API-(NEW v1.33.0) Accounts API - Get Account

GET {{URL_ORIGIN}}/api/accounts/:id

This API allows to get a list of all MPs with their details.



14. MPs API-(NEW v1.33.0) Accounts API - Create Account

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.

Create MP- Error Codes

Code Message
1 System is unavailable
100 Missing or invalid parameter: [FieldName]
102 [FieldName] already exists
10001 Permission denied


15. MPs API-(NEW v1.33.0) Accounts API - Update Account

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.

Create MP- Error Codes

Code Message
1 System is unavailable
100 Missing or invalid parameter: [FieldName]
102 [FieldName] already exists
10001 Permission denied


16. MP Groups API-apiKey - Create apiKey

POST {{URL_ORIGIN}}/api/mp-groups/49/api-keys



17. MP Groups API-apiKey - Delete apiKey

DELETE {{URL_ORIGIN}}/api/mp-groups/1794788082/api-keys/cadd3e0d-c1a0-4db9-a3d5-c7692675a1d3



18. MP Groups API-apiKey - Get apiKey

GET {{URL_ORIGIN}}/api/mp-groups/49/api-keys/e55da5a9-a171-483e-8735-ebcc2f5eabe8



19. MP Groups API-apiKey - Get apiKeys

GET {{URL_ORIGIN}}/api/mp-groups/49/api-keys



20. MP Groups API - Create MP Group

POST {{URL_ORIGIN}}/api/mp-groups

Create MP Group- Error Codes

Code Message
1 System is unavailable
100 Missing or invalid parameter: [FieldName]
101 [FieldName] not found
102 [FieldName] already exists
10001 Permission denied


21. MP Groups API - Update MP Group

PUT {{URL_ORIGIN}}/api/mp-groups/1794788082

Update MP Group- Error Codes

All validations in create instrument and the below 

Code Message
101 [FieldName] not found


22. MP Groups API - Get MP Group

GET {{URL_ORIGIN}}/api/mp-groups/1035143780



23. MP Groups API - Get MP Groups

GET {{URL_ORIGIN}}/api/mp-groups



24. CBR API - Create CBR

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.

Create CBR - Error Codes

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


25. CBR API - Update CBR

PUT {{URL_ORIGIN}}/api/cbrs/31

This API allows to update existing CBR.

Update CBR - Error Codes

All validations in create CBR

Code Message
101 [FieldName] not found
10001 Permission denied


26. CBR API - Get CBRs

GET {{URL_ORIGIN}}/api/cbrs

This API allows to get CBRs details.



27. CBR API - Get CBR

GET {{URL_ORIGIN}}/api/cbrs/:id

This API allows to get a single CBR details.



28. Tick Size API - Create TickSize

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.

Create TickSize- Error Codes

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


29. Tick Size API - Update TickSize

PUT {{URL_ORIGIN}}/api/tick-sizes/19

This API allows to update existing TickSize.

Update TickSize - Error Codes

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]


30. Tick Size API - Get TickSizes

GET {{URL_ORIGIN}}/api/tick-sizes

This API allows to get TickSizes details.



31. Tick Size API - Get TickSize

GET {{URL_ORIGIN}}/api/tick-sizes/:id

This API allows to get a single TickSize details.



32. Operations API - Trade Entry

POST {{URL_ORIGIN}}/api/operations/enter-trade

Trade Entry API allows you to capture trade that was done out of the order book

Trade Entry- Fields

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
Side obj-
Field Type Description
mpId Int mpId
accountType eNum Client/House
parties []obj list of parties obj
parties obj-
Field Type Description
id string(20) The Id of the party
source Char Id source = D
role int Id role = 38

Trade Entry- Error Codes

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


33. Operations API - Trade Cancellation

POST {{URL_ORIGIN}}/api/operations/cancel-trade

Trade Cancellation API allows you to cancel a trade

Trade Cancellation- Fields

Field Type Description
instrumentId int String Instrument ID to cancel the orders
matchId int String Trade Id to cancel

Trade Cancellation- Error Codes

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


34. Operations API - NEW 1.28 Place Order

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

Place order- Fields

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

Place Order - Error Codes

  1. Validations: same as place order, with the below changes:

    1. Skip validations 1007 & 1008 &1011 (Authentication related)
  2. Additional validation:

Code Message
100 Missing or invalid parameter: [FieldName]
10001 Permission denied


35. Operations API - NEW 1.28 Replace Order

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

Replace order- Fields

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

Relace Order - Error Codes

  1. Validations: same as replaceOrder, with the below changes:

    1. Skip validations 1007 & 1008 &1011 (Authentication related)
  2. Additional validations:

Code Message
10001 Permission denied


36. Operations API - Cancel Order

POST {{URL_ORIGIN}}/api/operations/cancel-order

Cancel Order API allows you to cancel order

Cancel order - Fields

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

Cancel Order - Error Codes

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


37. Operations API - Mass Cancel

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
comment
String Free text comment
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
NEW TargetParty specification:
Field Type Description
id string TargetParty id
source char TargetParty source
role int TargetParty role

Mass Cancel- Error Codes

Code Message
2001 Wrong action
2001 Wrong instrumentIds
2401 Wrong instrumentId: [instrumentId]
403 Permission denied


38. Operations API - Set Settlement Price

POST {{URL_ORIGIN}}/api/operations/settlement-price

Set Settlement Price API allows you to set settlement price for an instrument

Set Settlement Prices - Request Fields

Field Type Description
instrumentId string Instrument ID to set a Settlement Price
price string the price to set

Set Settlement Prices - Error Codes

Code Message
1 Exchange is unavailable
100 Missing or invalid parameter: [FieldName]
101 instrumentId not found
102 Currently not allowed
10001 Permission denied


39. Operations API - Trading Halt

POST {{URL_ORIGIN}}/api/operations/halt

Trading Halt API allows you to halt the trading for a:

  • List of instrument
  • All instruments
  • NEW v1.30.0 Multiple filtered instruments, see here for more details
Field Type Description
instrumentIds [] Stringfied numbers Optional
List of instruments to halt
Note: not sending this parameter will halt the trading for all instruments

Trading Halt - Error Codes

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


40. Operations API - Trading Resume

POST {{URL_ORIGIN}}/api/operations/resume

Trading Resume API allows you to resume the trading for a:

  • List of instrument
  • All instruments
  • NEW v1.30.0 Multiple filtered instruments, see here for more details
Type Description
instrumentIds [] Stringfied numbers Optional
List of instruments to resume
Note: not sending this parameter will resume the trading for all instruments

Trading Resume - Error Codes

Code Message
2001 Wrong action
2001 Wrong instrumentIds
2401 Wrong instrumentId: [instrumentId]
403 Permission denied
NEW v1.31.0201 You can send up to 750 instruments per request


41. Operations API - (NEW 1.33) Apply Cash Distribution

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).

Request Parameters:

Field Type Description
instrumentId Stringfied number Instrument ID to apply the cash distribution
amount Stringfied Decimal Cash Amount per share

Maximum 10 decimal places

Response:

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

Error Codes

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


42. Operations API - (NEW 1.33) Apply Security Distribution

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).

Request Parameters

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

Response:

Same as Apply Cash Distribution

Error Codes

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


43. Maker Checker - Update Instrument

PUT {{URL_ORIGIN}}/api/v2/instruments/24220



44. Maker Checker - NEW v1.30.0 Archive Instrument

POST {{URL_ORIGIN}}/api/v2/instruments/:id/archive

This API allows to archive existing instrument which TBD...

Archive Instrument- Error Codes

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


45. Maker Checker - Update Calendar

PUT {{URL_ORIGIN}}/api/v2/calendars/10



46. Maker Checker - Update MP

PUT {{URL_ORIGIN}}/api/mps/15



47. Maker Checker - (NEW v1.33.0) Create Account

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.

Create MP- Error Codes

Code Message
1 System is unavailable
100 Missing or invalid parameter: [FieldName]
102 [FieldName] already exists
10001 Permission denied


48. Maker Checker - (NEW v1.33.0) Update Account

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.

Create MP- Error Codes

Code Message
1 System is unavailable
100 Missing or invalid parameter: [FieldName]
102 [FieldName] already exists
10001 Permission denied


49. Maker Checker - Update MP Group

PUT {{URL_ORIGIN}}/api/mp-groups/1794788082

Update MP Group- Error Codes

All validations in create instrument and the below 

Code Message
101 [FieldName] not found


50. Maker Checker - Update CBR

PUT {{URL_ORIGIN}}/api/cbrs/31

This API allows to update existing CBR.

Update CBR - Error Codes

All validations in create CBR

Code Message
101 [FieldName] not found
10001 Permission denied


51. Maker Checker - Update TickSize

PUT {{URL_ORIGIN}}/api/tick-sizes/19

This API allows to update existing TickSize.

Update TickSize - Error Codes

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]


52. Maker Checker - NEW Cancel Order

POST {{URL_ORIGIN}}/api/operations/cancel-order

Trade Entry API allows you to capture trade that was done out of the order book

Trade Entry- Fields

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
Side obj-
Field Type Description
mpId Int mpId
accountType eNum Client/House
parties []obj list of parties obj
parties obj-
Field Type Description
id string(20) The Id of the party
source Char Id source = D
role int Id role = 38

Trade Entry- Error Codes

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


53. Maker Checker - Trade Entry

POST {{URL_ORIGIN}}/api/operations/enter-trade

Trade Entry API allows you to capture trade that was done out of the order book

Trade Entry- Fields

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
Side obj-
Field Type Description
mpId Int mpId
accountType eNum Client/House
parties []obj list of parties obj
parties obj-
Field Type Description
id string(20) The Id of the party
source Char Id source = D
role int Id role = 38

Trade Entry- Error Codes

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


54. Maker Checker - Trade Cancellation

POST {{URL_ORIGIN}}/api/operations/cancel-trade

Trade Cancellation API allows you to cancel a trade

Trade Cancellation- Fields

Field Type Description
instrumentId int Instrument ID to cancel the orders
matchId int Trade Id to cancel

Trade Cancellation- Error Codes

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


55. Maker Checker - Set Settlement Price

POST {{URL_ORIGIN}}/api/operations/settlement-price

Set Settlement Price API allows you to set settlement price for an instrument

Set Settlement Prices - Request Fields

Field Type Description
instrumentId string Instrument ID to set a Settlement Price
price string the price to set

Set Settlement Prices - Error Codes

Code Message
1 Exchange is unavailable
100 Missing or invalid parameter: [FieldName]
101 instrumentId not found
102 Currently not allowed
10001 Permission denied


56. Maker Checker - Trading Halt

POST {{URL_ORIGIN}}/api/operations/halt

Trading Halt API allows you to halt the trading for a:

  • List of instrument
  • All instruments
Field Type Description
instrumentIds [] Stringfied numbers Optional
List of instruments to halt
Note: not sending this parameter will halt the trading for all instruments

Trading Halt - Error Codes

Code Message
2001 Wrong action
2001 Wrong instrumentIds
2401 Wrong instrumentId: [instrumentId]
403 Permission denied


57. Maker Checker - Trading Resume

POST {{URL_ORIGIN}}/api/operations/resume

Trading Resume API allows you to resume the trading for a:

  • List of instrument
  • All instruments
Field Type Description
instrumentIds [] Stringfied numbers Optional
List of instruments to resume
Note: not sending this parameter will resume the trading for all instruments

Trading Resume - Error Codes

Code Message
2001 Wrong action
2001 Wrong instrumentIds
2401 Wrong instrumentId: [instrumentId]
403 Permission denied


58. Maker Checker - Mass cancel

POST {{URL_ORIGIN}}/api/operations/mass-cancel

Mass Cancel API allows you to mass cancel orders for :

  • Specific MP
  • All MPs
  • NEW Specific targetParty or multiple targetParties

    • 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.

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.
NEW TargetParty specification:
Field Type Description
id string TargetParty id
source char TargetParty source
role int TargetParty role

Mass Cancel- Error Codes

Code Message
2001 Wrong action
2001 Wrong instrumentIds
2401 Wrong instrumentId: [instrumentId]
403 Permission denied


59. Maker Checker - End Of Day

POST {{URL_ORIGIN}}/api/v2/calendars/:id/end-of-day

This API allows to trigger EOD for a specific calendar

End Of Day- Error Codes

Code Message
1 System is unavailable
101 [FieldName] not found
102 EOD is not allowed
10001 Permission denied


60. Archive-Deprecated - Instrument V1 - Create Instrument

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.



61. Archive-Deprecated - Instrument V1 - Get Instruments

GET {{URL_ORIGIN}}/api/instruments

This API allows to get a list of all instruments with their details.



62. Archive-Deprecated - Instrument V1 - Get Instrument

GET {{URL_ORIGIN}}/api/instruments/:id

This API allows to get a single instrument details.



63. Archive-Deprecated - Instrument V1 - Update Instrument

PUT {{URL_ORIGIN}}/api/instruments/:id

This API allows to update existing instrument.



64. Archive-Deprecated - Calendars V1 - Create Calendar

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.



65. Archive-Deprecated - Calendars V1 - Update Calendar

PUT {{URL_ORIGIN}}/api/calendars/:id

This API allows to update existing calendar.



66. Archive-Deprecated - Calendars V1 - Get Calendar

GET {{URL_ORIGIN}}/api/calendars/:id

This API allows to get a single calendar details.



67. Archive-Deprecated - Calendars V1 - Get Calendars

GET {{URL_ORIGIN}}/api/calendars

This API allows to get a list of all calendars with their details.



68. Archive-Deprecated - Calendars V1 - NEW - End Of Day

POST {{URL_ORIGIN}}/api/calendars/10/end-of-day

This API allows to trigger EOD for a specific calendar



ENDPOINTS