0% found this document useful (0 votes)
19 views

FTX API CODE

The FTX API documentation provides comprehensive details on REST, Websocket, and FIX APIs for algorithmic trading, including endpoints for trading, asset management, and market data. It outlines authentication requirements, rate limits, pagination, and subaccount management, along with specific requests and responses for various functionalities such as retrieving market data, managing subaccounts, and accessing historical prices. Sample code is available for different programming languages to assist users in implementing the API effectively.

Uploaded by

Aylin Anarat
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

FTX API CODE

The FTX API documentation provides comprehensive details on REST, Websocket, and FIX APIs for algorithmic trading, including endpoints for trading, asset management, and market data. It outlines authentication requirements, rate limits, pagination, and subaccount management, along with specific requests and responses for various functionalities such as retrieving market data, managing subaccounts, and accessing historical prices. Sample code is available for different programming languages to assist users in implementing the API effectively.

Uploaded by

Aylin Anarat
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 277

Overview

Welcome to the FTX API


documentation. We offer complete
REST, Websocket, and FIX APIs to
suit your algorithmic trading needs.
You can find sample code for each
connectivity option
at https://github.com/ftexchange/ftx
.

REST API
HTTP-based API with full trading and
asset management functionality,
with public orderbook and trades
data as well as private account data
and order management.

REST endpoint
URL: https://ftx.com/api

Requests and responses use JSON.

We also have sample code


for Python, C# and C++.
Authentication
For authenticated requests, the
following headers should be sent
with the request:

 FTX-KEY: Your API key


 FTX-TS: Number of
milliseconds since Unix epoch
 FTX-SIGN: SHA256 HMAC of
the following four strings,
using your API secret, as a
hex string:
o Request timestamp
(e.g. 1528394229375)
o HTTP method in
uppercase
(e.g. GET or POST)
o Request path,
including leading slash
and any URL
parameters but not
including the
hostname
(e.g. /account)
o (POST only) Request
body (JSON-encoded)
 FTX-SUBACCOUNT (optional):
URI-encoded name of the
subaccount to use. Omit if
not using subaccounts.

You will find a detailed example


on how to authenticate here
Rate limits
Hitting our rate limits will result in
HTTP 429 errors. Non-order
placement requests do not count
towards rate limits. Rate limits are
tiered by account trading volumes.
For details, please see this
post here. Note that limits in the
linked post are at the account level

Pagination
Generalized Request
GET {endpoint}?start_time=1559881511&end_time=1559881711
FTX supports pagination on most
REST API endpoints. Pagination
allows you to specify the time range
of data to be returned, which also
enables you to retrieve more results
than are returned by default. You
can find sample Python code which
demonstrates pagination using the
start_time and end_time
parameters here

Name Type Value Description

start_time numbe 1559881511 optional; filter starting time in seconds


r
Name Type Value Description

end_time numbe 1559881711 optional; filter ending time in seconds


r

Subaccounts
To specify a subaccount, include its
URI-encoded nickname in the
header FTX-SUBACCOUNT with the
request.

Get all subaccounts


Request
GET /subaccounts
Response
{
"success": true,
"result": [
{
"nickname": "sub1",
"deletable": true,
"editable": true,
"competition": true
}
]
}
Requires authentication.

Response format
Name Type Value Description

nickname string sub1 subaccount name

deletable boolea true whether the subaccount can be deleted


n

editable boolea true whether the nickname of the subaccount can be


n changed

competition boolea true whether the subaccount was created for a competition
n

Create subaccount
Request
POST /subaccounts
{
"nickname": "sub2",
}
Response
{
"success": true,
"result": {
"nickname": "sub2",
"deletable": true,
"editable": true,
}
}
Requires authentication.
Payload format

Name Type Value Description

nicknam string sub2


e

Response format

Name Type Value Description

nickname string sub2 subaccount name

deletable boolea true whether the subaccount can be deleted


n

editable boolea true whether the nickname of the subaccount can be changed
n

Change subaccount name


Request
POST /subaccounts/update_name
{
"nickname": "sub2",
"newNickname": "newSub2"
}
Response
{
"success": true,
"result": null
}
Requires authentication.

Payload format

Name Type Value Description

nickname string sub2 current nickname of subaccount

newNickname string newSub new nickname of subaccount


2

Delete subaccount
Request
DELETE /subaccounts
{
"nickname": "sub2",
}
Response
{
"success": true,
"result": null
}
Requires authentication.

Payload format
Name Type Value Description

nicknam string sub2


e

Get subaccount balances


Request
GET /subaccounts/{nickname}/balances
Response

{
"success": true,
"result": [
{
"coin": "USDT",
"free": 4321.2,
"total": 4340.2,
"spotBorrow": 0,
"availableWithoutBorrow": 2320.2
}
]
}
Requires authentication.

Response format

Name Type Value Description

coin string USDT coin id


Name Type Value Description

free number 4321.2 free amount

total number 4340.2 total amount

spotBorrow number 0 amount borrowed using spot margin

availableWithoutBorrow number 2320.2 amount available without borrowing

Transfer between
subaccounts
Request
POST /subaccounts/transfer
{
"coin": "XRP",
"size": 10000,
"source": null,
"destination": "sub1",
}
Response
{
"success": true,
"result": {
"id": 316450,
"coin": "XRP",
"size": 10000,
"time": "2019-03-05T09:56:55.728933+00:00",
"notes": "",
"status": "complete",
}
}
Requires authentication.

Payload format

Name Type Value Description

coin string XRP

size number 31431.0

source string main name of the source subaccount. Use null or 'main' for the main account

destination string sub1 name of the destination subaccount. Use null or 'main' for the main
account

Response format

Name Type Value Description

id numbe 316450
r

coin string XRP


Name Type Value Description

size numbe 10000


r

time string 2019-03-05T09:56:55.728933+00:00

notes string

status string complete always 'complete


'

Markets
This section covers all types of
markets on FTX: spot, perpetual
futures, expiring futures, and MOVE
contracts. Examples for each type
are BTC/USD, BTC-PERP, BTC-0626,
and BTC-MOVE-1005. For futures that
expired in 2019, prepend a 2019 to
the date, like so: BTC-
20190628 or BTC-MOVE-20190923.

Get markets
Request
GET /markets
Response

{
"success": true,
"result": [
{
"name": "BTC-PERP",
"baseCurrency": null,
"quoteCurrency": null,
"quoteVolume24h": 28914.76,
"change1h": 0.012,
"change24h": 0.0299,
"changeBod": 0.0156,
"highLeverageFeeExempt": false,
"minProvideSize": 0.001,
"type": "future",
"underlying": "BTC",
"enabled": true,
"ask": 3949.25,
"bid": 3949,
"last": 10579.52,
"postOnly": false,
"price": 10579.52,
"priceIncrement": 0.25,
"sizeIncrement": 0.0001,
"restricted": false,
"volumeUsd24h": 28914.76,
"largeOrderThreshold": 5000.0,
"isEtfMarket": false,
}
]
}
Response format

Name Type Value Description

name string BTC- e.g. "BTC/USD" for spot, "BTC-PERP" for futures
Name Type Value Description

PERP

baseCurrency string BTC spot markets only

quoteCurrency string USD spot markets only

quoteVolume24h number 28914.76

change1h number 0.012 change in the past hour

change24h number 0.0299 change in the past 24 hours

changeBod number 0.0156 change since start of day (00:00 UTC)

highLeverageFeeExempt boolean false

minProvideSize number 0.001 Minimum maker order size (if >10 orders per hour fall below this size)

type string future "future" or "spot"


Name Type Value Description

underlying string BTC future markets only

enabled boolean true

ask number 3949.25 best ask

bid number 3949.00 best bid

last number 3949.00 last traded price

postOnly boolean false if the market is in post-only mode (all orders get modified to be post-only, in
addition to other settings they may have)

price number 10579.52 current price

priceIncrement number 0.25

sizeIncrement number 0.0001

restricted boolean false if the market has nonstandard restrictions on which jurisdictions can trade it
Name Type Value Description

volumeUsd24h number 28914.76 USD volume in past 24 hours

largeOrderThreshold number 5000.0 threshold above which an order is considered large (for VIP rate limits)

isEtfMarket boolean false if the market has an ETF as its baseCurrency

Get single market


Request
GET /markets/{market_name}
Response
See /markets

Get orderbook
Request
GET /markets/{market_name}/orderbook?depth={depth}
Response
{
"success": true,
"result": {
"asks": [
[
4114.25,
6.263
]
],
"bids": [
[
4112.25,
49.29
]
]
}
}
Parameters

Name Type Value Description

market_nam string BTC-0628 Required. Name of the market.


e

depth number 35 max 100, default 20

Response format

Name Type Value Description

asks array [4114.25, Array with price and size


6.263]

bids array [4112, 49.29] Array with price and size

Get trades
Supports pagination
Request
GET /markets/{market_name}/trades
Response
{
"success": true,
"result": [
{
"id": 3855995,
"liquidation": false,
"price": 3857.75,
"side": "buy",
"size": 0.111,
"time": "2019-03-20T18:16:23.397991+00:00"
}
]
}
Parameters

Name Type Value Description

market_name string BTC-0628 name of the market

start_time number 1559881511 optional

end_time number 1559881711 optional

Response format

Name Type Value Description

id number 3855995 trade id


Name Type Value Description

liquidation boolean false if this trade involved a liquidation order

price number 3857.75

side string buy

size number 0.111

time string 2019-03-20T18:16:23.397991+00:00

Get historical prices


Supports pagination

Historical prices of expired futures


can be retrieved with this end point
but make sure to specify start time
and end time.

Request
GET /markets/{market_name}/candles?resolution={resolution}&start_time={start_time}&end_time={end_time}
Response
{
"success": true,
"result": [
{
"close": 11055.25,
"high": 11089.0,
"low": 11043.5,
"open": 11059.25,
"startTime": "2019-06-24T17:15:00+00:00",
"volume": 464193.95725
}
]
}
Parameters

Name Type Value Description

market_nam string BTC-0628 name of the market


e

resolution number 300 window length in seconds. options: 15, 60, 300, 900, 3600, 14400, 86400, or any
multiple of 86400 up to 30*86400

start_time number 1559881511 optional

end_time number 1559881711 optional

Response format
Name Type Value Description

startTim string 2019-06-24T17:15:00+00:00 start time of the window


e

open number 11059.25 mark price at startTime

close number 11055.25 mark price at the end of the window: startTime + resolution

high number 11089.0 highest mark price over the window

low number 11059.25 lowest mark price over the window

volume number 464193.95725 volume traded in the window

Futures
This section covers all types of
futures on FTX: perpetual, expiring,
and MOVE. Examples for each type
are BTC-PERP, BTC-0626, and BTC-MOVE-
1005. For futures that expired in
2019, prepend a 2019 to the date,
like so: BTC-20190628.
List all futures
Request
GET /futures
Response
{
"success": true,
"result": [
{
"ask": 4196,
"bid": 4114.25,
"change1h": 0,
"change24h": 0,
"changeBod": 0,
"volumeUsd24h": 100000000,
"volume": 24390.24,
"description": "Bitcoin March 2019 Futures",
"enabled": true,
"expired": false,
"expiry": "2019-03-29T03:00:00+00:00",
"index": 3919.58841011,
"imfFactor": 0.002,
"last": 4196,
"lowerBound": 3663.75,
"mark": 3854.75,
"name": "BTC-0329",
"openInterest": 12.23,
"openInterestUsd": 47265.8925,
"perpetual": false,
"positionLimitWeight": 1.0,
"postOnly": false,
"priceIncrement": 0.25,
"sizeIncrement": 0.0001,
"underlying": "BTC",
"upperBound": 4112.2,
"type": "future"
}
]
}
Response format
Name Type Value Description

ask number 4196.0 best ask on the orderbook

bid number 4114.25 best bid on the orderbook

change1h number 0.0 price change in the last hour

change24h number 0.0 price change in the last 24 hours

changeBod number 0.0 price change since midnight UTC (beginning of day)

volumeUsd24h number 100000000 USD volume in the last 24 hours

volume number 24390.24 quantity traded in the last 24 hours

description string Bitcoin March 2019


Futures

enabled boolean true

expired boolean false


Name Type Value Description

expiry string 2019-03-


29T03:00:00+00:00

index number 3919.58841011 average of the Market Prices for the constituent markets in the
index

imfFactor number 0.002

last number 4196.0 last price the future traded at

lowerBound number 3663.75 the lowest price the future can trade at

mark number 3854.75 mark price of the future

name string BTC-0329

openInterest number 12.23 open interest (in number of contracts)

openInterestUsd number 47265.8925 open interest (in USD)

perpetual boolean false whether or not this is a perpetual contract


Name Type Value Description

positionLimitWeight number 1.0

postOnly boolean false

priceIncrement number 0.25

sizeIncrement number 0.0001

underlying string BTC

upperBound number 4112.2 the highest price the future can trade at

type string future One of future, perpetual, or move

Get future
Request
GET /futures/{future_name}
Response
{
"success": true,
"result": {
"ask": 4196,
"bid": 4114.25,
"change1h": 0,
"change24h": 0,
"description": "Bitcoin March 2019 Futures",
"enabled": true,
"expired": false,
"expiry": "2019-03-29T03:00:00+00:00",
"index": 3919.58841011,
"last": 4196,
"lowerBound": 3663.75,
"mark": 3854.75,
"name": "BTC-0329",
"perpetual": false,
"postOnly": false,
"priceIncrement": 0.25,
"sizeIncrement": 0.0001,
"underlying": "BTC",
"upperBound": 4112.2,
"type": "future"
}
}
Response format

Name Type Value Description

ask number 4196.0 best ask on the orderbook

bid number 4114.25 best bid on the orderbook

change1h number 0.0 price change in the last hour

change24h number 0.0 price change in the last 24 hours


Name Type Value Description

description string Bitcoin March 2019 Futures

enabled boolean true

expired boolean false

expiry string 2019-03-


29T03:00:00+00:00

index number 3919.58841011 average of the Market Prices for the constituent markets in the
index

last number 4196.0 last price the future traded at

lowerBound number 3663.75 the lowest price the future can trade at

mark number 3854.75 mark price of the future


Name Type Value Description

name string BTC-0329

perpetual boolean false whether or not this is a perpetual contract

postOnly boolean false

priceIncremen number 0.25


t

sizeIncrement number 0.0001

underlying string BTC

upperBound number 4112.2 the highest price the future can trade at

type string future One of future, perpetual, or move

Get future stats


Request
GET /futures/{future_name}/stats
Response
{
"success": true,
"result": {
"volume": 1000.23,
"nextFundingRate": 0.00025,
"nextFundingTime": "2019-03-29T03:00:00+00:00",
"expirationPrice": 3992.1,
"predictedExpirationPrice": 3993.6,
"strikePrice": 8182.35,
"openInterest": 21124.583
}
}
Response format

Name Type Value Description

volume number 1000.23 quantity traded in the last 24 hours

nextFundingRate number 0.00025 upcoming funding rate (only applicable for perpetual
contracts)

nextFundingTime string 2019-03- upcoming funding time (only applicable for perpetual
29T03:00:00+00:00 contracts)

expirationPrice number 3992.1 price to which the future expired (only applicable if the future
has expired)

predictedExpirationPrice number 3993.0 only applicable if the future has not expired
Name Type Value Description

openInterest number 21124.583 number of open contracts in this future

strikePrice number 8182.35009484 price of the underlying at the beginning of the expiration day
(only applicable for MOVE contracts)

Get funding rates


Supports pagination

Request
GET /funding_rates
Parameters

Name Type Value Description

start_time number 1559881511 optional

end_time number 1559881711 optional

future string BTC-PERP optional

Response

{
"success": true,
"result": [
{
"future": "BTC-PERP",
"rate": 0.0025,
"time": "2019-06-02T08:00:00+00:00"
}
]
}
Response format

Name Type Value Description

futur string BTC-PERP


e

rate number 0.0025

time string 2019-06-


02T08:00:00+00:00

Get index weights


Request
GET /indexes/{index_name}/weights
Note that this only applies to index
futures, e.g.
ALT/MID/SHIT/EXCH/DRAGON.

Response
{
"success": true,
"result": {
"BCH": 0.3492,
"BNB": 2.8632,
"BSV": 0.3471,
"EOS": 18.1707,
"ETH": 0.5724,
"LTC": 1.2973,
"XRP": 573.6345,
}
}

Get expired futures


Returns the list of all expired
futures.

Request
GET /expired_futures
Response
{
"success": true,
"result": [
{
"ask": null,
"bid": null,
"description": "Bitcoin March 2020 Futures",
"enabled": false,
"expired": true,
"expiry": "2020-03-27T03:00:00+00:00",
"expiryDescription": "March 2020",
"group": "quarterly",
"imfFactor": 0.002,
"index": 6807.943073426,
"last": 6804.75,
"lowerBound": 6467.75,
"marginPrice": 6801.1226609324885,
"mark": 6801.1226609324885,
"moveStart": null,
"name": "BTC-0327",
"perpetual": false,
"positionLimitWeight": 2.0,
"postOnly": false,
"priceIncrement": 0.5,
"sizeIncrement": 0.0001,
"type": "future",
"underlying": "BTC",
"underlyingDescription": "Bitcoin",
"upperBound": 7152.75
}
]
}

Get historical index


Supports pagination

Request
GET /indexes/{market_name}/candles?resolution={resolution}&start_time={start_time}&end_time={end_time}
Response
{
"success": true,
"result": [
{
"close": 11055.25,
"high": 11089.0,
"low": 11043.5,
"open": 11059.25,
"startTime": "2019-06-24T17:15:00+00:00",
"volume": null
}
]
}
Parameters
Name Type Value Description

market_nam string BTC name of the market


e

resolution number 300 window length in seconds. options: 15, 60, 300, 900, 3600, 14400, 86400, or any
multiple of 86400 up to 30*86400

start_time number 1559881511 optional

end_time number 1559881711 optional

Response format

Name Type Value Description

startTim string 2019-06-24T17:15:00+00:00 start time of the window


e

open number 11059.25 mark price at startTime

close number 11055.25 mark price at the end of the window: startTime + resolution

high number 11089.0 highest mark price over the window


Name Type Value Description

low number 11059.25 lowest mark price over the window

volume number null volume traded in the window

Get index constituents


Request
GET /index_constituents/{underlying}
Response
{
"success": true,
"result": [
["binance","BTC","TUSD"],
["bitstamp","BTC","USD"],
["bittrex","BTC","USD"],
...
]
}
Parameters
Valu
Name Type e Description

underlyin string BTC underlying coin for index


g

Response format

Response is a list of index inputs,


each row contains:

Name Type Value Description

exchange string binance index constituent source

base currency string BTC

quote string TUSD


currency
Account

Get account information


