TABLE OF CONTENTS

General rules

Web socket messages use serialization based on FIX code of the fields, e.g.:

{

    “35”: “D”,    // msgType

    “11”: “sell.8600-234”,    // clOrdId

    ...

}



REST is human-readable and uses field names in camelCase:

{

    “msgType”: “D”,

    “clOrdId”: “sell.8600-234”,

    ...

}


Enumerations

The server always returns enumeration codes as strings (“54”: “2” or “side”: “2”). The clients may send them as strings or as numbers (“54”: 2 or “side”: 2), though it’s recommended to always use strings.


decimal

Serialized as JSON string:

{

    “price”: “123.45”

}


ulong

Serialized as JSON number:

{

    “positionId”: 123456

}


timestamp

All timestamps are the number of nanoseconds since the epoch (i.e. UNIX timestamp multiplied by 10^6) serialized as numbers.


ExecInst (18)

Array of string:

Code

Name

0

StayOnOfferSide (maker only — order gets rejected instead of aggressive execution)

9

PegToOfferSide (maker only — order is placed to the best available level instead of aggressive execution)

o

CancelOnConnectionLoss

OrdStatus (39)

Code

Name

A

PendingNew

0

New

1

PartiallyFilled

2

Filled*

6

PendingCancel

4

Cancelled*

E

PendingReplace

8

Rejected*


Asterisks (*) denote the terminal statuses.

OrdType (40)

Code

Name

1

Market

2

Limit

3

Stop

4

Stop-Limit

Side (54)

Code

Name

1

Buy

2

Sell

TimeInForce (59)

Code

Name

1

GoodTillCancelled (default for Limit orders)

3

ImmediateOrCancel

4

FillOrKill



GTCIOCFOK
Market-Default+
LimitDefault++
Stop-Default+
Stop-LimitDefault++