API documentation
This documentation provides a complete reference for interacting with the durian trading API.
Overview
The durian API is a RESTful interface designed for programmatic access to core trading functions on the durian platform. It enables developers to automate account management, position handling, and market data retrieval in a secure and efficient manner.
Purpose
This guide is intended for developers, traders, and integration partners who wish to build on top of durian's infrastructure. It covers authentication, available endpoints, request/response schemas, and usage examples for both real-time trading operations and portfolio tracking.
Base URLs: https://api.durian.win
Authentication
HTTP Authentication, scheme: bearer
Open API
POST Login
POST /api/v3/register
Body Parameters
{
"email": "string",
"type": "string",
"secret": "string"
}Params
body
body
object
no
none
body
string
yes
» type
body
string
yes
1: login by secret
» secret
body
string
yes
secret key
Response Example
{
"msg": "success",
"code": 200,
"data": {
"isInvite": false,
"userId": 10,
"token": "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjIwNTY1NGJkLTU5ZTctNDIzNS04MzQ2LTAzODQ1NzQ1MGM5ZiJ9.LVj7AY9WLfI5fo6e3kIyA6CEFaLy2KCcpOohtXaoeNcv6k4tJWId1pxQEYw1PluFKmUABeUojJwWSi8bnlYUMg",
"isFirst": true
}
}Responses
200
OK
Inline
Response Data Schema
» msg
string
true
» code
integer
true
» data
object
true
»» isInvite
boolean
true
»» userId
integer
true
»» token
string
true
»» isFirst
boolean
true
true is the first time to login
POST Logout
POST /api/v3/logout
Response Example
{
"msg": "success",
"code": 200
}Responses
200
OK
Inline
Response Data Schema
» msg
string
true
» code
integer
true
GET Coin List
GET /api/v3/coins/list
Params
orderByColumn
query
string
no
marketCap、gainers、losers、tradingVolume
isAsc
query
string
no
desc、asc
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"id": "3",
"symbol": "BT_PERP_DOGE_USD",
"name": "DOGE",
"logo": "https://pbs.twimg.com/profile_images/378800000857919980/lHqPIZza_400x400.png",
"fullName": "dogecoin",
"minAmount": 250,
"maxAmount": 250000,
"priceChargePercent": "-0.022462",
"tickerInfo": "{...}",
"instrumentsInfo": "{...}",
"maxLeverage": 50,
"price": 2.174,
"pointRadio": 0.1,
"minLeverage": 1
}
]
}Responses
200
OK
Inline
Response Data Schema
» msg
string
true
» code
integer
true
» data
array of objects
true
Here’s Part 2 of the Durian API documentation in copyable markdown text, covering Open/Close Position, Set Leverage, and Get Open Positions:
POST Open Position
POST /api/v3/account/open/position
Body Parameters
{
"side": "string",
"orderQty": "string",
"leverage": 0,
"positionSide": "string",
"symbol": "string"
}Params
» side
body
string
yes
BUY, SELL
» orderQty
body
string
yes
order quantity, max 4 decimals
» leverage
body
integer
yes
leverage
» positionSide
body
string
yes
LONG, SHORT
» symbol
body
string
yes
e.g. BT_PERP_DOGE_USD
Response Example
{
"msg": "success",
"code": 200,
"data": {
"positionId": "1234564123",
"avgPrice": "1234564123",
"leverage": "20",
"orderQty": "0.03",
"symbolName": "BTC",
"positionSide": "LONG"
}
}POST Close A Position
POST /api/v3/account/close/position
Body Parameters
{
"orderQty": "string",
"positionId": "string"
}Params
» orderQty
body
string
yes
order quantity
» positionId
body
string
yes
position ID
Response Example
{
"msg": "success",
"code": 200
}POST Close All Positions
POST /api/v3/account/close/all/position
Response Example
{
"msg": "string",
"code": 0
}POST Set Leverage
POST /api/v3/account/set/leverage
Body Parameters
{
"symbol": "string",
"leverage": "string"
}Params
» symbol
body
string
yes
e.g. BT_PERP_DOGE_USD
» leverage
body
string
yes
leverage value
Response Example
{
"msg": "success",
"code": 200
}GET Opening Positions
GET /api/v3/account/portfolio/position
Params
symbol
query
string
no
Filter by symbol (optional)
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"symbol": "BT_PERP_ACT_USD",
"leverage": "50",
"positionQty": "0",
"avgPrice": "0",
"positionSide": "NET",
"fee": "0",
"liqPrice": "0",
"updateTime": "1733398963953",
"fundingFee": "0",
"positionValue": "0",
"maxLeverage": "50",
"accountId": "1729856849619000",
"markPrice": "0.43943",
"positionId": "1732447562612001",
"createTime": "1732447562612",
"unrealizedPnl": "0",
"unrealizedPnlRate": "0",
"positionMM": "0",
"logo": "https://pbs.twimg.com/profile_images/1703137294159425536/AeO5_363_400x400.jpg",
"symbolName": "ACT",
"positionMargin": "0"
}
]
}GET Position History
GET /api/v3/account/portfolio/position/history
Params
symbol
query
string
no
e.g. BT_PERP_DOGE_USD
pageNum
query
integer
no
Page number
pageSize
query
integer
no
Page size
isClose
query
integer
no
0 = only closed positions (COMPLETE_CLOSED, LIQUIDATION, PARTIAL_CLOSED)
startTime
query
string
yes
Start time in ms or ISO8601
endTime
query
string
yes
End time in ms or ISO8601
Response Example
{
"msg": "success",
"code": 200,
"data": {
"total": 2,
"list": [
{
"symbol": "BT_PERP_ETH_USD",
"leverage": "20",
"positionQty": "0.1",
"orderId": "1734451355149000",
"closeCommission": 0.00148154,
"avgPrice": "3930.01",
"openDurianProfit": 0.00294751,
"estLiqPrice": "1866.345778054359049985",
"closedAvgPrice": "3950.56",
"closeFee": 0.0592614,
"points": 0.1,
"closedType": "COMPLETE_CLOSED",
"openCommisson": 0.00294751,
"logo": "https://assets.coingecko.com/coins/images/279/standard/ethereum.png?1696501628",
"openLeverage": 20,
"id": 14076,
"inviteUser": 77,
"autoCloseDuration": 60,
"openCommissionsRatio": 0.5,
"side": "BUY",
"amount": 0.1,
"closedPnl": 2.055,
"positionSide": "LONG",
"clientOrderId": "1734451355149000",
"openFee": 0.1179003,
"commissionsRatio": 0.5,
"openBrokerFee": 0.07860021,
"updateTime": "2024-12-17 16:12:44",
"executedAmount": 393.001,
"userId": 75,
"closeTs": 1734451962843,
"positionId": "1734451065177001",
"createTime": "2024-12-18 00:02:36",
"ts": 1734451355149,
"liqFee": 0
},
{
"symbol": "BT_PERP_ETH_USD",
"leverage": "20",
"positionQty": "0.1",
"orderId": "1734451962824000",
"closeCommission": 0.00275425,
"avgPrice": "3675.45",
"openDurianProfit": 0.00148153,
"estLiqPrice": "1596.837842854359049985",
"closedAvgPrice": "3673.83",
"closeFee": 0.11016964,
"points": 18.724,
"closedType": "COMPLETE_CLOSED",
"openCommisson": 0.00148154,
"logo": "https://assets.coingecko.com/coins/images/279/standard/ethereum.png?1696501628",
"openLeverage": 20,
"id": 14078,
"inviteUser": 77,
"autoCloseDuration": 60,
"openCommissionsRatio": 0.5,
"side": "BUY",
"amount": 18.4,
"closedPnl": -0.324,
"positionSide": "LONG",
"clientOrderId": "1734451962824000",
"openFee": 0.0592614,
"commissionsRatio": 0.5,
"openBrokerFee": 0.039507600197538,
"updateTime": "2024-12-19 09:32:16",
"executedAmount": 197.538,
"userId": 75,
"closeTs": 1734600735036,
"positionId": "1734451962843001",
"createTime": "2024-12-18 00:12:44",
"ts": 1734451962824,
"liqFee": 0
}
]
}
}Last updated