Request
GET /account
Response
{
"success": true,
"result": {
"backstopProvider": true,
"collateral": 3568181.02691129,
"freeCollateral": 1786071.456884368,
"initialMarginRequirement": 0.12222384240257728,
"leverage": 10,
"liquidating": false,
"maintenanceMarginRequirement": 0.07177992558058484,
"makerFee": 0.0002,
"marginFraction": 0.5588433331419503,
"openMarginFraction": 0.2447194090423075,
"takerFee": 0.0005,
"totalAccountValue": 3568180.98341129,
"totalPositionSize": 6384939.6992,
"username": "[email protected]",
"positions": [
{
"cost": -31.7906,
"entryPrice": 138.22,
"future": "ETH-PERP",
"initialMarginRequirement": 0.1,
"longOrderSize": 1744.55,
"maintenanceMarginRequirement": 0.04,
"netSize": -0.23,
"openSize": 1744.32,
"realizedPnl": 3.39441714,
"shortOrderSize": 1732.09,
"side": "sell",
"size": 0.23,
"unrealizedPnl": 0
}
]
}
}
Requires authentication.

Response format

Name Type Value Description

backstopProvider boolean true whether or not the account is a registered backstop


liquidity provider

collateral number 3568181.02691129 amount of collateral

freeCollateral number 1786071.456884368 amount of free collateral

initialMarginRequirement number 0.12222384240257728 average of initialMarginRequirement for individual


futures, weighed by position notional. Cannot open
new positions if openMarginFraction falls below this
value.

liquidating boolean false True if the account is currently being liquidated

maintenanceMarginRequirement number 0.07177992558058484 Average of maintenanceMarginRequirement for


individual futures, weighed by position notional.
Account enters liquidation mode if margin fraction falls
Name Type Value Description

below this value.

makerFee number 0.0002 -

marginFraction number 0.5588433331419503 ratio between total account value and total account
- position notional.

openMarginFraction number 0.2447194090423075 Ratio between total realized account value and total
open position notional

takerFee number 0.0005

totalAccountValue number 3568180.98341129 collateral plus unrealized pnl. note that this does not
include the value of non-collateral holdings

totalAccountNav number 3568180.98341129 the sum of the usd value of all balances plus unrealized
pnl. this is the same as totalAccountValue except that it
does include the value of non-collateral holdings.

totalPositionSize number 6384939.6992 total size of positions held by the account, using mark
price
Name Type Value Description

username string [email protected]

leverage number 10.0 Max account leverage

positions array See Get positions for details

Request historical balances


and positions snapshot
Request
POST /historical_balances/requests
{
"accounts": ["main", "subaccount1"],
"endTime": 1646376865,
}
Requires authentication.

Payload format

Name Type Value Description

accounts list ["main", "subaccount1"] list of subaccounts to request results for

endTime numbe 1646376865 time to fetch balances and positions for


Name Type Value Description

Response
{
"success": true,
"result": 12332
}
Name Type Value Description

id number 12332 id of the snapshot

Get historical balances and


positions snapshot
Request
GET /historical_balances/requests/<request_id>
Requires authentication.

Response
{
"success": true,
"result": {
"id": 12332,
"accounts": ["main", "subaccounts"],
"time": 1646356865,
"endTime": 1646376865,
"status": "done",
"error": false,
"results": [
{"account": "main", "ticker": "BTC-PERP", "size": -1.2, "price": 40122.13},
{"account": "main", "ticker": "USD", "size": 10000.3},
]
}
}
Name Type Value Description

id number 12332

account list ["main", "subaccount1"] list of subaccounts to request results for


s

time number 1646356865 time the request was made

endTime number 1646376865 time of balances and positions

error boolean false if there was an error in generating the snapshot

status string complete one of 'requested', 'processing', 'done', 'cancelled'

results dict balance and position snapshots

Each item in results has the format:

Name Type Value Description

account string main name of subaccount


Name Type Value Description

ticker string BTC-PERP name of product (future, option, token, or currency)

size number -1.2 size of balance or position at endTime

price number 40122.13 mark price of future at endTime (null for options and balances entries)

Get all historical balances


and positions snapshots
Request
GET /historical_balances/requests
Requires authentication.

Response
{
"success": true,
"result": [
{
"id": 12332,
"accounts": ["main", "subaccounts"],
"time": 1646356865,
"endTime": 1646376865,
"status": "done",
"error": false,
"results": [
{"account": "main", "ticker": "BTC-PERP", "size": -1.2, "price": 40122.13},
{"account": "main", "ticker": "USD", "size": 10000.3},
]
}
]
}

Get positions
Request
GET /positions
Response
{
"success": true,
"result": [
{
"cost": -31.7906,
"cumulativeBuySize": 1.2,
"cumulativeSellSize": 0.0,
"entryPrice": 138.22,
"estimatedLiquidationPrice": 152.1,
"future": "ETH-PERP",
"initialMarginRequirement": 0.1,
"longOrderSize": 1744.55,
"maintenanceMarginRequirement": 0.04,
"netSize": -0.23,
"openSize": 1744.32,
"realizedPnl": 3.39441714,
"recentAverageOpenPrice": 135.31,
"recentBreakEvenPrice": 135.31,
"recentPnl": 3.1134,
"shortOrderSize": 1732.09,
"side": "sell",
"size": 0.23,
"unrealizedPnl": 0,
"collateralUsed": 3.17906
}
]
}
Requires authentication.

Parameters
Name Type Value Description

showAvgPric boolean false optional


e

Response format

Name Type Value Description

cost numbe -31.7906 Amount that was paid to enter this position, equal to size *
r entry_price. Positive if long, negative if short.

cumulativeBuySize numbe 1.2


r

cumulativeSellSize numbe 0.0


r

entryPrice numbe 138.22 Average cost of this position after pnl was last realized: whenever
r unrealized pnl gets realized, this field gets set to mark price,
unrealizedPnL is set to 0, and realizedPnl changes by the previous
value for unrealizedPnl.

estimatedLiquidationPrice numbe 152.1


r
Name Type Value Description

future string ETH-PERP future name

initialMarginRequirement numbe 0.1 Minimum margin fraction for opening new positions
r

longOrderSize numbe 1744.55 Cumulative size of all open bids


r

maintenanceMarginRequirement numbe 0.04 Minimum margin fraction to avoid liquidations


r

netSize numbe -0.23 Size of position. Positive if long, negative if short.


r

openSize numbe 1744.32 Maximum possible absolute position size if some subset of open
r orders are filled

realizedPnl numbe 3.39441714


r

recentAverageOpenPrice numbe 135.31


Name Type Value Description

recentBreakEvenPrice numbe 135.31


r

recentPnl numbe 3.1134


r

shortOrderSize numbe 1732.09 Cumulative size of all open offers


r

side string sell sell if short, buy if long

size numbe 0.23 Absolute value of netSize


r

unrealizedPnl numbe 0.0


r

collateralUsed numbe 3.17906 Is equal to:


r
 For PRESIDENT: initialMarginRequirement * openSize * (risk
Name Type Value Description

price)
 For MOVE: initialMarginRequirement * openSize * (index
price)
 Otherwise: initialMarginRequirement * openSize * (mark
price)

Change account leverage


Request
POST /account/leverage
{
"leverage": 10,
}
Requires authentication.

Payload format

Name Type Value Description

leverage numbe 10 desired account-wide leverage setting


r
Wallet

Get coins
Request
GET /wallet/coins
Response

{
"success": true,
"result": [
{
"bep2Asset": null,
"canConvert": true,
"canDeposit": true,
"canWithdraw": true,
"collateral": true,
"collateralWeight": 0.975,
"creditTo": null,
"erc20Contract": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
"fiat": false,
"hasTag": false,
"id": "USDT",
"isToken": false,
"methods": ["omni", "erc20", "trx", "sol"],
"name": "USD Tether",
"splMint": "BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4",
"trc20Contract": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"usdFungible": false
}
]
}
Response format
Name Type Value Description

canDeposit boolean true true if this coin can be deposited via a


crypto transaction

canWithdraw boolean true true if this coin can be withdrawn via a


crypto transaction

hasTag boolean false true if addresses for this coin have a tag

id string USDT

name string USD Tether

bep2Asset string null

canConvert boolean true

collateral boolean true

collateralWeight number 0.975


Name Type Value Description

creditTo string null

erc20Contract string 0xdAC17F958D2ee523a2206206994597C13D831ec7

fiat boolean false

isToken boolean false

methods array ["omni", "erc20", "trx", "sol"]

splMint string BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4

trc20Contract string TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

usdFungible boolean false

Get balances
Request
GET /wallet/balances
Response
{
"success": true,
"result": [
{
"coin": "USDTBEAR",
"free": 2320.2,
"spotBorrow": 0.0,
"total": 2340.2,
"usdValue": 2340.2,
"availableWithoutBorrow": 2320.2
}
]
}
Requires authentication.

Response format

Name Type Value Description

coin string USDTBEAR coin id

free number 2320.2 free amount

spotBorrow number 0 amount borrowed using spot margin

total number 2340.2 total amount

usdValue number 2340.2 approximate total amount in USD

availableWithoutBorrow number 2320.2 amount available without borrowing


Name Type Value Description

Get balances of all accounts


Request
GET /wallet/all_balances
Response

{
"success": true,
"result": {
"main": [
{
"coin": "USDTBEAR",
"free": 2320.2,
"spotBorrow": 0.0,
"total": 2340.2,
"usdValue": 2340.2,
"availableWithoutBorrow": 2320.2
},
{
"coin": "BTC",
"free": 2.0,
"spotBorrow": 0.0,
"total": 3.2,
"usdValue": 23456.7,
"availableWithoutBorrow": 2.0
}
],
"Battle Royale": [
{
"coin": "USD",
"free": 2000.0,
"spotBorrow": 0.0,
"total": 2200.0,
"usdValue": 2200.0,
"availableWithoutBorrow": 2000.0
}
]
}
}
Requires authentication.

The response will contain an object


whose keys are the subaccount
names. The main account will
appear under the key main.

Response format

Name Type Value Description

coin string USDTBEAR coin id

free number 2320.2 free amount

spotBorrow number 0 amount borrowed using spot margin

total number 2340.2 total amount

usdValue number 2340.2 total amount in USD

availableWithoutBorrow number 2320.2 amount available without borrowing


Get deposit address
Request
GET /wallet/deposit_address/{coin}?method={method}
Response
{
"success": true,
"result": {
"address": "0x83a127952d266A6eA306c40Ac62A4a70668FE3BE",
"tag": null
}
}
Requires authentication.

Request parameters

Name Type Value Description

coin string USDT

method string erc20 optional; for coins available on different blockchains (e.g USDT)

 For ERC20 tokens: method=erc20


 For TRC20 tokens: method=trx
 For SPL tokens: method=sol
 For Omni tokens: method=omni
 For BEP2 tokens: method=bep2
 For Binance Smart
Chain tokens: method=bsc
 For Fantom tokens: method=ftm
 For Avax tokens: method=avax
 For Matic tokens: method=matic

Response format
Name Type Value Description

address string 0x83a127952d266A6eA306c40Ac62A4a70668F


E3BE

tag string null optional

Get deposit address list


Request
POST /wallet/deposit_address/list
[
{
"coin": "USDT",
"method": "erc20"
},
{
"coin": "ETH",
}
]
Response
{
"success": true,
"result": [{
"coin": "USDT"
"address": "0x83a127952d266A6eA306c40Ac62A4a70668FE3BE",
"tag": "null"
}]
}
Requires authentication.

Request parameters
Name Type Value Description

coin string USDT

method string erc20 optional; for coins available on different blockchains (e.g USDT)

 For ERC20 tokens: method=erc20


 For TRC20 tokens: method=trx
 For SPL tokens: method=sol
 For Omni tokens: method=omni
 For BEP2 tokens: method=bep2
 For Binance Smart
Chain tokens: method=bsc
 For Fantom tokens: method=ftm
 For Avax tokens: method=avax
 For Matic tokens: method=matic

Response format

Name Type Value Description

coin string USDT

address string 0x83a127952d266A6eA306c40Ac62A4a70668F


E3BE

tag string null optional


Get deposit history
Request
GET /wallet/deposits
Response
{
"success": true,
"result": [
{
"coin": "TUSD",
"confirmations": 64,
"confirmedTime": "2019-03-05T09:56:55.728933+00:00",
"fee": 0,
"id": 1,
"sentTime": "2019-03-05T09:56:55.735929+00:00",
"size": 99.0,
"status": "confirmed",
"time": "2019-03-05T09:56:55.728933+00:00",
"txid": "0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7ffcaf1"
}
]
}
Requires authentication.

Supports pagination

Request parameters

Name Type Value Description

start_time number 1564146934 optional; minimum time of items to return, in Unix time (seconds since 1970-01-01)

end_time number 1564233334 optional; maximum time of items to return, in Unix time (seconds since 1970-01-01)

Response format
Name Type Value Description

coin string TUSD coin id

confirmations number 64 number of blockchain


confirmations

confirmedTime string 2019-03-05T09:56:55.728933+00:00

fee number 0.0 fee, not included in size

id number 1 deposit id

sentTime string 2019-03-05T09:56:55.735929+00:00

size string 99.0

status string confirmed one of "confirmed",


"unconfirmed", or "cancelled"

time string 2019-03-05T09:56:55.728933+00:00


Name Type Value Description

txid string 0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7 optional


ffcaf1

notes string Transfer from main account to my_subaccount optional

Get withdrawal history


Request
GET /wallet/withdrawals
Response
{
"success": true,
"result": [
{
"coin": "TUSD",
"address": "0x83a127952d266A6eA306c40Ac62A4a70668FE3BE",
"tag": null,
"fee": 0,
"id": 1,
"size": 99.0,
"status": "complete",
"time": "2019-03-05T09:56:55.728933+00:00",
"method": "erc20",
"txid": "0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7ffcaf1"
}
]
}
Requires authentication.

Supports pagination

Request parameters
Name Type Value Description

start_time number 1564146934 optional; minimum time of items to return, in Unix time (seconds since 1970-01-01)

end_time number 1564233334 optional; maximum time of items to return, in Unix time (seconds since 1970-01-01)

Response format

Name Type Value Description

coin string TUSD coin id

address string 0x83a127952d266A6eA306c40Ac62A4a70668FE3BE deposit address the withdrawal was


sent to

tag string null

fee numbe 0.0 fee, not included in size


r

id numbe 1 withdrawal id
r
Name Type Value Description

size string 99.0

status string complete one of "requested", "processing",


"sent", "complete", or "cancelled"

time string 2019-03-05T09:56:55.728933+00:00

method erc20 protocol used for the blockchain transfer


string

txid string 0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7 optional


ffcaf1

notes string Transfer from main account to my_subaccount optional

Request withdrawal
Request
POST /wallet/withdrawals
{
"coin": "USDTBEAR",
"size": 20.2,
"address": "0x83a127952d266A6eA306c40Ac62A4a70668FE3BE",
"tag": null,
"password": "my_withdrawal_password",
"code": 152823
}
Response
{
"success": true,
"result": {
"coin": "USDTBEAR",
"address": "0x83a127952d266A6eA306c40Ac62A4a70668FE3BE",
"tag": null,
"fee": 0,
"id": 1,
"size": 20.2,
"status": "requested",
"time": "2019-03-05T09:56:55.728933+00:00",
"txid": null
}
}
Requires authentication.

Payload format

Name Type Value Description

coin string USDTBEAR coin to withdraw

size number 20.2 amount to withdraw

address string 0x83a127952d266A6eA306c40Ac62A4a70668F address to send to


E3BE

tag string null optional


Name Type Value Description

method string null optional; blockchain to use for withdrawal

passwor string null optional; withdrawal password if it is required for your


d account

code string null optional; 2fa code if it is required for your account

 For ERC20 tokens: method=erc20


 For TRC20 tokens: method=trx
 For SPL tokens: method=sol
 For Omni tokens: method=omni
 For BEP2 tokens: method=bep2
 For Binance Smart
Chain tokens: method=bsc
 For Fantom tokens: method=ftm
 For Avax tokens: method=avax
 For Matic tokens: method=matic

Response format

Name Type Value Description

coin string USDTBEAR coin id


Name Type Value Description

addres string 0x83a127952d266A6eA306c40Ac62A4a70668F deposit address the withdrawal was sent to


E3BE
s

tag string null

fee number 0.0 fee, not included in size

id number 1 withdrawal id

size string 20.2

status string requested one of "requested", "processing", "complete", or "cancelled"

time string 2019-03-05T09:56:55.728933+00:00

txid string null

Get airdrops
This endpoint provides you with
updates to your AMPL balances
based on AMPL rebases.

Request
GET /wallet/airdrops
Response
{
"success": true,
"result": [
{
"coin": "AMPL",
"id": 1,
"size": 99.0,
"time": "2019-03-05T09:56:55.728933+00:00",
"status": "complete"
}
]
}
Requires authentication.

Supports pagination

Request parameters

Name Type Value Description

start_time number 1564146934 optional; minimum time of items to return, in Unix time (seconds since 1970-01-01)

end_time number 1564233334 optional; maximum time of items to return, in Unix time (seconds since 1970-01-01)

Response format
Name Type Value Description

coin string AMPL coin id

id numbe 1 aidrop id
r

size string 99.0

status string confirmed one of "confirmed" or "pending"

time string 2019-03-05T09:56:55.728933+00:00

Get withdrawal fees


Request
GET /wallet/withdrawal_fee
{
"coin": "USDC",
"size": 20.2,
"address": "0x83a127952d266A6eA306c40Ac62A4a70668FE3BE",
"tag": null
}
Response
{
"success": true,
"result": {
"method": "erc20",
"address": "0x83a127952d266A6eA306c40Ac62A4a70668FE3BE",
"fee": 0,
"congested": false
}
}
Requires authentication.

Payload format

Name Type Value Description

coin string COIN coin to withdraw

size number 20.2 amount to withdraw

address string 0x83a127952d266A6eA306c40Ac62A4a70668F address to send to


E3BE

tag string null optional

metho string erc20 optional; for coins available on different blockchains (e.g
d USDT)

 For ERC20 tokens: method=erc20


 For TRC20 tokens: method=trx
 For SPL tokens: method=sol
 For Omni tokens: method=omni
 For BEP2 tokens: method=bep2
 For Binance Smart
Chain tokens: method=bsc
 For Fantom tokens: method=ftm
 For Avax tokens: method=avax
 For Matic tokens: method=matic

Response format

Name Type Value Description

method string blockchain protocol that will be


used

fee number 0 fee that will be charged on the withdrawal (size - fee will be sent to
the destination)

congeste boolean false if this blockchain is currently congested


d

Get saved addresses


This endpoint provides you with
your saved addresses

Request
GET /wallet/saved_addresses
Response
{
"success": true,
"result": [
{
"address": "0xb2EA1CC386A260c9Ae3ebda2cb7AEd212b034Ab4",
"coin": "ETH",
"fiat": false,
"id": 31189,
"isPrimetrust": false,
"lastUsedAt": "2020-09-21T15:38:11.795763+00:00",
"name": "MetaMask 1",
"tag": null,
"whitelisted": true,
"whitelistedAfter": "2020-08-26T09:41:53.959256+00:00"
},
{
"address": "0xE4Ba8791E0fdbdc50024898A384FecFD90e69553",
"coin": "ETH",
"fiat": false,
"id": 46725,
"isPrimetrust": false,
"lastUsedAt": "2020-09-21T09:16:46.918175+00:00",
"name": "Ledger Nano S",
"tag": null,
"whitelisted": true,
"whitelistedAfter": "2020-09-21T09:16:16.829467+00:00"
}
]
}

Requires authentication.

Request parameters

Name Type Value Description

coin string ETH optional, filters saved addresses by coin;

Response format
Name Type Value Description

address string "0xb2EA1CC386A260c9Ae3ebda2cb7AEd212b034Ab4


"

coin string ETH coin id

fiat boolean false

id int 31189

isPrimetrust boolean false

lastUsedAt string "2020-09-21T15:38:11.795763+00:00"

tag string null

whitelisted boolean true true ifthe address is whitelisted, null if


the address has never been whitelisted
or has been unwhitelisted

whitelistedAfter string "2020-09-21T09:16:16.829467+00:00" Date after which the address has been
whitelisted, null if the address has never
Name Type Value Description

been whitelisted or has been


unwhitelisted

Create saved addresses


Request
POST /wallet/saved_addresses
{
"coin": "USDC",
"address": "0x83a127952d266A6eA306c40Ac62A4a70668FE3BE",
"wallet": "sol",
"addressName": "MetaMask",
"code": 123456
}
Response
{
"success": true,
"result": {
"address": "0x83a127952d266A6eA306c40Ac62A4a70668FE3BE",
"coin": "USDC",
"fiat": false,
"id": 52382,
"isPrimetrust": false,
"isSwipeCard": false,
"lastUsedAt": "2020-10-08T06:11:03.072427+00:00",
"name": "MetaMask",
"tag": null,
"wallet": "sol",
"whitelisted": null,
"whitelistedAfter": null
}
}
Requires authentication.
Request parameters

Name Type Value Description

coin string USDC coin id

address string 0xb2EA1CC386A260c9Ae3ebda2cb7AEd212b034Ab


4

wallet string sol chain; must be supplied for multi-chain coins

addressName string MetaMask

isPrimetrust boolean false

tag string null optional, tag for the address

whitelist boolean false Pass true if the user has whitelisting enabled
and would like this new address to be
whitelisted

code number 123456 optional; 2fa code if it is required for your


account

 For ERC20 tokens: wallet=erc20


 For TRC20 tokens: wallet=trx
 For SPL tokens: wallet=sol
 For Omni tokens: wallet=omni
 For BEP2 tokens: wallet=bep2
 For Binance Smart
Chain tokens: wallet=bsc
 For Fantom tokens: wallet=ftm
 For Avax tokens: wallet=avax
 For Matic tokens: wallet=matic

Response format

Name Type Value Description

address string 0xb2EA1CC386A260c9Ae3ebda2cb7AEd212b034Ab


4

coin string USDC coin id

fiat boolean false

id int 52382

isPrimetrust boolean false

isSwipeCard boolean false


Name Type Value Description

lastUsedAt string 2020-10-08T06:11:03.072427+00:00

name string MetaMask

tag string null

wallet string sol chain; must be supplied for multi-chain


coins

whitelisted boolean null true if


the address is whitelisted, null if
the address has never been whitelisted or
has been unwhitelisted

whitelistedAfter boolean null Date after which the address has been
whitelisted, null if the address has never
been whitelisted or has been unwhitelisted

Delete saved addresses


Request
DELETE /wallet/saved_addresses/{saved_address_id}
Response
{
"success": true,
"result": "Address deleted"
}
Requires authentication.

Request parameters

Typ
Name e Value Description

saved_address_id int 52382

Register a SEN deposit


Request
POST /sen/deposits/{sen_link_id}
{
"size": 175.0
}
Response
"Success"
Requires authentication.

Register a SEN deposit within our


system. In order to be auto-credited,
you must register the deposit with
us beforehand.

Valu
Name Type e Description

sen_link_id int 142 Unique ID of the SEN link


Valu
Name Type e Description

size number 175.0 Amount of the deposit

Request a SEN withdrawal


Request
POST /sen/withdrawals/{sen_link_id}
{
"size": 175.0
}
Response
"Success"
Requires authentication.

Request a Signet withdrawal.

Name Type Value Description

signet_link_i int 142 Unique ID of the SEN link


d

size number 175.0 Amount of the withdrawal


Register a Signet deposit
Request
POST /signet/deposits/{signet_link_id}
{
"size": 175.0
}
Response
"Success"
Requires authentication.

Request a Signet withdrawal.

Name Type Value Description

signet_link_id int 142 Unique ID of the Signet link

size numbe 175.0 Amount of the deposit


r

Request a Signet withdrawal


Request
POST /signet/withdrawals/{signet_link_id}
{
"size": 175.0
}
Response
"Success"
Requires authentication.

Request a Signet withdrawal.


Name Type Value Description

signet_link_id int 142 Unique ID of the Signet link

size numbe 175.0 Amount of the withdrawal


r

Orders

Get open orders


Request
GET /orders?market={market}
Response
{
"success": true,
"result": [
{
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"filledSize": 10,
"future": "XRP-PERP",
"id": 9596912,
"market": "XRP-PERP",
"price": 0.306525,
"avgFillPrice": 0.306526,
"remainingSize": 31421,
"side": "sell",
"size": 31431,
"status": "open",
"type": "limit",
"reduceOnly": false,
"ioc": false,
"postOnly": false,
"clientId": null
}
]
}
Requires authentication.

Request parameters

Name Type Value Description

marke string BTC-0329 optional; market to limit orders


t

Response format

Name Type Value Description

id number 9596912

market string XRP-PERP

type string limit

side string sell


Name Type Value Description

price number 0.306525

size number 31431.0

filledSize number 10.0

remainingSiz number 31421.0


e

avgFillPrice number 0.306526

status string new (accepted but not processed yet), open, or closed (filled or
cancelled)

createdAt string 2019-03-05T09:56:55.728933+00:00

reduceOnly boolean false

ioc boolean false


Name Type Value Description

postOnly boolean false

clientId string optional; client order id

Get order history


Request
GET /orders/history?market={market}
Response
{
"success": true,
"result": [
{
"avgFillPrice": 10135.25,
"clientId": null,
"createdAt": "2019-06-27T15:24:03.101197+00:00",
"filledSize": 0.001,
"future": "BTC-PERP",
"id": 257132591,
"ioc": false,
"market": "BTC-PERP",
"postOnly": false,
"price": 10135.25,
"reduceOnly": false,
"remainingSize": 0.0,
"side": "buy",
"size": 0.001,
"status": "closed",
"type": "limit"
},
],
"hasMoreData": false,
}
Requires authentication.

Supports pagination

Request parameters

Name Type Value Description

market string BTC-0329 optional; market to limit orders

side string buy optional; buy or sell side

orderType string limit optional; market or limit orders

start_time number 1559881511 optional; only fetch orders created after this time

end_time number 1559901511 optional; only fetch orders created before this time

Response format

Name Type Value Description

id number 257132591

market string BTC-PERP


Name Type Value Description

type string limit

side string buy

price number 10135.25

size number 0.001

filledSize number 0.001

remainingSiz number 0.0


e

avgFillPrice number 10135.25

status string new (accepted but not processed yet), open, or closed (filled or
cancelled)

createdAt string 2019-06-27T15:24:03.101197+00:00


Name Type Value Description

reduceOnly boolean false

ioc boolean false

postOnly boolean false

clientId string optional; client order id

Get open trigger orders


Request
GET /conditional_orders?market={market}
Response
{
"success": true,
"result": [
{
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"error": null,
"future": "XRP-PERP",
"id": 50001,
"market": "XRP-PERP",
"orderId": null,
"orderPrice": null,
"reduceOnly": false,
"side": "buy",
"size": 0.003,
"status": "open",
"trailStart": null,
"trailValue": null,
"triggerPrice": 0.49,
"triggeredAt": null,
"type": "stop"
"orderType": "market",
"filledSize": 0,
"avgFillPrice": null,
"retryUntilFilled": false
]
}
Requires authentication.

Request parameters

Name Type Value Description

market string XRP-PERP optional; market to limit orders

type string stop optional; type of trigger order (stop, trailing_stop,


or take_profit)

Response format

Name Type Value Description

createdAt string 2019-03-


05T09:56:55.728933+00:00

error string null [DEPRECATED] error that occurred on most recent trigger, if
exists; otherwise null
Name Type Value Description

future string XRP-PERP

id number 50001

market string XRP-PERP

orderId number null [DEPRECATED] order id of the most recent trigger, if exixsts;
otherwise null

orderPrice number 0.50 Limit price for stop limit and take profit limit orders; otherwise
null

reduceOnly boolean false

side string buy

size number 31431.0

status string open Always open for this endpoint

trailStart number null trigger price - trail value; only for trailing stop orders
Name Type Value Description

trailValue number null only for trailing stop orders

triggerPrice number 0.49 market price at which this order will trigger

triggeredAt string null time of first trigger. null if never triggered

type string stop Values are stop, trailing_stop, and take_profit

orderType string market Values are market, limit

filledSize number 0

avgFillPrice number null

retryUntilFilled boolean false Whether or not to keep re-triggering until filled

Get trigger order triggers


Request
GET /conditional_orders/{conditional_order_id}/triggers
Response
{
"success": true,
"result": [
{
"error": null,
"filledSize": 4.0,
"orderSize": 10.0,
"orderId": 38066650,
"time": "2020-01-19T09:23:36.570904+00:00"
}
]
}
Requires authentication.

Response format

Name Type Value Description

time string 2019-03-05T09:56:55.728933+00:00

orderSiz number 31431.0 null if order failed to place


e

filledSize number 0 null if order failed to place

orderId number null if order failed to place

error string null reason for order failing to be placed, null if successful
Name Type Value Description

Get trigger order history


Request
GET /conditional_orders/history?market={market}
Response
{
"success": true,
"result": [
{
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"error": null,
"future": "XRP-PERP",
"id": 50000,
"market": "XRP-PERP",
"orderId": 2800000,
"orderPrice": null,
"reduceOnly": false,
"side": "buy",
"size": 31431,
"status": "triggered",
"trailStart": null,
"trailValue": null,
"triggerPrice": 0.37,
"triggeredAt": 2019-03-06T03:26:53.268723+00:00,
"type": "stop",
"orderType": "market",
"filledSize": 31431,
"avgFillPrice": 0.3701,
"orderStatus": "closed",
"orderType": "market",
"filledSize": 0,
"avgFillPrice": null,
"retryUntilFilled": false,
},
],
"hasMoreData": false,
}
Requires authentication.

Supports pagination

Request parameters

Name Type Value Description

market string BTC-0329 optional; market to limit orders

start_time number 1559881511 optional; only fetch orders created after this time

end_time number 1559881511 optional; only fetch orders created before this time

side string buy optional; valid values are buy and sell.

type string trailing_stop optional; valid values are stop, trailing_stop,


and take_profit.

orderType string limit optional; valid values are market and limit.

Response format
Name Type Value Description

createdAt string 2019-03-


05T09:56:55.728933+00:00

error string null [DEPRECATED] error that occurred on most recent trigger, if
exists; otherwise null

future string XRP-PERP

id number 50001

market string XRP-PERP

orderId number null [DEPRECATED] order ID if this order has triggered; otherwise
null

orderPrice number 0.50 Limit price for stop limit and take profit limit orders; otherwise
null

reduceOnly boolean false


Name Type Value Description

side string buy

size number 31431.0

status string open Values are open, cancelled, and triggered

trailStart number null trigger price - trail value; only for trailing stop orders

trailValue number null only for trailing stop orders

triggerPrice number 0.49 market price at which this order will trigger

triggeredAt string null time of first trigger. null if never triggered

type string stop Values are stop, trailing_stop, and take_profit

orderType string market Values are market and limit

filledSize number 31431


Name Type Value Description

avgFillPrice number 0.3701

orderStatus string closed [DEPRECATED] status of most recent trigger's


order: new, open or closed

orderType string market Values are market, limit

filledSize number 0

avgFillPrice number null

retryUntilFilled boolean false Whether or not to keep re-triggering until filled

Get TWAP orders


Request
GET /twap_orders?market={market}
Response
{
"success": true,
"result": [
{
"id": 50001,
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"status": "running",
"market": "XRP-PERP",
"side": "buy",
"size": 1.003,
"type": "market",
"durationSeconds": 600,
"maxSpread": 0.01,
"maxIndividualOrderSize": 5.0,
"maxDistanceThroughBook": 0.1,
"priceBound": 5500,
"randomizeSize": false,
"filledSize": 0.5,
"avgFillPrice": 5000,
}
]
}
Requires authentication.

Supports pagination

Request parameters

Name Type Value Description

marke string BTC/ optional; When provided, only TWAP orders for this market are returned.
t USD

Response format

Name Type Value Description

id number 50001
Name Type Value Description

createdAt string 2019-03-


05T09:56:55.728933+00:00

status string open If an order was successfully placed, status will


be running. Possible values: running, expired, cancelled.

market string BTC/USD Optional; Ticker of the market.

future string XRP-PERP Optional; Ticker of the future.

side string buy One of buy or sell

size number 31431.0

type string market One of market or limit. Determines the type of order
that each TWAP execution sends.

durationSeconds number 600 In seconds, the duration this TWAP order will run for.

randomizeSize boolea false If true, each individual order for this TWAP will be sent
n with size bound by some [lower, upper] bound.
Name Type Value Description

maxSpread number 0.01 Optional; When specified, an individual order for this
TWAP will not be sent if market spread is higher than
maxSpread. For %1 spread, this value will be 0.01.

maxIndividualOrderSize number 0.01 Optional; When specified, an individual order for this
TWAP will be capped at maxIndividualOrderSize

maxDistanceThroughBook number 0.01 Optional; Max allowed distance of order price from
market price. For 1% distance, this field will be 0.01.

priceBound number 5500 Optional; When specified, an individual order for this
TWAP will not be sent if market price is above (for buys)
or below (for sells) this price bound.

filledSize number 0 Total filled size of this TWAP. This value is updated
throughout a TWAP's execution.

avgFillPrice number null Average price paid for the filled size.

Get TWAP order executions


Request
GET /twap_orders/{twap_order_id}/executions
Response
{
"success": true,
"result": [
{
"id": 50001,
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"status": "sent",
"failureReason": null,
"size": 0.5
"filledSize": 0.5,
"avgFillPrice": 5000,
"orderStatus": "closed",
"orderType": "limit",
}
]
}
Requires authentication.

Supports pagination

Request parameters

Response format

Name Type Value Description

id numbe 50001
r

createdAt string 2019-03-


05T09:56:55.728933+00:00

status string sent See table below for possible values.


Name Type Value Description

failureReason string 'insufficient_balance' This field may be populated if status is not 'sent' and there is
additional information about this error. See table below for
possible values.

size numbe 0.5 Size of the order that was placed as part of this execution
r

filledSize numbe 0.5 Total filled size for this individual order. Total of all filledSize's for all
r individual orders within a TWAP is equal to the total filled size of
the TWAP.

avgFillPrice numbe 5000 Average price paid for the filled size of this individual order.
r

orderStatus string 'closed' Status of the order that was sent as part of this execution. One
of new, open, closed

orderType string 'market' Order type of the order that was sent as part of this execution. One
of market, limit.

Status format
Status Description

sent Order was successfully sent.

skipped_spread_higher_than_allo This TWAP has a non-null maxSpread specified and this order was not sent because max
wed
spread was exceeded.

skipped_remaining_size_too_smal Remaining size for this TWAP is smaller than the minimum order size allowed for the
l
market. This TWAP will stop execution after encountering this issue.

skipped_run_size_too_small Order size for this individual run is smaller than the minimum order sized allowed for this
market.

skipped_place_order_failed Placing this individual order failed. The failureReason field will be populated if there is
additional information available (e.g. not enough balances).

skipped_last_order_not_closed The most recent order placed for this TWAP is still open.

skipped_price_bound_exceeded This TWAP has a non-null priceBound specified, and the market price exceeded that price
bound at the time this order was attempted to be executed.

Failure reason format


Enum Description

generic Generic failure. No additional information is available.

insufficient_margin User did not have enough margin to send an order as part of this execution

insufficient_balance User did not have enough balance to send an order as part of this execution.

invalid_reduce_only_or This execution attempted to place a reduce-only order that would have been invalid (e.g. would have
der
opened position).

post_only_market This market is in post-only mode.

account_being_liquidat The account was being liquidated at the time of TWAP execution.
ed

invalid_size Size for this execution was invalid.

Place order
Request
POST /orders
{
"market": "XRP-PERP",
"side": "sell",
"price": 0.306525,
"type": "limit",
"size": 31431.0,
"reduceOnly": false,
"ioc": false,
"postOnly": false,
"clientId": null
}
Response
{
"success": true,
"result": {
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"filledSize": 0,
"future": "XRP-PERP",
"id": 9596912,
"market": "XRP-PERP",
"price": 0.306525,
"remainingSize": 31431,
"side": "sell",
"size": 31431,
"status": "open",
"type": "limit",
"reduceOnly": false,
"ioc": false,
"postOnly": false,
"clientId": null,
}
}
Requires authentication.

Payload format

Name Type Value Description

market string XRP- e.g. "BTC/USD" for spot, "XRP-PERP" for futures
PERP
Name Type Value Description

side string sell "buy" or "sell"

price number 0.306525 Send null for market orders.

type string limit "limit" or "market"

size number 31431.0

reduceOnly boolean false optional; default is false

ioc boolean false optional; default is false

postOnly boolean false optional; default is false

clientId string null optional; client order id

rejectOnPriceBand boolean false optional; if the order should be rejected if its price would instead be adjusted due
to price bands

rejectAfterTs number null optional; if the order would be put into the placement queue after this timestamp,
instead reject it. If it would be placed on the orderbook after the timestamp, then
Name Type Value Description

immediately close it instead (as if it were, for instance, a post-only order that would
have taken)

Response format

Name Type Value Description

createdAt string 2019-03-05T09:56:55.728933+00:00

filledSize number 0.0

future string XRP-PERP

id number 9596912

market string XRP-PERP

price number 0.306525

remainingSiz number 31431.0


e
Name Type Value Description

side string sell

size number 31431.0

status string new (accepted but not processed yet), open, or closed (filled or
cancelled)

type string limit

reduceOnly boolean false

ioc boolean false

postOnly boolean false

clientId string optional; client order id, if supplied

Place trigger order


Trigger orders include stop, trailing
stop, and take profit.
Request
POST /conditional_orders
 Stop

{
"market": "XRP-PERP",
"side": "sell",
"triggerPrice": 0.306525,
"size": 31431.0,
"type": "stop",
"reduceOnly": false,
}
 Trailing stop

{
"market": "XRP-PERP",
"side": "sell",
"trailValue": -0.05,
"size": 31431.0,
"type": "trailingStop",
"reduceOnly": false,
}
 Take profit

{
"market": "XRP-PERP",
"side": "buy",
"triggerPrice": 0.367895,
"size": 31431.0,
"type": "takeProfit",
"reduceOnly": false,
}
Response
{
"success": true,
"result": {
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"future": "XRP-PERP",
"id": 9596912,
"market": "XRP-PERP",
"triggerPrice": 0.306525,
"orderId": null,
"side": "sell",
"size": 31431,
"status": "open",
"type": "stop",
"orderPrice": null,
"error": null,
"triggeredAt": null,
"reduceOnly": false,
"orderType": "market",
"retryUntilFilled": false,
}
}
Requires authentication.

Payload format

Name Type Value Description

market string XRP-


PERP

side string sell "buy" or "sell"

size number 31431.0

type string stop "stop", "trailingStop", "takeProfit"; default is stop

reduceOnly boolean false optional; default is false

retryUntilFilled boolean false Whether or not to keep re-triggering until filled. optional, default true for market
Name Type Value Description

orders

Additional parameters for stop loss


orders

Name Type Value Description

triggerPrice number 0.30652


5

orderPrice number 0.3063 optional; order type is limit if this is specified; otherwise market

Additional parameters for trailing


stop orders

Valu
Name Type e Description

trailValu number -0.05 negative for "sell"; positive for "buy"


e

Additional parameters for take profit


orders
Name Type Value Description

triggerPrice number 0.30652


5

orderPrice number 0.3067 optional; order type is limit if this is specified; otherwise market

Response format

Name Type Value Description

createdAt string 2019-03-


05T09:56:55.728933+00:00

future string XRP-PERP

id number 9596912

market string XRP-PERP

triggerPrice number 0.306525

orderId number 123123 [DEPRECATED] ID of the order sent on the most recent trigger,
Name Type Value Description

if exists

side string sell

size number 31431.0

status string Values are open, cancelled,


and triggered

type string stop

orderPrice number null price of the order sent when this stop loss triggered

error string null [DEPRECATED] error message for unsuccessful order


placement when this stop loss triggered

triggeredAt string null time at which this stop loss order triggered

reduceOnly boolean false

orderType string market Values are market, limit


Name Type Value Description

retryUntilFilled boolean false Whether or not to keep re-triggering until filled

Place TWAP order


Request
POST /twap_orders
{
"market": "XRP-PERP",
"side": "buy",
"size": 1.003,
"type": "market",
"durationSeconds": 600,
"maxSpread": 0.01,
"maxIndividualOrderSize": 5.0,
"maxDistanceThroughBook": 0.1,
"priceBound": 5500,
"randomizeSize": false,
"clientId": "your_client_order_id"
}
Response
{
"success": true,
"result": [
{
"id": 50001,
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"status": "running",
"market": "XRP-PERP",
"type": "market",
"side": "buy",
"size": 1.003,
"durationSeconds": 600,
"maxSpread": 0.01,
"maxIndividualOrderSize": 5.0,
"maxDistanceThroughBook": 0.1,
"priceBound": 5500,
"randomizeSize": false,
"filledSize": 0.5,
"avgFillPrice": 5000,
}
]
}
Requires authentication.

Request parameters

Name Type Value Description

market string BTC/USD Ticker of the market.

side string buy One of buy or sell

size number 31431.0

type string market One of market or limit. Determines the type of order that each TWAP
execution sends.

durationSeconds number 600 In seconds, the duration this TWAP order will run for.

randomizeSize boolea false If true, each individual order for this TWAP will be sent with size bound by
Name Type Value Description

n some [lower, upper] bound. Default: true

maxSpread number 0.01 Optional; When specified, an individual order for this TWAP will not be sent
if market spread is higher than maxSpread. For %1 spread, this value will be
0.01.

maxIndividualOrderSize number 0.01 Optional; When specified, an individual order for this TWAP will be capped at
maxIndividualOrderSize

maxDistanceThroughBook number 0.01 Optional; Max allowed distance of order price from market price. For 1%
distance, this field will be 0.01.

priceBound number 5500 Optional; When specified, an individual order for this TWAP will not be sent
if market price is above (for buys) or below (for sells) this price bound.

Response format

Name Type Value Description

id number 50001

createdAt string 2019-03-


Name Type Value Description

05T09:56:55.728933+00:00

status string open If an order was successfully placed, status will


be running. Possible values: running, expired, cancelled.

market string BTC/USD Optional; Ticker of the market.

future string XRP-PERP Optional; Ticker of the future.

side string buy One of buy or sell

size number 31431.0

type string market One of market or limit. Determines the type of order
that each TWAP execution sends.

durationSeconds number 600 In seconds, the duration this TWAP order will run for.

randomizeSize boolea false If true, each individual order for this TWAP will be sent
n with size bound by some [lower, upper] bound.
Name Type Value Description

maxSpread number 0.01 Optional; When specified, an individual order for this
TWAP will not be sent if market spread is higher than
maxSpread. For %1 spread, this value will be 0.01.

maxIndividualOrderSize number 0.01 Optional; When specified, an individual order for this
TWAP will be capped at maxIndividualOrderSize

maxDistanceThroughBook number 0.01 Optional; Max allowed distance of order price from
market price. For 1% distance, this field will be 0.01.

priceBound number 5500 Optional; When specified, an individual order for this
TWAP will not be sent if market price is above (for buys)
or below (for sells) this price bound.

filledSize number 0 Total filled size of this TWAP. This value is updated
throughout the execution of the TWAP.

avgFillPrice number null Average price paid for the filled size.

Modify order
Request
POST /orders/{order_id}/modify
{
"size": 31431,
"price": 0.326525,
}
Response
{
"success": true,
"result": {
"createdAt": "2019-03-05T11:56:55.728933+00:00",
"filledSize": 0,
"future": "XRP-PERP",
"id": 9596932,
"market": "XRP-PERP",
"price": 0.326525,
"remainingSize": 31431,
"side": "sell",
"size": 31431,
"status": "open",
"type": "limit",
"reduceOnly": false,
"ioc": false,
"postOnly": false,
"clientId": null,
}
}
Please note that the order's queue
priority will be reset, and the order
ID of the modified order will be
different from that of the original
order. Also note: this is
implemented as cancelling and
replacing your order. There's a
chance that the order meant to be
cancelled gets filled and its
replacement still gets placed.

Requires authentication.

Payload format
Name Type Value Description

price number 0.306525 optional; either price or size must be


specified

size number 31431.0 optional; either price or size must be


specified

clientId string order1 optional; client ID for the modified order

Response format

Name Type Value Description

createdAt string 2019-03-05T11:56:55.728933+00:00

filledSize number 0.0

future string XRP-PERP

id number 9596932

market string XRP-PERP


Name Type Value Description

price number 0.326525

remainingSiz number 31431.0


e

side string sell

size number 31431.0

status string new (accepted but not processed yet), open, or closed (filled or
cancelled)

type string limit

reduceOnly boolean false

ioc boolean false

postOnly boolean false


Name Type Value Description

clientId string optional; client order id, if supplied

Modify order by client ID


Request
POST /orders/by_client_id/{client_order_id}/modify
{
"size": 31431,
"price": 0.326525,
}
Response
{
"success": true,
"result": {
"createdAt": "2019-03-05T11:56:55.728933+00:00",
"filledSize": 0,
"future": "XRP-PERP",
"id": 9596932,
"market": "XRP-PERP",
"price": 0.326525,
"remainingSize": 31431,
"side": "sell",
"size": 31431,
"status": "open",
"type": "limit",
"reduceOnly": false,
"ioc": false,
"postOnly": false,
"clientId": null,
}
}
Please note that the order's queue
priority will be reset, and the order
ID of the modified order will be
different from that of the original
order. Also note: this is
implemented as cancelling and
replacing your order. There's a
chance that the order meant to be
cancelled gets filled and its
replacement still gets placed.

Requires authentication.

Payload format

Name Type Value Description

price number 0.306525 optional; either price or size must be


specified

size number 31431.0 optional; either price or size must be


specified

clientId string order1 optional; client ID for the modified order

Response format

Name Type Value Description

createdAt string 2019-03-05T11:56:55.728933+00:00


Name Type Value Description

filledSize number 0.0

future string XRP-PERP

id number 9596932

market string XRP-PERP

price number 0.326525

remainingSiz number 31431.0


e

side string sell

size number 31431.0

status string new (accepted but not processed yet), open, or closed (filled or
cancelled)
Name Type Value Description

type string limit

reduceOnly boolean false

ioc boolean false

postOnly boolean false

clientId string optional; client order id, if supplied

Modify trigger order


Trigger orders include stop, trailing
stop, and take profit.

Request
POST /conditional_orders/{order_id}/modify
 Stop

{
"triggerPrice": 0.306225,
"size": 31431.0,
}
 Trailing stop

{
"trailValue": -0.06,
"size": 31432.0,
}
 Take profit

{
"triggerPrice": 0.367885,
"size": 31433.0,

}
Response
{
"success": true,
"result": {
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"future": "XRP-PERP",
"id": 9596912,
"market": "XRP-PERP",
"triggerPrice": 0.306225,
"orderId": null,
"side": "sell",
"size": 31431,
"status": "open",
"type": "stop",
"orderPrice": null,
"error": null,
"triggeredAt": null,
"reduceOnly": false,
"orderType": "market",
"filledSize": 0,
"avgFillPrice": null,
"retryUntilFilled": false
}
}
Requires authentication.

Payload format

Please note that the order ID of the


modified order will be different from
that of the original order.
Parameters for stop loss orders

Name Type Value Description

size number 31431.0

triggerPrice number 0.30652


5

orderPrice number 0.3063 only for stop limit orders

Parameters for trailing stop orders

Name Type Value Description

size number 31431.0

trailValu number -0.05 negative for sell orders; positive


e for buy orders

Parameters for take profit orders

Name Type Value Description

size number 31431.0


Name Type Value Description

triggerPrice number 0.30652


5

orderPrice number 0.3067 only for take profit limit orders

Response format

Name Type Value Description

createdAt string 2019-03-


05T12:56:55.728933+00:00

future string XRP-PERP

id number 9596912

market string XRP-PERP

triggerPrice number 0.306525

orderId number 123123 [DEPRECATED] ID of the order sent on the most recent trigger,
Name Type Value Description

if exists

side string sell

size number 31431.0

status string Values are open, cancelled,


and triggered

type string stop

orderPrice number null price of the order sent when this stop loss triggered

error string null [DEPRECATED] error message for unsuccessful order


placement of the most recent trigger, if exists

triggeredAt string null time at which this stop loss first triggered

reduceOnly boolean false

orderType string market Values are market, limit


Name Type Value Description

retryUntilFilled boolean false Whether or not to keep re-triggering until filled

Get order status


Request
GET /orders/{order_id}
Response
{
"success": true,
"result": {
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"filledSize": 10,
"future": "XRP-PERP",
"id": 9596912,
"market": "XRP-PERP",
"price": 0.306525,
"avgFillPrice": 0.306526,
"remainingSize": 31421,
"side": "sell",
"size": 31431,
"status": "open",
"type": "limit",
"reduceOnly": false,
"ioc": false,
"postOnly": false,
"clientId": null,
"liquidation": False
}
}
Requires authentication.
Response format

Name Type Value Description

id number 9596912

market string XRP-PERP

type string limit

side string sell

price number 0.306525

size number 31431.0

filledSize number 10.0

remainingSiz number 31421.0


e

avgFillPrice number 0.306526


Name Type Value Description

status string new (accepted but not processed yet), open, or closed (filled or
cancelled)

createdAt string 2019-03-05T09:56:55.728933+00:00

reduceOnly boolean false

ioc boolean false

postOnly boolean false

clientId string client order id

Get order status by client id


Request
GET /orders/by_client_id/{client_order_id}
Response
{
"success": true,
"result": {
"createdAt": "2019-03-05T09:56:55.728933+00:00",
"filledSize": 10,
"future": "XRP-PERP",
"id": 9596912,
"market": "XRP-PERP",
"price": 0.306525,
"avgFillPrice": 0.306526,
"remainingSize": 31421,
"side": "sell",
"size": 31431,
"status": "open",
"type": "limit",
"reduceOnly": false,
"ioc": false,
"postOnly": false,
"clientId": "your_client_order_id"
}
}
Requires authentication.

Response format

Name Type Value Description

id number 9596912

market string XRP-PERP

type string limit

side string sell

price number 0.306525


Name Type Value Description

size number 31431.0

filledSize number 10.0

remainingSiz number 31421.0


e

avgFillPrice number 0.306526

status string new (accepted but not processed yet), open, or closed (filled or
cancelled)

createdAt string 2019-03-05T09:56:55.728933+00:00

reduceOnly boolean false

ioc boolean false

postOnly boolean false


Name Type Value Description

clientId string client order id

Cancel order
Request
DELETE /orders/{order_id}
Response
{
"success": true,
"result": "Order queued for cancelation"
}
Requires authentication.

Cancel TWAP order


Request
DELETE /twap_orders/{twap_order_id}
Response
{
"success": true,
"result": "Order cancelled"
}
Requires authentication.

Cancel order by client id


Request
DELETE /orders/by_client_id/{client_order_id}
Response
{
"success": true,
"result": "Order queued for cancellation"
}
Requires authentication.

Cancel open trigger order


Request
DELETE /conditional_orders/{id}
Response
{
"success": true,
"result": "Order cancelled"
}
Requires authentication.

Cancel all orders


This will also cancel conditional
orders (stop loss and trailing stop
orders).

Request
DELETE /orders
{
"market": "BTC-PERP",
}
Response
{
"success": true,
"result": "Orders queued for cancelation"
}
Requires authentication.

Payload format
Name Type Value Description

market string USDTBEAR optional; restrict to cancelling orders only on this market

side string buy optional; restrict to cancelling orders only on this side

conditionalOrdersOnly boolean false optional; restrict to cancelling conditional orders only

limitOrdersOnly boolean false optional; restrict to cancelling existing limit orders (non-conditional orders)
only

Bulk cancel orders


Request
DELETE /bulk_orders
{
"orderIds": [123, 456, 789],
}
Response
{
"success": true,
"result": [123, 456]
}
Requires authentication.

Payload format
Typ
Name e Value Description

orderIds list [1234, List of order ids to cancel.


456]

Response format

Name Type Value Description

result list [1234, Ids of orders that were successfully queued for cancellation.
456]

The response will exclude the order


ids that were not queued for
cancellation (e.g. the order with the
given id does not exist).

Bulk cancel orders by client


id
Request
DELETE /bulk_orders_by_client_id
{
"clientOrderIds": ["example", "example2"],
}
Response
{
"success": true,
"result": ["example", "example2"]
}
Requires authentication.
Payload format

Name Type Value Description

clientOrderIds list ["example", "example2"] List of client order ids to cancel.

Response format

Nam
e Type Value Description

result list [1234, Client order ids that were successfully queued for cancellation.
456]

The response will exclude the order


ids that were not queued for
cancellation (e.g. the order with the
given id does not exist).

Fills
Request
GET /fills?market={market}
Response
{
"success": true,
"result": [
{
"fee": 20.1374935,
"feeCurrency": "USD",
"feeRate": 0.0005,
"future": "EOS-0329",
"id": 11215,
"liquidity": "taker",
"market": "EOS-0329",
"baseCurrency": null,
"quoteCurrency": null,
"orderId": 8436981,
"tradeId": 1013912,
"price": 4.201,
"side": "buy",
"size": 9587,
"time": "2019-03-27T19:15:10.204619+00:00",
"type": "order"
}
]
}
Requires authentication.

Supports pagination

Please note that fills generated by


Converts will show up as 'type':
'otc'

Request parameters

Name Type Value Description

market string BTC-0329 optional; market to limit fills

start_time number 1564146934 optional; minimum time of fills to return, in Unix time (seconds since 1970-01-01)

end_time number 1564233334 optional; maximum time of fills to return, in Unix time (seconds since 1970-01-01)
Name Type Value Description

order string null optional; default is descending, supply 'asc' to receive fills in ascending order of time

orderId number 5012978413 optional; fetch fills for a specific order


7

Response format

Name Type Value Description

fee numbe 20.1374935


r

feeCurrency string USD

feeRate numbe 0.0005


r

future string EOS-0329

id numbe 11215 fill id


r
Name Type Value Description

liquidity string taker "taker" or "maker"

market string EOS-0329

baseCurrency string BTC spot markets only

quoteCurrency string USD spot markets only

orderId numbe 8436981


r

tradeId numbe 1013912 null for trades before 2019-02-19 10:00:00


r

price numbe 4.201


r

side string buy

size numbe 9587.0


r
Name Type Value Description

time string 2019-03-27T19:15:10.204619+00:00

type string order

Funding Payments
Requires authentication.

Supports pagination

Request
GET /funding_payments
Name Type Value Description

start_time number 1559881511 optional

end_time number 1559881711 optional

future string BTC-PERP optional

Response
{
"success": true,
"result": [
{
"future": "ETH-PERP",
"id": 33830,
"payment": 0.0441342,
"time": "2019-05-15T18:00:00+00:00",
"rate": 0.0001
}
]
}
Response format

Name Type Value Description

future string ETH-PERP

id number 33830

paymen number 0.0441342


t

time string 2019-05-15T18:00:00+00:00


Leveraged Tokens

List leveraged tokens


Request
GET /lt/tokens
Response
{
"success": true,
"result": [
{
"name": "HEDGE",
"description": "1X Short Bitcoin Token",
"underlying": "BTC-PERP",
"leverage": -1.0,
"outstanding": 22155.41968804,
"pricePerShare": 110.87560713849138,
"positionPerShare": -0.001966859604267557,
"positionsPerShare": {"BTC-PERP": -0.001966859604267557},
"basket": {"BTC-PERP": -0.001966859604267557, "USD": 221.74748303105358},
"targetComponents": ["BTC-PERP"],
"underlyingMark": 56370.0,
"totalNav": 2456495.60931952,
"totalCollateral": 2465646.6953195203,
"contractAddress": "0x1FA3bc860bF823d792f04F662f3AA3a500a68814",
"currentLeverage": -0.9999663474588733,
"change1h": -0.008438973233561787,
"change24h": 0.014631456489264717,
"changeBod": -0.0017092321513513995
}
]
}
Response format
Name Type Value Description

name string HEDGE name of the token

description string 1x Short Bitcoin Token

underlying string BTC-PERP name of the underlying futures contract used


by this token

leverage number -1.0 Target leverage

outstanding number 22155.41968804 number of outstanding tokens

pricePerShare number 110.87560713849138 totalNav divided by outstanding

positionsPerShare dict {"BTC-PERP": -0.001966859604267557} Futures positions per share: one element for
each item in targetComponents

basket dict {"BTC-PERP": -0.001966859604267557, "USD": Holdings per share


221.74748303105358}

targetComponents list ["BTC-PERP"] Futures to be included in the basket of the


leverage token. For BVOL and IBVOL futures,
Name Type Value Description

this contains multiple entries

totalNav number 2456495.60931952 Total value of the leveraged token holdings


(basket holdings marked to market times
outstanding)

totalCollateral number 2465646.6953195203 Total collateral in the leveraged token


account

currentLeverage number -0.9999663474588733 Current leverage

positionPerShare number -0.001966859604267557 underlying futures position held by each


token

underlyingMark number 56370.0 current mark price of the underlying future

contractAddress string 0x1FA3bc860bF823d792f04F662f3AA3a500a68814 ERC20 smart contract address of the token

change1h number -0.008438973233561787 change in the price of the token over the past
hour
Name Type Value Description

change24h number 0.014631456489264717 change in the price of the token over the past
day

changeBod number -0.0017092321513513995 Change in price since 00:00 UTC

Get token info


Request
GET /lt/{token_name}
Response
{
"success": true,
"result": [
{
"name": "HEDGE",
"description": "1X Short Bitcoin Token",
"underlying": "BTC-PERP",
"leverage": -1.0,
"outstanding": 22155.41968804,
"pricePerShare": 110.87560713849138,
"positionPerShare": -0.001966859604267557,
"positionsPerShare": {"BTC-PERP": -0.001966859604267557},
"basket": {"BTC-PERP": -0.001966859604267557, "USD": 221.74748303105358},
"targetComponents": ["BTC-PERP"],
"underlyingMark": 56370.0,
"totalNav": 2456495.60931952,
"totalCollateral": 2465646.6953195203,
"contractAddress": "0x1FA3bc860bF823d792f04F662f3AA3a500a68814",
"currentLeverage": -0.9999663474588733,
"change1h": -0.008438973233561787,
"change24h": 0.014631456489264717,
"changeBod": -0.0017092321513513995
}
]
}
Parameters

Name Type Value Description

token_nam string HEDGE Required. Name of the token.


e

Get leveraged token balances


Request
GET /lt/balances
Response
{
"success": true,
"result": [
{
"token": "HEDGE",
"balance": 8.8
}
]
}
Requires authentication.

Response format

Name Type Value Description

token string HEDG


E
Name Type Value Description

balanc number 8.8


e

List leveraged token creation


requests
Request
GET /lt/creations
Response
{
"success": true,
"result": [
{
"id": 123,
"token": "HEDGE",
"requestedSize": 10,
"pending": false,
"createdSize": 10,
"price": 1234,
"cost": 12340,
"fee": 12.34,
"requestedAt": "2019-03-05T09:56:55.728933+00:00",
"fulfilledAt": "2019-03-05T09:56:55.728933+00:00"
}
]
}
Requires authentication.

Response format
Name Type Value Description

id number 123

token string HEDGE name of the token

requestedSize number 10 number of tokens originally requested

pending boolean false

createdSize number 10 number of tokens created; may be less than the requested
number

price number 1234 price at which the creation request was fulfilled

cost number 12340 cost of creating the tokens, not including fees

fee number 12.34 fee for creating the tokens

requestedAt string 2019-03- time the request was submitted


05T09:56:55.728933+00:00
Name Type Value Description

fulfilledAt string 2019-03- time the request was processed


05T09:56:55.728933+00:00

Request leveraged token


creation
Request
POST /lt/{token_name}/create
{
"size": 31431.0
}
Response
{
"success": true,
"result": {
"id": 123,
"token": "HEDGE",
"requestedSize": 10,
"cost": 12340,
"pending": true,
"requestedAt": "2019-03-05T09:56:55.728933+00:00"
}
}
Requires authentication.

Request parameters

Name Type Value Description

token_nam string HEDG required; name of the token


Name Type Value Description

e E

Payload format

Name Type Value Description

size numbe 31431.0 number of tokens to create


r

Response format

Name Type Value Description

id number 123

token string HEDGE name of the token

requestedSize number 10 number of tokens requested

cost number 12340 amount of collateral deducted for the creation request

pending boolean true


Name Type Value Description

requestedAt string 2019-03-05T09:56:55.728933+00:00 time the request was submitted

List leveraged token


redemption requests
Request
GET /lt/redemptions
Response
{
"success": true,
"result": [
{
"id": 123,
"token": "HEDGE",
"size": 10,
"pending": false,
"price": 1234,
"proceeds": 12340,
"fee": 12.34,
"requestedAt": "2019-03-05T09:56:55.728933+00:00",
"fulfilledAt": "2019-03-05T09:56:55.728933+00:00"
}
]
}
Requires authentication.

Supports pagination

Response format
Name Type Value Description

id number 123

token string HEDGE name of the token

size number 10 number of tokens redeemed

pending boolea false


n

price number 1234 price at which the redemption request was fulfilled

proceeds number 12340 proceeds from the redemption, before fees

fee number 12.34 fee for redeeming the tokens

requestedAt string 2019-03-05T09:56:55.728933+00:00 time the request was submitted

fulfilledAt string 2019-03-05T09:56:55.728933+00:00 time the request was processed


Request leveraged token
redemption
Request
POST /lt/{token_name}/redeem
{
"size": 31431.0
}
Response
{
"success": true,
"result": {
"id": 123,
"token": "HEDGE",
"size": 10,
"projectedProceeds": 12340,
"pending": true,
"requestedAt": "2019-03-05T09:56:55.728933+00:00"
}
}
Requires authentication.

Request parameters

Name Type Value Description

token_nam string HEDG required; name of the token


e E

Payload format

Name Type Value Description

size numbe 31431.0 number of tokens to create


Name Type Value Description

Response format

Name Type Value Description

id number 123

token string HEDGE - name of the token

size number 10 - number of tokens requsted to be redeemed

projectedProceeds number 12340 - estimated proceeds from the redemption

pending boolea true


n

requestedAt string 2019-03-05T09:56:55.728933+00:00 - time the request was submitted

Request ETF rebalance info


Request
GET /etfs/rebalance_info
Provides information about the most
recent rebalance of each ETF.

Response
{
"BNBBEAR": {
"orderSizeList": [
"751.80000000",
"751.80000000",
"751.80000000",
"1.10000000"
],
"side": "buy",
"time": "2021-05-03 13:03:48.585349"
},
"DOGEBEAR2021": {
"orderSizeList": [
"440614.00000000"
],
"side": "buy",
"time": "2021-05-03 13:31:44.577947"
},
"DOGEBEAR": {
"orderSizeList": [
"118599.00000000"
],
"side": "buy",
"time": "2021-05-03 13:31:45.746563"
}
}
Response format

Name Type Value Description

[key] string BNBBEAR ticker of the ETF

orderSizeList list of ["751.80000000", "751.80000000", List of order sizes in the rebalance


Name Type Value Description

numbers "751.80000000", "1.10000000"]

side string buy "buy" or "sell" depending on whether the


rebalance involves buying or selling

time string 2021-05-03 13:31:45.746563 time of the rebalance

Options

List quote requests


Request
GET /options/requests
Response
{
"success": true,
"result": [
{
"id": 512,
"option": {
"underlying": "BTC",
"type": "call",
"strike": 7800,
"expiry": "2020-01-08T03:00:00+00:00",
},
"side": "buy",
"size": 1.2,
"time": "2020-01-07T22:35:54.626023+00:00",
"requestExpiry": "2020-01-08T22:35:54.626023+00:00",
"status": "open",
},
],
}
Response format

Name Type Value Description

id numbe 512
r

option dict option object; see below

size numbe 1.2


r

side string buy

time string 2020-01- when the request was placed


07T22:35:54.626023+00:00

status string open

requestExpiry string 2020-01- when the request expires


Name Type Value Description

08T22:35:54.626023+00:00

limitPrice numbe 10.2 optional; omitted when the request has no limit price or it is
r hidden

Note that option objects have the


following format:

Name Type Value Description

underlying string BTC

type string call "call" or "put"

strike number 7800

expiry string 2020-01-08T03:00:00+00:00

Your quote requests


Requires authentication.

Request
GET /options/my_requests
Response
{
"success": true,
"result": [
{
"id": 512,
"option": {
"underlying": "BTC",
"type": "call",
"strike": 7800,
"expiry": "2020-01-08T03:00:00+00:00",
},
"side": "buy",
"size": 1.2,
"time": "2020-01-07T22:35:54.626023+00:00",
"requestExpiry": "2020-01-08T22:35:54.626023+00:00",
"status": "open",
"hideLimitPrice": true,
"limitPrice": 1.2,
"quotes": [
{
"collateral": 8762.71757981,
"id": 1029,
"price": 1.0,
"quoteExpiry": null,
"status": "open",
"time": "2020-01-07T22:49:31.367379+00:00".
},
],
},
],
}
Response format

Name Type Value Description

id number 512
Name Type Value Description

option dict option object; see List Quote Requests section

side string buy

size number 1.2

time string 2020-01-07T22:35:54.626023+00:00 when the request was placed

status string open

requestExpiry string 2020-01-08T22:35:54.626023+00:00 when the request expires

quotes array list of quotes for your quote request; see below

hideLimitPrice bool true whether or not to hide your limit price if it exists

limitPrice number 1.2 optional; omitted if your request does not have a limit price

Note that quote objects have the


following format:
Name Type Value Description

id number 1029

status string open

collateral number 8762.71757981 collateral locked by the quote

price number 1.0

quoteExpir string null optional


y

time string 2020-01-07T22:49:31.367379+00:00 when the quote was created

Create quote request


Request
Requires authentication.

POST /options/requests
{
"underlying": "BTC",
"type": "call",
"strike": 7800,
"expiry": 1578625200,
"side": "buy",
"size": 5,
}
Payload format

Name Type Value Description

underlying string BTC

type string call "call" or "put"

strike number 7800

expiry number 1578625200 unix timestamp of option expiry. Must be in the future and at 03:00 UTC.

side string buy "buy" or "sell"

size number 5

limitPrice number 1.2 optional limit price

hideLimitPrice bool true whether or not to hide your limit price from potential quoters, default true

requestExpiry number null optional; unix timestamp of request expiry, defaults to 5 minutes in the future
Name Type Value Description

counterpartyId number 1234567 optional; when specified, makes the request private to the specified counterparty

Response
{
"success": true,
"result": {
"id": 3,
"option": {
"expiry": "2020-01-10T03:00:00+00:00",
"strike": 7800,
"type": "call",
"underlying": "BTC"
},
"expiry": "2020-01-10T03:00:00+00:00",
"strike": 7800,
"type": "call",
"underlying": "BTC",
"requestExpiry": "2020-01-08T23:05:44.047653+00:00",
"side": "buy",
"size": 5,
"status": "open",
"time": "2020-01-07T23:05:44.047653+00:00"
},
}

Cancel quote request


Requires authentication.

Request
DELETE /options/requests/{request_id}
Response
{
"id": 3,
"option": {
"expiry": "2020-01-10T03:00:00+00:00",
"strike": 7800.0,
"type":"call",
"underlying": "BTC"
},
"requestExpiry": "2020-01-08T23:05:44.047653+00:00",
"side": "buy",
"size": 5.0,
"status": "cancelled",
"time": "2020-01-07T23:05:44.047653+00:00",
}

Get quotes for your quote


request
Requires authentication.

Request
GET /options/requests/{request_id}/quotes
Response
{
"success": true,
"result": {
"collateral": 26862.33468643,
"id": 2,
"option": {
"expiry": "2020-01-08T03:00:00+00:00",
"strike"': 10.0,
"type": "call",
"underlying": "BTC"
},
"price": 11.0,
"quoteExpiry": null,
"quoterSide": "sell",
"requestId": 4,
"requestSide": "buy",
"size": 3.0,
"status": "open",
"time": "2020-01-07T23:43:24.772581+00:00"
},
}
Name Type Value Description

id numbe 2 id of the quote


r

requestId numbe 4 id of the quote request


r

status string open

collateral numbe 26862.33468643 collateral locked by the quote


r

price numbe 11.0


r

quoteExpiry string null optional

quoterSide string sell

requestSide string buy


Name Type Value Description

size numbe 3.0


r

time string 22020-01-07T23:43:24.772581+00:00 when the quote was created

option option object; see List Quote Requests


section

requestLimitPrice numbe null the quote request's limit price. omitted if does not
r exist or hidden

Create quote
Requires authentication.

Request
POST /options/requests/{request_id}/quotes
{
"price": 11.0,
}
Payload format
Nam
e Type Value Description

price number 11.0 price of your quote

Response
{
"success": true,
"result": {
"collateral": 26862.33468643,
"id": 2,
"option": {
"expiry": "2020-01-08T03:00:00+00:00",
"strike"': 10.0,
"type": "call",
"underlying": "BTC"
},
"price": 11.0,
"quoteExpiry": null,
"quoterSide": "sell",
"requestId": 4,
"requestSide": "buy",
"size": 3.0,
"status": "open",
"time": "2020-01-07T23:43:24.772581+00:00"
},
}

Get my quotes
Requires authentication.

Request
GET /options/my_quotes
Response
{
"success": true,
"result": {
"collateral": 26862.33468643,
"id": 2,
"option": {
"expiry": "2020-01-08T03:00:00+00:00",
"strike": 10.0,
"type": "call",
"underlying": "BTC"
},
"price": 11.0,
"quoteExpiry": null,
"quoterSide": "sell",
"requestId": 4,
"requestSide": "buy",
"size": 3.0,
"status": "open",
"time": "2020-01-07T23:43:24.772581+00:00"
},
}

Cancel quote
Requires authentication.

Request
DELETE /options/quotes/<quote_id>
Response
{
"success": true,
"result": {
"collateral": 0,
"id": 4,
"option": {
"expiry": "2020-01-08T03:00:00+00:00",
"strike": 7800,
"type": "call",
"underlying": "BTC",
},
"price": 11,
"quoteExpiry": null,
"quoterSide": "sell",
"requestId": 4,
"requestSide": "buy",
"size": 3,
"status": "cancelled",
"time": "2020-01-08T00:20:00.532812+00:00",
},
}

Accept options quote


Requires authentication.

Request
POST /options/quotes/<quote_id>/accept
Response
{
"success": true,
"result": {
"collateral": 0,
"id": 5,
"option": {
"expiry": "2020-01-08T03:00:00+00:00",
"strike": 7800,
"type": "call",
"underlying": "BTC",
},
"price": 11,
"quoteExpiry": null,
"quoterSide": "sell",
"requestId": 4,
"requestSide": "buy",
"size": 3,
"status": "filled",
"time": "2020-01-08T00:20:00.532812+00:00",
},
}

Get account options info


Requires authentication.

Request
GET /options/account_info
Response
{
"success": true,
"result": {
"usdBalance": 34.0,
"liquidationPrice": 1900.2,
"liquidating": false,
},
}
Name Type Value Description

usdBalance number 34.0

liquidationPrice number 1900.2 estimated liquidation price

liquidated boolean false if the account is currently liquidating

maintenanceMarginRequirement number 1200.1 you will be liquidated if your account collateral + options usdBalance
2 drops below this number

initialMarginRequirement number 1523.1


3

Get options positions


Requires authentication.

Request
GET /options/positions
Response
{
"success": true,
"result": [
{
"entryPrice": 11.0,
"netSize": 3.0,
"option": {
"expiry": "2020-01-08T03:00:00+00:00",
"strike": 7800,
"type": "call",
"underlying": "BTC",
},
"side": "buy",
"size": 3,
},
]
}
Name Type Value Description

netSize number 3.0 positive if long, negative if short

entryPrice number 11.0 average entry price

size number 3.0 absolute value of netSize

option option object; see List Quote


Requests section
Name Type Value Description

side string buy "buy" if long, "sell" if short

pessimisticValuation number 1.1 optional; pessimistic valuation of this position used for
margin purposes

pessimisticIndexPrice number 6280 optional; index price corresponding to pessimistic


valuation

pessimisticVol number 0.17 optional; vol corresponding to pessimistic valuation

Get public options trades


Supports pagination

Request
GET /options/trades
Request parameters

Name Type Value Description

start_time number 1559881511 optional; only fetch orders created after this time

end_time number 1559901511 optional; only fetch orders created before this time
Name Type Value Description

Response
{
"success": true,
"result": [
{
"id": 31,
"option": {
"expiry": "2020-01-08T03:00:00+00:00",
"strike": 7800,
"type": "call",
"underlying": "BTC",
},
"price": 3,
"size": 1,
"time": "2020-01-08T02:59:57.270744+00:00",
},
]
}
Name Type Value Description

id number 31

size number 1.0

price number 3.0


Name Type Value Description

option option object; see List Quote Requests section

time string "2020-01-08T02:59:57.270744+00:00"

Get options fills


Requires authentication.

Supports pagination

Request
GET /options/fills
Request parameters

Name Type Value Description

start_time number 1559881511 optional; only fetch orders created after this time

end_time number 1559901511 optional; only fetch orders created before this time

Response
{
"success": true,
"result": [
{
"fee": 1.782852614186007,
"feeRate": 0.0001729,
"id": 5,
"liquidity": "taker",
"option": {
"expiry": "2020-01-08T03:00:00+00:00",
"strike": 7800,
"type": "call",
"underlying": "BTC"
},
"price": 3,
"quoteId": 6,
"side": "sell",
"size": 1,
"time": "2020-01-08T02:59:57.270744+00:00",
},
]
}
Name Type Value Description

id number 5

size number 1.0

price number 3.0

option option object; see List Quote Requests section

time string "2020-01-08T02:59:57.270744+00:00"

liquidit string taker "taker" or "maker"


y
Name Type Value Description

fee number 1.782852614186007

feeRate number 0.0001729

side string buy

Get 24h option volume


Request
GET /stats/24h_options_volume
Response
{
"success": true,
"result": [
{
"contracts": 216.6842,
"underlying_total": 2111838.071037173,
}
]

}
Name Type Value Description

contracts number 216.6842 Number of contracts traded over the last 24 hours

underlying_total number 2111838.071037173 Notional value of the contracts traded over the last 24 hours
Name Type Value Description

Get option open interest


Supports pagination

Request
GET /options/historical_volumes/BTC
Request parameters

Name Type Value Description

start_time number 1559881511 optional; only fetch orders created after this time

end_time number 1559901511 optional; only fetch orders created before this time

Response
{
"success": true,
"result": [
{
"numContracts": 1.0,
"endTime": "2020-07-01T04:06:00.584303+00:00",
"startTime": "2020-07-01T03:06:00.543341+00:00"
}
]
}
Name Type Value Description

numContracts number 12572.0898 Volume (in BTC)

endTime string "2020-07-01T04:06:00.584303+00:00"

startTime string "2020-07-01T03:06:00.543341+00:00"

Get option open interest


Request
GET /options/open_interest/BTC
Response
{
"success": true,
"result": {
"openInterest": 12572.0898
}
}
Name Type Value Description

openInteres number 12572.089 Open interest (in BTC)


t 8

Get option open interest


Supports pagination
Request
GET options/historical_open_interest/BTC
Request parameters

Name Type Value Description

start_time number 1559881511 optional; only fetch orders created after this time

end_time number 1559901511 optional; only fetch orders created before this time

Response
{
"success": true,
"result": [
{
"numContracts": 5870.6395,
"time": "2020-07-01T04:06:00.589877+00:00"
}
]
}
Name Type Value Description

numContracts numbe 12572.0898 Open interest (in BTC)


r

time string "2020-07-01T04:06:00.589877+00:00"


Staking

Get stakes
Request
GET /staking/stakes
Response
{
"success": true,
"result": [
{
"coin": "SRM",
"createdAt": "2020-08-12T12:13:56.900236+00:00",
"id": 2447,
"size": 0.1,
}
]
}
Name Type Value

coin string SRM

createdAt string 2020-08-12T12:13:56.900236+00:00

id int 2447

size number 0.1


Unstake request
Request
GET /staking/unstake_requests
Response
{
"success": true,
"result": [
{
"coin": "SRM",
"createdAt": "2020-08-12T20:49:07.210200+00:00",
"id": 121,
"size": 0.1,
"status": "pending",
"unlockAt": "2020-08-19T20:49:07.225716+00:00",
}
]
}
Name Type Value

coin string SRM

createdA string 2020-08-12T20:49:07.210200+00:00


t

id int 121

size number 0.1

status string pending (pending, cancelled, processed)


Name Type Value

unlockAt string 2020-08-19T20:49:07.225716+00:00

Get stake balances


Returns actively staked, scheduled
for unstaking and lifetime rewards
balances

Request
GET /staking/balances
Response
{
"success": true,
"result": [
{ "coin": "SRM",
"lifetimeRewards": 1.98e-06,
"scheduledToUnstake": 0.1,
"staked": 0.0},
{ "coin": "MSRM",
"lifetimeRewards": 0,
"scheduledToUnstake": 0,
"staked": 0.0},
{ "coin": "MSRM_LOCKED",
"lifetimeRewards": 0,
"scheduledToUnstake": 0,
"staked": 0.0},
{ "coin": "SRM_LOCKED",
"lifetimeRewards": 1.98e-06,
"scheduledToUnstake": 0,
"staked": 0.0,
}
]
}
Unstake request
Request parameters

Request
POST /staking/unstake_requests
Response
{
"success": true,
"result": [
{ "coin": "SRM",
"createdAt": "2020-08-12T21:03:21.539419+00:00",
"id": 122,
"size": 0.1,
"status": "pending",
"unlockAt": "2020-08-19T21:03:21.543783+00:00",
}
]
}
Name Type Value

coin string SRM

size number 0.1

Name Type Value

coin string SRM

createdA string 2020-08-12T21:03:21.539419+00:00


t
Name Type Value

size number 0.1

status string pending (pending, cancelled, processed)

unlockAt string 2020-08-19T21:03:21.543783+00:00

Cancel unstake request


Request
DELETE /staking/unstake_requests/{request_id}
Response
{
"success": true,
"result": ["Cancelled"]
}

Get staking rewards


Supports pagination

Request
GET /staking/staking_rewards
Response
{
"success": true,
"result": [
{ "coin": "SRM",
"id": 99730,
"size": 0.1,
"status": "complete",
"time": "2020-08-12T20:15:25.260879+00:00"},
}
]
}
Nam
e Type Value

coin string SRM

id int 99730

size number 0.1

status string complete

time string 2020-08-12T20:15:25.260879+00:00

Stake request
Request parameters

Request
POST /srm_stakes/stakes
Response
{
"success": true,
"result": [
{ "coin": "SRM",
"createdAt": "2020-08-12T21:17:39.884879+00:00",
"id": 3001,
"size": 0.1,
}
]
}
Name Type Value

coin string SRM

size number 0.1

Name Type Value

coin string SRM

createdAt string 2020-08-12T21:17:39.884879+00:00

id int 3001

size number 0.1


Convert

Request quote
Request
POST /otc/quotes
{
"fromCoin": "BTC",
"toCoin": "USD",
"size": 0.05
}
Response
{
"success": true,
"result": {
"quoteId": 1031
}
}
Requires authentication.

Payload format

Name Type Value Description

fromCoi string BTC


n

toCoin string USD

size number 0.05 denominated in units of fromCoin


Response format

Name Type Value Description

quoteId number 1031

Get quote status


Request
GET /otc/quotes/{quoteId}
Response
{
"success": true,
"result": [
{
"baseCoin": "BTC",
"cost": 0.05,
"expired": false,
"expiry": 1630355607.399486,
"filled": false,
"fromCoin": "BTC",
"id": 1031,
"price": 7695.4,
"proceeds": 384.77,
"quoteCoin": "USD",
"side": "sell",
"toCoin": "USD"
}
]
}
Requires authentication.

Request parameters
Name Type Value Description

market string BTC/ optional; market to limit orders


USD

Response format

Name Type Value Description

baseCoin string BTC

cost number 0.05 cost of accepting the quote in units of fromCoin

expired bool false if the quote is expired (if so, cannot accep tit)

filled bool false if the quote is already accepted

id number 1031

price number 7695.4 price in units of quoteCoin

proceeds number 384.77 proceeds of accepting the quote in units of toCoin


Name Type Value Description

quoteCoi string USD


n

side string "sell" "sell" if fromCoin is baseCoin, otherwise "buy"

toCoin string USD

Accept quote
Request
POST /otc/quotes/{quote_id}/accept
Response
{
"success": true,
"result": null
}
Requires authentication.

Payload format

Name Type Value Description

quoteId number 1031


Spot Margin

Get lending history


Request
GET /spot_margin/history
Supports pagination

Request parameters

Name Type Value Description

start_time number 155988151 optional; only fetch history after this time
1

end_time number 155990151 optional; only fetch history before this time
1

Response
{
"success": true,
"result": [
{
"coin": "BTC",
"time": "2021-04-06T20:00:00+00:00",
"rate": 0.00002283,
"size": 615974048.2224404
}
]
}
Response format
Nam
e Type Value Description

coin string USD

time string 2021-04-06T20:00:00+00:00

rate number 0.00002283 hourly lending rate for this cycle

size number 615974048.2224404 total size matched between borrowers and lenders

Get borrow rates


Request
GET /spot_margin/borrow_rates
Response
{
"success": true,
"result": [
{
"coin": "BTC",
"estimate": 1.45e-06,
"previous": 1.44e-06
}
]
}
Requires authentication.

Response format
Name Type Value Description

coin string BTC

estimate number 1.45e-06 estimated hourly borrow rate for the next spot margin cycle

previous number 1.44e-06 hourly borrow rate in the previous spot margin cycle

Get lending rates


Request
GET /spot_margin/lending_rates
Response
{
"success": true,
"result": [
{
"coin": "BTC",
"estimate": 1.45e-06,
"previous": 1.44e-06
}
]
}
Response format

Name Type Value Description

coin string BTC


Name Type Value Description

estimate number 1.45e- estimated hourly lending rate for the next spot margin cycle
06

previous number 1.44e- hourly lending rate in the previous spot margin cycle
06

Get daily borrowed amounts


Request
GET /spot_margin/borrow_summary
Response
{
"success": true,
"result": [
{
"coin": "BTC",
"size": 120.1,
}
]
}
Response format

Nam
e Type Value Description

coin string BTC


Nam
e Type Value Description

size number 120.1 average matched borrowed and lent amount over the last 24h

Get market info


Request
GET /spot_margin/market_info?market={market}
Response
{
"success": true,
"result": [
{
"coin": "BTC",
"borrowed": 0.0,
"free": 3.87278021,
"estimatedRate": 1e-06,
"previousRate": 1e-06
},
{
"coin": "USD",
"borrowed": 0.0,
"free": 69966.22310497,
"estimatedRate": 1.027e-05,
"previousRate": 1.027e-05
}
]
}
Requires authentication.

Will return None if spot margin is


not enabled in account settings.

Response format
Name Type Value Description

coin string BTC

borrowed numbe 0.0 amount of coin currently borrowed


r

free numbe 3.87278021 amount of coin that can be spent buying the other coin in the supplied market,
r including what's borrowable with margin

estimatedRate numbe 1.45e-06 estimated hourly borrow rate for the next spot margin cycle
r

previousRate numbe 1.44e-06 hourly borrow rate in the previous spot margin cycle
r

Get my borrow history


Request
Supports pagination
GET /spot_margin/borrow_history
Response
{
"success": true,
"result": [
{
"coin": "BTC",
"cost": 0.00047864470072,
"rate": 1.961096e-05,
"size": 24.407,
"time": "2020-11-30T12:00:00+00:00"
}
]
}
Requires authentication.

Supports pagination

Request parameters

Name Type Value Description

start_time number 155988151 optional; only fetch history after this time
1

end_time number 155990151 optional; only fetch history before this time
1

Response format

Name Type Value Description

coin string BTC

cost numbe 0.00047864470072 amount of coin you paid as interest on the borrow
r
Name Type Value Description

rate numbe 1.961096e-05 borrow rate


r

size numbe 24.407 amount borrowed


r

time string 2020-11-30T12:00:00+00:00 time of interest payment

Get my lending history


Request
Supports pagination

GET /spot_margin/lending_history
Response
{
"success": true,
"result": [
{
"coin": "BTC",
"proceeds": 0.00047864470072,
"rate": 1.961096e-05,
"size": 24.407,
"time": "2020-11-30T12:00:00+00:00"
}
]
}
Requires authentication.

Supports pagination
Request parameters

Name Type Value Description

start_time number 155988151 optional; only fetch history after this time
1

end_time number 155990151 optional; only fetch history before this time
1

Response format

Name Type Value Description

coin string BTC

proceed number 0.00047864470072 amount of coin you were paid as interest on the loan
s

rate number 1.961096e-05 lending rate

size number 24.407 amount lent

time string 2020-11- time of interest payment


Name Type Value Description

30T12:00:00+00:00

Get lending offers


Request
GET /spot_margin/offers
Response
{
"success": true,
"result": [
{
"coin": "BTC",
"rate": 1e-06,
"size": 1.0
}
]
}
Requires authentication.

Response format

Name Type Value Description

coin string BTC

rate numbe 1e-06 hourly rate at which you will lend, if matched
r
Name Type Value Description

size numbe 1.9 amount you will lend, if matched


r

Get lending info


Request
GET /spot_margin/lending_info
Response
{
"success": true,
"result": [
{
"coin": 'USD',
"lendable": 10026.5,
"locked": 100.0,
"minRate": 1e-06,
"offered": 100.0
}
]
}
Requires authentication.

Response format

Name Type Value Description

coin string USD

lendabl number 10026.5 additional size you can lend


Name Type Value Description

locked number 100.0 size either in lending offers or not yet unlocked from lending offers

minRate number 1e-6 minimum rate at which your offers will lend

offered number 100.0 size in your lending offers

Submit lending offer


Request
POST /spot_margin/offers
{
"coin": "USD",
"size": 10.0,
"rate": 1e-6
}
Response
{
"success": true,
"result": null,
}
Requires authentication.

Payload format
Nam Valu
e Type e Description

coin string USD

size number 10.0

rate number 1e-6

NFTs
Rest API for NFTs on FTX.

NFT endpoints base


URL: https://ftx.com/api/nft

List NFTs
Request
GET /nft/nfts
Response
{
"success": true,
"result": [
{
"id": 123456,
"name": "Rare NFT",
"description": "Rare art",
"issuer": "FTX",
"collection": "FTX rare art",
"series": "Art for charity",
"solMintAddress": "8Jntdo3RMxQyGvuRkRjFA3aJ",
"ethContractAddress": "0x014Dc156cA770baC5475186834ecd2f624C990K",
"imageUrl": "https://www.static.ftx.com/art.jpg",
"videoUrl": "https://www.static.ftx.com/art.mp4",
"attributes": null,
"redeemable": true,
"redeemed": false,
"offerPrice": 1000.00,
"auction": {
"bestBid": 120.00,
"minNextBid": 125.00,
"endTime": "2021-06-11T07:23:24.106062+00:00",
"bids": 10
}
}
]
}
Response format

Name Type Value Description

id number 123456 unique ID of NFT

name string Rare NFT name of NFT

description string Rare art description of NFT

issuer string FTX entity issuing NFT

collection string FTX rare art NFT collection name


Name Type Value Description

series string Art for charity NFT series

solMintAddress string 8Jntdo3RMxQyGvuRkRjFA3aJ

ethContractAddres string 0x014Dc156cA770baC5475186834ecd2f624C990K


s

imageUrl string https://www.static.ftx.com/art.jpg

videoUrl string https://www.static.ftx.com/art.mp4

attributes string null

redeemable boolean true true if NFT is redeemable for goods

redeemed boolean false true if NFT is redeemable and has been


redeemed
Name Type Value Description

offerPrice number 1000.00

auction array

Get NFT info


Request
GET /nft/nft/{nft_id}
Response
{
"success": true,
"result": {
"id": 123456,
"name": "Rare NFT",
"description": "Rare art",
"issuer": "FTX",
"collection": "FTX rare art",
"series": "Art for charity",
"solMintAddress": "8Jntdo3RMxQyGvuRkRjFA3aJ",
"ethContractAddress": "0x014Dc156cA770baC5475186834ecd2f624C990K",
"imageUrl": "https://www.static.ftx.com/art.jpg",
"videoUrl": "https://www.static.ftx.com/art.mp4",
"attributes": null,
"redeemable": true,
"redeemed": false,
"offerPrice": 1000.00,
"auction": {
"bestBid": 120.00,
"minNextBid": 125.00,
"endTime": "2021-06-11T07:23:24.106062+00:00",
"bids": 10
}
}
}
Response format

Name Type Value Description

id number 123456 unique ID of NFT

name string Rare NFT name of NFT

description string Rare art description of NFT

issuer string FTX entity issuing NFT

collection string FTX rare art NFT collection name

series string Art for charity NFT series

solMintAddress string 8Jntdo3RMxQyGvuRkRjFA3aJ

ethContractAddres string 0x014Dc156cA770baC5475186834ecd2f624C990K


s

imageUrl string https://www.static.ftx.com/art.jpg


Name Type Value Description

videoUrl string https://www.static.ftx.com/art.mp4

attributes string null

redeemable boolean true true if NFT is redeemable for goods

redeemed boolean false true if NFT is redeemable and has been


redeemed

offerPrice number 1000.00

auction array

Get NFT trades


Supports pagination

Request
GET /nft/{nft_id}/trades
Request parameters
Name Type Value Description

start_time number 1559881511 optional

end_time number 1559881711 optional

Response
{
"success": true,
"result": [
{
"id": 490,
"price": 333.0,
"time": "2021-06-10T19:48:34.313252+00:00"
}, {
"id": 47,
"price": 350.0,
"time": "2021-06-03T14:18:40.496298+00:00"
}, {
"id": 42,
"price": 139.0,
"time": "2021-06-03T13:57:00.467274+00:00"
}
]
}
Response format

Nam
e Type Value Description

id number 42
Nam
e Type Value Description

price number 333.0

time string 2021-06-03T13:57:00.467274+00:00

Get all NFT trades


Supports pagination

Request
GET /nft/all_trades
Request parameters

Name Type Value Description

start_time number 1559881511 optional

end_time number 1559881711 optional

Response
{
"success":true,
"result": [
{
"id":123,
"nft": {
"id": 123456,
"name": "Rare NFT",
"description": "Rare art",
"issuer": "FTX",
"collection": "FTX rare art",
"series": "Art for charity",
"solMintAddress": "8Jntdo3RMxQyGvuRkRjFA3aJ",
"ethContractAddress": "0x014Dc156cA770baC5475186834ecd2f624C990K",
"imageUrl": "https://www.static.ftx.com/art.jpg",
"videoUrl": "https://www.static.ftx.com/art.mp4",
"attributes": null,
"redeemable": true,
"redeemed": false,
"offerPrice": 1000.00,
"auction": {
"bestBid": 120.00,
"minNextBid": 125.00,
"endTime": "2021-06-11T07:23:24.106062+00:00",
"bids": 10
}
},
"price": 1450.0,
"time": "2021-06-09T15:39:15.364317+00:00"
}, {
"id": 124,
......
}
]
}
Response format

Name Type Value Description

id number Rare NFT NFT trade id

nft array See List NFTs for details


Name Type Value Description

price number 1450.0 trade price of NFT

time string 2021-06-09T15:39:15.364317+00:00

Get NFT account info


Request
GET /nft/{nft_id}/account_info
Response
{
"success": true,
"result": {
"bid": 120.00,
"buyFee": 6.00,
"isBestBid": False,
"owned": False
}
}
Response format

Name Type Value Description

bid number 120.00

buyFee number 6.00


Name Type Value Description

isBestBi boolean False


d

owned boolean False

Get all NFT collections


Request
GET /nft/collections
Response
{
"success": true,
"result": [
{
"issuer": "FTX",
"collection":"FTX Special"
}, {
"issuer": "FTX",
"collection": "FTX Swag"
}, .....
]
}
Response format

Name Type Value Description

issuer string FTX issuer of NFT collection


Name Type Value Description

collection string FTX NFT collection name

Get NFT balances


Requires authentication.

Request
GET /nft/balances
Response
{
"success": true,
"result": [
{
"id": 123456,
"name": "Rare NFT",
"description": "Rare art",
"issuer": "FTX",
"collection": "FTX rare art",
"series": "Art for charity",
"solMintAddress": "8Jntdo3RMxQyGvuRkRjFA3aJ",
"ethContractAddress": "0x014Dc156cA770baC5475186834ecd2f624C990K",
"imageUrl": "https://www.static.ftx.com/art.jpg",
"videoUrl": "https://www.static.ftx.com/art.mp4",
"attributes": null,
"redeemable": true,
"redeemed": false,
"offerPrice": 1000.00,
"auction": {
"bestBid": 120.00,
"minNextBid": 125.00,
"endTime": "2021-06-11T07:23:24.106062+00:00",
"bids": 10
}
}
]
}
Response format

Name Type Value Description

id number 123456 unique ID of NFT

name string Rare NFT name of NFT

description string Rare art description of NFT

issuer string FTX entity issuing NFT

collection string FTX rare art NFT collection name

series string Art for charity NFT series

solMintAddress string 8Jntdo3RMxQyGvuRkRjFA3aJ

ethContractAddres string 0x014Dc156cA770baC5475186834ecd2f624C990K


s

imageUrl string https://www.static.ftx.com/art.jpg


Name Type Value Description

videoUrl string https://www.static.ftx.com/art.mp4

attributes string null

redeemable boolean true true if NFT is redeemable for goods

redeemed boolean false true if NFT is redeemable and has been


redeemed

offerPrice number 1000.00

auction array

Make NFT offer


Requires authentication.

Request
POST /nft/offer
Request parameters
Nam
e Type Value Description

nftId int 12345

price number 500.0

Response
See /nft/{nftId}

Buy NFT
Requires authentication.

Request
POST /nft/buy
Request parameters

Nam
e Type Value Description

nftId int 12345

price number 500.0

Response
See /nft/{nftId}
Create Auction
Requires authentication.

Request
POST /nft/auction
Request parameters

Name Type Value Description

initialPrice number 120.0

reservationPrice number 500.0

duration int 3600 duration in seconds

Response
See /nft/{nftId}

Edit Auction
Requires authentication.

Request
POST /nft/edit_auction
Request parameters
Name Type Value Description

reservationPrice number 600.0

Response
See /nft/{nftId}

Cancel Auction
Requires authentication.

Request
POST /nft/cancel_auction
Request parameters

Name Type Value Description

nftId number 12345

reservationPrice number 500.0

Response
See /nft/{nftId}

Get bids
Requires authentication.

Request
GET /nft/bids
Response
See /nft/nfts

Place bid
Requires authentication.

Request
POST /nft/bids
Request parameters

Nam
e Type Value Description

nftId number 12345

price number 500.0

Response
See /nft/{nftId}

Get NFT deposits


Requires authentication.

Supports pagination

Request
GET /nft/deposits
Request parameters
Name Type Value Description

start_time number 1559881511 optional

end_time number 1559881711 optional

Response
{
"success": true,
"result": [
{
"id": 999899,
"nft": {
See /nfts,
},
"status": "confirmed",
"time": "2021-06-10T09:15:43.136561+00:00",
"sentTime": "2021-06-11T07:23:24.106062+00:00",
"confirmedTime": "2021-06-11T07:27:40.237006+00:00",
"confirmations": 8,

}, {
"id": 777877,
.....
},
]
}
Response format

Name Type Value Description

id int 999899
Name Type Value Description

nft array See List NFTs for details

status string confirmed one of: unconfirmed, confirmed, cancelled

time string 2021-06-10T09:15:43.136561+00:00 NFT created at

sentTime string 2021-06-11T07:23:24.106062+00:00

confirmedTime string 2021-06-11T07:27:40.237006+00:00

confirmations int 8

Get NFT withdrawals


Requires authentication.

Supports pagination

Request
GET /nft/withdrawals
Request parameters
Name Type Value Description

start_time number 1559881511 optional

end_time number 1559881711 optional

Response
{
"success": true,
"result": [
{
"id": 12345,
"nft": {
See /nfts,
},
"address": "0x014Dc156cA770baC5475186834ecd2f624C990K",
"method": "erc20",
"txid": "0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7ffcaf1",
"fee": "20.0",
"status": "sent",
"time": "2021-06-11T07:23:24.106062+00:00",
"notes": null
}, {
"id": 45678,
.....
},
]
}
Response format

Name Type Value Description

id number 12345
Name Type Value Description

nft array See List NFTs for details

address string 0x014Dc156cA770baC5475186834ecd2f624C990K

metho string erc20 erc20 or sol


d

txid string 0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7ffcaf1

fee number 20.0

status string confirmed one of: requested,


processing, sent,
completed, cancelled

time string 2021-06-11T07:23:24.106062+00:00

notes string null

Get NFT fills


Requires authentication.

Supports pagination

Request
GET /nft/fills
Request parameters

Name Type Value Description

start_time number 1559881511 optional

end_time number 1559881711 optional

Response
{
"success": true,
"result": [
{
"id": 12345,
"nft": {
See /nfts,
},
"side": "buy",
"price": 150.0,
"fee": 7.5,
"time": "2021-06-11T07:23:24.106062+00:00"
}, {
"id": 45678,
.....
},
]
}
Response format
Name Type Value Description

id number 12345

nft array See List NFTs for details

side string buy trade price of NFT

price number 150.0

fee number 7.5

time string 2021-06-09T15:39:15.364317+00:00

Redeem NFT
Requires authentication.

Request
POST /nft/redeem
Request parameters
Name Type Value Description

nftId number 1234


5

addres string
s

notes string

Response
{
"success": true,
"result": {
"id": 12345,
"nft": {
See /nfts,
},
"time": "2021-06-11T07:23:24.106062+00:00",
"notes": null
"address": "0x014Dc156cA770baC5475186834ecd2f624C990K",
"status": "redeemed",
"supportTicketId": 1014
}
}
Response format

Name Type Value Description

id numbe 12345
r
Name Type Value Description

nft array See List NFTs for details

time string 2021-06-09T15:39:15.364317+00:00

notes string null

address string 0x014Dc156cA770baC5475186834ecd2f624C990


K

status string confirmed one of: requested, pending_review,


processing, sent, complete, cancelled, failed

supportTicketId int 1014 id of associated support ticket

Get NFT gallery


Requires authentication.

Request
GET /nft/gallery/{gallery_id}
Request parameters
Name Type Value Description

gallery_i number 12345 NFT gallery id


d

Response
{
"success": true
"result": {
"name": "My-Awesome-NFTs",
"nfts": [
See /nfts
]
}
}
Response format

Nam
e Type Value Description

name string My-Awesome-NFTs name of NFT gallery

nfts array See List NFTs

Get gallery settings


Requires authentication.

Request
GET /nft/gallery_settings
Response
{
"success": true
"result": {
"id": 888789,
"public": true
}
}
Response format

Nam
e Type Value Description

id number 888789 NFT gallery id

public boolean true true if NFT gallery is


public

Edit gallery settings


Requires authentication.

Request
POST /nft/gallery_settings
Request parameters

Nam
e Type Value Description

public boolean true set NFT gallery public or private


Nam
e Type Value Description

Latency statistics
See latency statistics for a period of
time and for one or all subaccounts.

days specifies the time period,


from days days ago up to now -
defaults to 1.

You can specify a subaccount by


passing its nickname
to subaccount_nickname, or specify
the main account by
using subaccount_nickname='_main'.
Leaving this field blank will return
results aggregated across all
subaccounts.

Request
GET /stats/latency_stats?days={days}&subaccount_nickname={subaccount_nickname}
Parameters
Name Type Value Description

days int 5 Optional. Number of days in the past to check.

subaccount_nicknam str '_main Optional. Subaccount name to get stats for specific subaccount (or main).
e '

Response format

Response
{
"success": true,
"result": [
{
"bursty": true,
"p50": 0.059,
"requestCount": 43,
},
{
"bursty": false,
"p50": 0.047,
"requestCount": 27
},
]
}
Name Type Value Description

bursty boolean true Whether the orders are "bursty" (two or more orders sent from the same account
simultaneously)

p50 number 0.059 50th-percentile latency experienced by your account in the last 24 hours
Name Type Value Description

requestCount number 43 Number of orders placed by your account in the last 24 hours

Support tickets

Get all support tickets


Get all your support tickets (limit
100).

Requires authentication.

Request
GET /support/tickets
Response
{
"success": true,
"result": [
{
"id": 42,
"title": "Support ticket for your GBP deposit",
"time": "2021-07-14T22:27:11.041873+00:00",
"category": "fiat deposit",
"status": "open",
"error": None,
"fiatDeposit": {
"id": 37,
"coin": "GBP",
"size": 12.34,
"status": "complete",
"time": "2021-07-13T22:27:11.041873+00:00",
"confirmedTime": "2021-07-13T22:27:12.041873+00:00",
"uploadedFile": None,
"uploadedFileName": None,
"cancelReason": None,
"fiat": True,
"ach": False,
"type": "bank"
},
"depositHelpRequest": None,
"autoExpireAt": None
},
{
"id": 43,
"title": "BUSD not arriving.",
"time": "2021-07-15T22:27:11.041873+00:00",
"category": "crypto deposit",
"status": "open",
"error": None,
"fiatDeposit": None,
"depositHelpRequest": {
"id": 73,
"coin": "BUSD",
"wallet": "bsc",
"txid": "0xd232f8a398c8ed84a4344ab0076a0af0735a30fab7698541bee96230274de13e",
"size": None,
"transactionTime": "2021-07-14T21:27:11.041873+00:00",
"creditedSize": None
},
"autoExpireAt": None
},
{
"id": 44,
"title": "Help",
"time": "2021-07-16T22:27:11.041873+00:00",
"category": "other",
"status": "closed",
"error": None,
"fiatDeposit": None,
"depositHelpRequest": None,
"autoExpireAt": None
}
]
}
Response format

Name Type Value Description

id numbe 42 Support ticket ID


r

title string "Support ticket for your GBP Support ticket title
deposit"

time string "2021-07- Support ticket creation time


14T22:27:11.041873+00:00"

category string "fiat deposit" Support ticket category

status string "open" Support ticket status

error string None Support ticket error; null if no error

fiatDeposit dict None Fiat deposit this support ticket relates to; null if not a fiat
deposit ticket

depositHelpRequest dict None Deposit help request this support ticket relates to; null if
not a crypto deposit ticket
Name Type Value Description

autoExpireAt strong None Time at which the ticket expires; null by default

Get support ticket messages


View all messages for one support
ticket. You can only view messages
for support tickets for your account.

Requires authentication.

Request
GET /support/tickets/<int:ticket_id>/messages
Response
{
"ticket": {
"id": 44,
"title": "Help",
"time": "2021-07-16T22:27:11.041873+00:00",
"category": "other",
"status": "closed",
"error": None,
"fiatDeposit": None,
"depositHelpRequest": None,
"autoExpireAt": None
},
"messages": [
{
"id": 164,
"message": "I need help.",
"uploadedFileName": None,
"authorIsCustomer": True,
"time": "2021-07-16T22:27:11.041873+00:00"
},
{
"id": 173,
"message": "Can you elaborate?",
"uploadedFileName": None,
"authorIsCustomer": False,
"time": "2021-07-16T22:47:11.041873+00:00"
},
{
"id": 189,
"message": "I don't know where to find the FTX API documentation.",
"authorIsCustomer": True,
"time": "2021-07-16T23:27:11.041873+00:00"
},
{
"id": 191,
"message": "You can find it at https://docs.ftx.com/.",
"authorIsCustomer": False,
"time": "2021-07-16T23:29:11.041873+00:00"
},
{
"id": 201,
"message": "Great, thank you!",
"authorIsCustomer": True,
"time": "2021-07-16T23:30:11.041873+00:00"
}
]
}
Parameters

Name Type Value Description

ticket_id int 42 ID of the support ticket you want to view

Response format
Typ
Name e Value Description

ticket dict Ticket object (see above)

messages list List of message objects (see below)

Message object format

Name Type Value Description

id numbe 164 Message ID


r

message string "I need help." Content of the message

uploadedFileName string None File attached to the message; null if no such file

authorIsCustomer bool True True if the author of the message is the customer, false if
the author is one of our support team members

time string "2021-07- The time at which the message was sent
16T23:30:11.041873+00:00"
Send a support message
Send a new message to one of your
support tickets. Note that there is a
limit of 100 messages per ticket.

Requires authentication.

Request
POST /support/tickets
Content-Type: multipart/form-data
Response
{
"success": true,
"result": null
}
Payload format

Name Type Value Description

title string "Help" Title of your new support ticket.

category string "other" Category for your new support ticket.

message string "I need help." Initial message for your new support ticket.

fiatDepositId int None Optional. ID of the fiat deposit relating to your new support ticket.

supportFile file None Optional. Supported file formats (.png .jpg .pdf .doc .docx)
Send a support message
Send a new message to one of your
support tickets. Note that there is a
limit of 100 messages per ticket.

Requires authentication.

Request
POST /support/tickets/<int:ticket_id>/messages
Content-Type: multipart/form-data
Response
{
"success": true,
"result": null
}
Payload format

Name Type Value Description

ticket_id int 44 The ID of the ticket you want to send to.

message string "Thank The message you want to send.


you."

supportFil file None Optional. Supported file formats (.png .jpg .pdf .doc .docx)
e

Update the status of your


support ticket
Requires authentication.

Request
POST /support/tickets/<int:ticket_id>/status
{
"status": "closed"
}
Response
{
"success": true,
"result": null
}
Payload format

Name Type Value Description

ticket_id int 44 The ID of the ticket you want to update.

status string "closed "closed" to close an open support ticket and "open" to reopen a closed one.
"

Count total number of unread


support messages
Returns the total number of unread
messages across all your support
tickets.

Requires authentication.

Request
GET /support/tickets/count_unread
Response
{
"success": true,
"result": 42
}

Mark support messages read


Marks all support messages for the
given ticket as read.

Requires authentication.

Request
POST /support/tickets/<int:ticket_id>/mark_as_read
Response
{
"success": true,
"result": null
}

Websocket API
Streaming API with the most up-to-
date market and account order
data. With this API, you can send
messages to a server and receive
event-driven responses without
having to poll the server for a reply.

Websocket endpoint
URL: wss://ftx.com/ws/

Requests and responses use JSON.


You can find sample code
here: https://github.com/ftexchange/
ftx

Request process
Websocket connections go through
the following lifecycle:

 Establish a websocket
connection
with wss://ftx.com/ws/
 (Optional) Authenticate
with {'op': 'login', 'args':
{'key': <api_key>, 'sign':
<signature>, 'time': <ts>}}
 Send pings at regular
intervals (every 15
seconds): {'op': 'ping'}. You
will see an {'type':
'pong'} response.
 Subscribe to a channel
with {'op': 'subscribe',
'channel': 'trades',
'market': 'BTC-PERP'}
 Receive subscription
response {'type':
'subscribed', 'channel':
'trades', 'market': 'BTC-
PERP'}
 Receive data {'type':
'update', 'channel':
'trades', 'market': 'BTC-
PERP', 'data': {'id':
15884651, 'price': 5231.0,
'size': 0.07, 'side': 'sell',
'liquidation': false, 'time':
'2021-08-
12T03:03:31.656050+00:00'}}
 Unsubscribe {'op':
'unsubscribe', 'channel':
'trades', 'market': 'BTC-
PERP'}
 Receive unsubscription
response {'type':
'unsubscribed', 'channel':
'trades', 'market': 'BTC-
PERP'}

Request format
Messages sent to the server should
contain the following dictionary
items:

 channel: The channel for


which you want data. Should
be one of
o orderbook for
orderbook market data
o trades for trade
market data
o ticker for best bid and
offer market data
 market: The market for which
you want data. Example: BTC-
PERP
 op: The operation you want to
run. Should be one of
o subscribe to subscribe
to a channel
o unsubscribe to
unsubscribe from a
channel
Response format
 channel
 market
 type: The type of message
o error: Occurs when
there is an error.
When type is error,
there will also be
a code and msg field. co
de takes on the values
of standard HTTP error
codes.
o subscribed: Indicates a
successful subscription
to the channel and
market.
o unsubscribed: Indicates
a successful
unsubscription to the
channel and market.
o info: Used to convey
information to the
user. Is accompanied
by a code and msg field.
 When our
servers restart,
you may see
an info messag
e with
code 20001. If
you do, please
reconnect.
o partial: Contains a
snapshot of current
market data. The data
snapshot can be found
in the
accompanying data fiel
d.
o update: Contains an
update about current
market data. The
update can be found in
the
accompanying data fiel
d.
 code (optional)
 msg (optional)
 data(optional)

Public Channels

Ticker
The ticker channel provides the
latest best bid and offer market
data. All messages are updates
(update), and the data field contains:
- bid: Best bid price if a bid exists,
else null - ask: Best ask price if an
ask exists, else null - last: Last
trade price if it exists,
else null - time: Timestamp

Markets
The markets channel provides
information on the full set of
tradable markets and their
specifications. After subscription
and whenever any market lists,
delsists, or changes, you will receive
a partial message with information
on all markets. The data field both
types of messages will contain a list
of market information dictionaries,
each of which contains:

 name: name of the market


 enabled: if the market is
enabled
 priceIncrement: price tick size
 sizeIncrement: min size step
 type: 'future' or 'spot'
 baseCurrency: base currency if
spot, else null
 quoteCurrency: quote currency
if spot, else null
 underlying: underlying if
future, else null
 restricted: if the market has
nonstandard restrictions on
which jurisdictions can trade
it
 future: null if the market has
no future, otherwise a
dictionary containing the
following (see the REST
/futures documentation for
explanations of each
field): name, underlying, descri
ption, type, expiry, perpetual,
expired, enbaled, postOnly, imf
Factor, underlyingDescription,
expiryDescription, moveStart,
positionLimitWeight, group.
Trades
The trades channel provides data on
all trades in the market. All
messages are updates of new
trades (update) and the data field
contains: - price: Price of the trade
- size: Size of the trade - side: Side
of the taker in the trade
- liquidation: true if the trade
involved a liquidation order,
else false - time: Timestamp

Orderbooks
The orderbook channel provides data
about the orderbook's best 100
orders on either side.

Initial snapshot

Upon subscribing, you will receive


one snapshot of the orderbook
(partial) with a data field
containing:

 action: partial
 bids
 asks
 checksum: see below
 time: Timestamp

The bids and asks are formatted like


so: [[best price, size at price],
[next next best price, size at
price], ...]
Updates

After receiving your snapshot, you


will be streamed updates
(message type is update) that
have data fields with:

 action: update
 bids
 asks
 checksum: see below
 time: Timestamp

The bids and asks fields contain


updates to the orderbook.

 If the bid size at


price 5220.5 changed to 20.2,
the bids field would
be: [[5220.5, 20.2]]
 If all asks at price 5223.5 got
canceled, the asks field would
contain: [[5233.5, 0]]

Checksum

Every message contains an


unsigned 32-bit integer checksum of
the orderbook. You can run the
same checksum on your client
orderbook state and compare it
to checksum field. If they are the
same, your client's state is correct.
If not, you have likely lost or
mishandled a packet and should re-
subscribe to receive the initial
snapshot. The checksum operates
on a string that represents the first
100 orders on the orderbook on
either side. The format of the string
is:

 <best_bid_price>:<best_bid_si
ze>:<best_ask_price>:<best_as
k_size>:<second_best_bid_pric
e>:<second_best_bid_size>:...

For example, if the orderbook was


comprised of the following two bids
and asks, the string would
be '5000.5:10:5001.0:6:4995.0:5:500
2.0:7':

 bids: [[5000.5, 10], [4995.0,


5]]
 asks: [[5001.0, 6], [5002.0,
7]]

If there are more orders on one side


of the book than the other, then
simply omit the information about
orders that don't
exist: '5000.5:10.0:5001.0:7.5e-
07:4995.0:5 .0':

 bids: [[5000.5, 10.0],


[4995.0, 5.0]]
 asks: [[5001.0, 7.5e-5]]

Rules for float formatting for the


checksum:

 Values smaller than 1e-04


(0.0001) should be formatted
using scientific notation, and
should contain zeroes before
the exponent. For example, a
message containing 7.5e-
5 or 0.000075 should be
formatted like so for
computing the
checksum: '7.5e-05'.
 Values larger than 1e-04
should always contain a
decimal and at least one digit
after the decimal. For
instance, a value of 1.0 must
be formatted as '1.0',
not '1'.

The final checksum is


the crc32 value of this string.

Grouped Orderbooks
The grouped orderbooks channel
supplies orderbook data with
grouped (collapsed) prices.

Disclaimer

Please note that we do NOT


recommend using the grouped
orderbooks channel in general: it
should only be used for retrieving
lower-granularity, possibly higher-
depth information about the
orderbook.
Subscribing

To subscribe, send a message


specifying market and price
grouping: {'channel':
'orderbookGrouped', 'market': 'BTC-
PERP', 'grouping':
500}. grouping controls the
granularity of price levels reported
by the channel.

Messages

All messages from


the orderbookGrouped channel
contain two fields: bids and asks.
Each are formatted like so: [[best
(grouped) price, size at price],
[next next best price, size at
price], ...].

The first message you are sent will


contain a snapshot of the whole
orderbook.

Subsequent messages only contain


updates. For instance if you
received the message: {'bids':
[[9000, 1780.0]], 'asks': []}, you
should interpret that as meaning
that since the last update you
received, the only thing that has
changed is that the total bid size at
the 9000 level is now 1780.0.

Note that the price groupings are


conservative: with a price grouping
of 100, the size for a bid at 9395.5
would be attributed to the 9300
level, and the size for an ask at the
same price would be attributed to
the 9400 level.

Private Channels

Authentication
You can log in by sending a message like so %{code}
{
"args": {
"key": "<api_key>",
"sign": "<signature>",
"time": <ts>
},
"op": "login"
}
 key: your API key
 time: integer current
timestamp (in milliseconds)
 sign: SHA256 HMAC of the
following string, using your
API
secret: <time>websocket_login
 subaccount: (optional)
subaccount name

As an example, if:

 time: 1557246346499
 secret: 'Y2QTHI23f23f23jfjas2
3f23To0RfUwX3H42fvN-'

sign would
be d10b5a67a1a941ae9463a60b285ae845
cdeac1b11edc7da9977bef0228b96de9

One websocket connection may be


logged in to at most one user. If the
connection is already authenticated,
further attempts to log in will result
in 400s.

Fills
You will receive messages like so:
{
"channel": "fills",
"data": {
"fee": 78.05799225,
"feeRate": 0.0014,
"future": "BTC-PERP",
"id": 7828307,
"liquidity": "taker",
"market": "BTC-PERP",
"orderId": 38065410,
"tradeId": 19129310,
"price": 3723.75,
"side": "buy",
"size": 14.973,
"time": "2019-05-07T16:40:58.358438+00:00",
"type": "order"
},
"type": "update"
}
This channel streams your fills
across all markets. You can
subscribe to it on an authenticated
connection by sending {'op':
'subscribe', 'channel': 'fills'}.

Orders
You will receive messages like so:
{
"channel": "orders",
"data": {
"id": 24852229,
"clientId": null,
"market": "XRP-PERP",
"type": "limit",
"side": "buy",
"size": 42353.0,
"price": 0.2977,
"reduceOnly": false,
"ioc": false,
"postOnly": false,
"status": "closed",
"filledSize": 42353.0,
"remainingSize": 0.0,
"avgFillPrice": 0.2978,
"createdAt": "2021-05-02T22:40:07.217963+00:00"
},
"type": "update"
}
This channel streams updates to
your orders across all markets. You
can subscribe to it on an
authenticated connection by
sending {'op': 'subscribe',
'channel': 'orders'}.

FTX Pay
You will receive messages like so:
{
"channel": "ftxpay",
"data": {
"app": app object,
"payment": payment object,
"status": "paid"
},
"type": "update"
}
This channel streams updates for
each completed payment and each
returned payment. You can
subscribe to it on an authenticated
connection by sending {'op':
'subscribe', 'channel': 'ftxpay'}.

The app and payment object


formats can be seen here.

FIX API
FIX (Financial Information
eXchange) is a standard electronic
messaging protocol which can be
used to place orders, receive order
updates and executions, and cancel
orders. Our FIX api is based on the
FIX 4.2 specification and modeled
after FIX implementations of other
popular cryptocurrency exchanges.

You can find sample client code


here: https://github.com/ftexchange/
ftx
FIX endpoint
URL: tcp+ssl://fix.ftx.com:4363

Clients should connect to the


endpoint using SSL.

Sequence numbers are reset for


each connection. Resend request
and sequence reset messages are
not supported.

Messages
8=FIX.4.2|9=162|35=A|49=zyfvB4QPg0A3kkVgqUE9V1fOA-Y6jhdG3seqIIZx|56=FTX
All messages should include the
following header:

This documentation uses | to


represent the FIX field separator
(byte 0x01). It should be replaced
by 0x01 in actual messages.

Tag Name Example Description

8 BeginString FIX.4.2 Must be set to "FIX.4.2"

9 BodyLength 162 Length of the message body in bytes

35 MsgType 8 Message type


Tag Name Example Description

49 SenderCompID zyfvB4QPg0A3kkVgqUE9V1fOA-Y6jhdG3seqIIZx Client API key (for messages from the client)

56 TargetCompID FTX Must be set to "FTX" (for messages from the client)

34=1|52=20190525-07:17:48
Messages should also include a
sequence number MsgSeqNum (34)
and a timestamp SendingTime (52).
Sequence numbers start at 1 and
must be incremented with every
message. Messages with duplicate
or out-of-order sequence numbers
will be rejected. Sequence numbers
are reset on new connections.

Logon (A)
Sent by the client to initiate a FIX
session. Must be the first message
sent after a connection is
established. Only one session can
be established per connection;
additional Logon messages are
rejected.

Request
8=FIX.4.2|9=162|35=A|49=zyfvB4QPg0A3kkVgqUE9V1fOA-Y6jhdG3seqIIZx|56=FTX|34=1|52=20190525-07:51:51|98=0|108=30|
96=8f7e7d37f8033ad249c1833687c230b6f4663f0dd72752899776bab9aa064783|10=237|
Tag Name Example Description

35 MsgType A

98 EncryptMethod 0 Must be set to "0" (None)

108 HeartBInt 30 Must be set to "30"

96 RawData 8f7e...4783 Signature (see below)

801 CancelOrdersOnDisconnect Y "Y": all account orders will be cancelled at the end of the session. "S":
3 all orders placed during the session will be cancelled at the end of the
session. Default: no orders will be cancelled.

1 Account "my_subaccount" Optional subaccount name; can be omitted if authenticating for main
account

Signature

let crypto = require('crypto');

let apiKey = 'YOUR_API_KEY';


let apiSecret = 'YOUR_API_SECRET';
let sendingTime = '20190525-07:51:51';

let signTarget = [
sendingTime, // SendingTime
'A', // MsgType
'1', // MsgSeqNum
apiKey, // SenderCompID
'FTX', // TargetCompID
].join('\x01');

let hmac = crypto.createHmac('sha256', apiSecret);


let signature = hmac.update(signTarget).digest('hex');

For security, the Logon message


must be signed by the client. To
compute the signature, concatenate
the following fields, joined by the
FIX field separator (byte 0x01), and
compute the SHA256 HMAC using
the API secret:

 SendingTime (52)
 MsgType (35)
 MsgSeqNum (34)
 SenderCompID (49)
 TargetCompID (56)

The resulting hash should be hex-


encoded.

Response
8=FIX.4.2|9=98|35=A|49=FTX|56=zyfvB4QPg0A3kkVgqUE9V1fOA-Y6jhdG3seqIIZx|34=1|98=0|108=30|52=20190525-07:51:51.838|10=099
Tag Name Value

35 MsgType A

98 EncryptMetho 0
d

108 HeartBInt 30

Heartbeat (0)
Sent by either side if a message has
not been received in the past 30
seconds. Should also be sent in
response to a TestRequest (1).

8=FIX.4.2|9=86|35=1|49=zyfvB4QPg0A3kkVgqUE9V1fOA-Y6jhdG3seqIIZx|56=FTX|34=2|52=20190525-07:52:24.029|10=049|
Tag Name Value Description

35 MsgType 0

112 TestReqID 123 If this heartbeat is in response to a TestRequest, copied from the TestRequest.
Test Request (1)
May be sent by either side at any
time.

8=FIX.4.2|9=112|35=1|49=zyfvB4QPg0A3kkVgqUE9V1fOA-Y6jhdG3seqIIZx|56=FTX|34=3|112=20190525-08:26:38.989|52=20190525-
08:26:38.989|10=140|
Valu
Tag Name e Description

35 MsgType 1

112 TestReqID 123 Arbitrary string, to be echoed back by a Heartbeat.

Logout (5)
Sent by either side to terminate the
session. The other side should
respond with another Logout
message to acknowledge session
termination. The connection will be
closed afterwards.

Ta
g Name Value

35 MsgType 5
New Order Single (D)
Sent by the client to submit a new
order. Only limit orders are currently
supported by the FIX API.

Tag Name Value Description

35 MsgType D

21 HandlInst 1 Must be set to "1" (AutomatedExecutionNoIntervention)

11 ClOrdID order123 Arbitrary client-selected string to identify the order; must be unique

55 Symbol BTC-PERP Symbol name

40 OrdType 2 Must be set to "2" (Limit)

38 OrderQty 1.1 Order size in base units

44 Price 8000 Limit price

54 Side 1 "1": buy; "2": sell


Tag Name Value Description

59 TimeInForce 1 Must be set to "1" (Good Till Cancel) or "3" (Immediate or Cancel)

18 ExecInst E This parameter is optional. "E": reduce only, "6": post only, not supplied: standard

136 RejectOnPriceBand 'Y' This parameter is optional. 'Y' for rejecting the order if its price would instead be
8 adjusted due to price bands. 'N' (or omitted) otherwise.

136 RejectAfterTs 1640080635 This parameter is optional. If the order would be put into the placement queue
9 after this timestamp, instead reject it. If it would be placed on the orderbook after
the timestamp, then immediately close it instead (as if it were, for instance, a post-
only order that would have taken)

If the order is accepted, an


ExecutionReport (8)
with ExecType=A (Pending New) will
be returned. Otherwise, an
ExecutionReport
with ExecType=8 (Rejected) will be
returned.

Order Cancel Request (F)


Sent by the client to request to
cancel an order.
Ta
g Name Value Description

35 MsgType F

37 OrderID 123456 System-assigned order ID of the order

41 OrigClOrdID order123 Client-assigned order ID of the order

Only one of OrderID (37) and


OrigClOrdID (41) should be
provided.

If the order is successfully cancelled,


an ExecutionReport (8)
with ExecType=6 (Pending Cancel) will
be returned. Otherwise, an
OrderCancelReject (9) will be
returned.

Order Cancel Reject (9)


Sent by the server to notify the
client that an OrderCancelRequest
(F) failed.

8=FIX.4.2 9=124 35=9 49=FTX 56=**** 34=1294846 52=20210908-07:18:48.023 434=1 102=0 41=cancel123 10=191
Tag Name Value Description

35 MsgType 9

11 ClOrdID cancel123 Copied from OrderCancelRequest

37 OrderID 123456 Copied from OrderCancelRequest

41 OrigClOrdID order123 Copied from OrderCancelRequest

39 OrdStatus 4 "4" (Canceled) if the order was already cancelled

102 CxlRejReason 1 "0": order already cancelled, "1": unknown order

434 CxlRejResponseTo 1 Always set to "1"

Mass Order Cancel Request


(q)
Sent by the server in response to a
Mass Order Cancel Request (q)
Tag Name Value Description

35 MsgType q

53 MassCancelRequestType 7 7 for cancelling all orders on all markets, 1 for cancelling all orders on a specific
0 market

11 ClOrdID order123 optional; client-assigned ID for mass order cancellation request

55 Symbol BTC- optional; symbol name. This field is is required if MassCancelRequestType is set to
PERP 1, and ignored otherwise

A Mass Order Cancel Report (r) will


be returned to the client.

Mass Order Cancel Report (r)


Sent by the server in response to a
Mass Order Cancel Request (q)

Tag Name Value Description

35 MsgType r
Tag Name Value Description

53 MassCancelRequestType 7 the MassCancelRequestType of the


0 corresponding Mass Order Cancel Request

11 ClOrdID order123 optional; the ClOrdID of the corresponding


Mass Order Cancel Request. Omitted if no
ClOrdID was supplied.

53 MassCancelResponse 0 if the request was rejected, otherwise set to


1 the MassCancelRequestType of the
corresponding Mass Order Cancel Request

53 MssCancelRejectReason optional; 0 if the market specified in the Mass


2 Order Cancel Request was unknown

Order Status Request (H)


Sent by the client to request the
status of an order.

Tag Name Value Description

35 MsgType H
Tag Name Value Description

37 OrderID 123456 OrderID of the order to request, or "*" to request all pending orders

41 OrigClOrdID order12 Client-assigned order ID of the order


3

20000 IncludeFillInfo N If Y, server will include fill info

The server will respond with an


ExecutionReport (8)
with ExecType=I (OrderStatus) with
the requested order or orders. Only
one of OrderID (37) and OrigClOrdID
(41) should be provided. When there
are no open orders, the server will
include Text (58) of "No open
orders".

Additional fields included with


IncludeFillInfo (20000=Y):

Tag Name Value Description

1362 NoFills 1 Number of fills for this order

The following fields are included


zero or more times, once for each
fill:
Tag Name Value Description

1363 FillExecID 23436 Fill ID

1364 FillPx 10.1 Fill price

1365 FillQty 6.32 Fill quantity

1366 FillTradeID 101293 Fill trade ID. This will be shared by the fill corresponding to the other side of
the trade.

1367 FillTime 20200219- Fill time


08:33:26.513

1443 FillLiquidityInd 2 1 for maker, 2 for taker

2010 FeeRate 0.0007 Fees paid on the fill, in percent


0

2010 Fee 0.0446824 Fees paid on the fill, in USD


1
Execution Report (8)
Sent by the server whenever an
order receives a fill, whenever the
status of an order changes, or in
response to a NewOrderSingle (D),
OrderCancelRequest (F), or
OrderStatusRequest (H) message
from the client.

pending order (order ack):


8=FIX.4.2 9=251 35=8 49=FTX 56=**** 34=1039761 52=20210520-15:23:31.323 150=A 17=0e71c26d-9b3d-42f1-9760-c74a9459a841
37=501249457 11=order123 55=BTC-PERP 38=0.98 44=35593.0 54=2 39=A 14=0 151=0.98000000 6=0 10=026

new order:
8=FIX.4.2 9=261 35=8 49=FTX 56=**** 34=1063736 52=20210520-12:41:43.416 150=0 17=bbf0ac39-91e4-47bd-aacf-f2ff356c6891
60=20210520-16:46:47.411 37=501249457 11=order123 55=BTC-PERP 38=0.98 44=35593.0 54=1 39=0 14=0.0 151=0.98 6=0 10=081

fill for order:


8=FIX.4.2 9=272 35=8 49=FTX 56=**** 34=403622 52=20210520-12:41:46.134 150=1 17=370905178 60=20210520-12:41:46.104
37=501249457 11=order123 55=BTC-PERP 38=.7270 44=35593.0 54=2 39=1 14=0.08 151=0.9 6=35591.0 31=35591.0 32=0.08
1366=184114783 1057=N 12=-1.0016660525 13=3 10=233

fully filled/done:
8=FIX.4.2 9=261 35=8 49=FTX 56=**** 34=20 52=20210520-12:41:47.123 150=3 17=c9c8a56e-2159-445e-bb9d-acfeede977b2
60=20210520-12:41:47.112 37=501249457 11=order123 55=BTC-PERP 38=0.98 44=35593.0 54=2 39=3 14=0.98 151=0.0 6=35593.0
10=125

pending cancel:
8=FIX.4.2 9=251 35=8 49=FTX 56=**** 34=1063738 52=20210520-12:41:43.434 150=6 17=5f18f089-a9bc-414a-b0c2-452642e670c7
37=5012978452 11=order456 55=BTC-PERP 38=0.94000000 44=34933.0 54=1 39=6 14=0 151=0.94000000 6=0 10=055
Tag Name Value Description

35 MsgType 8

11 ClOrdID order123 Client-selected order ID.


Tag Name Value Description

37 OrderID 123456 Server-assigned order ID

17 ExecID d840c87b-ad98-47b1-95d3- unique execution ID. Equal to Fill ID if this message was the result
4d41950fa776 of a fill

55 Symbol BTC-PERP Symbol name

54 Side 1 "1": buy; "2": sell

38 OrderQty 1.2 Original order quantity

44 Price 8000 Original order price

150 ExecType 1 Reason for this message (see below)

39 OrdStatus 0 Order status (see below)

14 CumQty 0.4 Quantity of order that has already been filled

151 LeavesQty 0.8 Quantity of order that is still open


Tag Name Value Description

84 CxlQty 0.0 Quantity cancelled by self-trade prevention. Only present if the


cancelled quantity is greater than zero

60 TransactTime 20190525-08:26:38.989 Time of the order update. Only present on order updates

31 LastPx 7999.25 Fill price. Only present if this message was the result of a fill

32 LastQty 0.4 Fill quantity. Only present if this message was the result of a fill

105 AggressorIndicator Y "Y": taker fill; "N": maker fill. Only present if this message was the
7 result of a fill

136 FillTradeID 101293 Fill trade ID. Only present if this message was the result of a fill
6

6 AvgPx 7999.25 Average fill price for all fills in order. Only present if this message
was the result of a fill

12 Commission 0.0067307233000000 Fee for trade, reported in USD. Only present if this message was
the result of a fill
Tag Name Value Description

13 CommType 3 Always 3 (absolute)

103 OrdRejReason 3 Reason the order was rejected (see below). Only present on
rejected NewOrderSingle (D) requests

58 Text 58 Description of the reason the order was rejected (e.g., Too many
requests). Only present on rejected NewOrderSingle (D) requests

500 Liquidation 58 "Y": messages corresponds to an on-market liquidation order. "N"


0 or absent: it does not.

ExecType values

The ExecType (150) field indicates


the reason why this ExecutionReport
was sent.

ExecType Description

0 New order

1 New fill for order


ExecType Description

3 Order done (fully filled)

4 Order cancelled

5 Order resized (possible for reduce-only orders)

A Response to a successful NewOrderSingle (D) request

8 Response to a rejected NewOrderSingle (D) request

6 Response to a successful OrderCancelRequest (F) request

I Response to a OrderStatusRequest (H) request

Note that every fill will generate a


new ExecType=1 message. If a fill
causes an order to be fully filled,
both a ExecType=1 message and
a ExecType=3 message will be
generated. Similarly, a newly placed
order that is immediately matched
against an opposing order will
generate both a ExecType=0 message
and a ExecType=1 message.
OrdStatus values

OrdStatus Description

A Pending order

0 New order

1 Partially filled order

3 Fully filled order

4 Cancelled order

5 Resized order

6 Pending cancel

OrdRejReason values
OrdRejReaso
n Description

3 Risk limits exceeded

99 Too many requests

0 Other errors

Reject (3)
Sent by the server in response to an
invalid message.

Tag Name Value Description

35 MsgType 3

45 RefSeqNum 2 Sequence number of the rejected message

371 RefTagID 38 Tag number of the rejected field

372 RefMsgType D Message type of the rejected message


Tag Name Value Description

58 Text Missing quantity Human-readable description of the reason for the rejection

373 SessionRejectReason 1 Code to identify the rejection reason (see below)

Rejection reason codes

SessionRejectReaso
n Description

1 Required tag missing

5 Value incorrect for this tag

6 Incorrect data format for value

11 Invalid MsgType

pythonjavascriptcsharp

You might also like