Spot Trading API

Create a spot order

post
Body
clientOrderIdstringOptional

Custom client OrderID, optional

typestring · enumOptional

Order type: LIMIT=Limit order, MARKET=Market order

Possible values:
directionstring · enumOptional

Order direction LONG, SHORT

Possible values:
symbolstringOptional

Order trading pair, e.g., XBTC

pricenumberOptional

Order price

quantitynumberOptional

Order quantity

fillOrKillbooleanOptional

FOK (Fill or Kill) flag fully filled or fully canceled

immediateOrCancelbooleanOptional

IOC (Immediate or Cancel) flag execute immediately or cancel

postOnlybooleanOptional

PostOnly flag maker only

hiddenbooleanOptional

Hidden flag whether to hide

Responses
200

OK

application/json
Responsestring
post
/v1/spots/orders
POST /v1/spots/orders HTTP/1.1
Host: dex-api.benpay.com
Content-Type: application/json
Accept: */*
Content-Length: 170

{
  "clientOrderId": "text",
  "type": "LIMIT",
  "direction": "LONG",
  "symbol": "text",
  "price": 1,
  "quantity": 1,
  "fillOrKill": true,
  "immediateOrCancel": true,
  "postOnly": true,
  "hidden": true
}
200

OK

text

Cancel the order by specified ID or symbol

post
Path parameters
idOrSymbolstringRequired
Responses
200

OK

application/json
Responsestring
post
/v1/spots/orders/{idOrSymbol}/cancel
POST /v1/spots/orders/{idOrSymbol}/cancel HTTP/1.1
Host: dex-api.benpay.com
Accept: */*
200

OK

text

Query order by ID

get
Path parameters
orderIdinteger · int64Required
Responses
200

OK

*/*
get
/v1/spots/orders/{orderId}
GET /v1/spots/orders/{orderId} HTTP/1.1
Host: dex-api.benpay.com
Accept: */*
200

OK

{
  "success": true,
  "data": {
    "id": 1,
    "clientOrderId": "text",
    "sequenceId": 1,
    "baseCurrencyId": 1,
    "quoteCurrencyId": 1,
    "userId": 1,
    "symbolId": 1,
    "quantity": 1,
    "unfilledQuantity": 1,
    "type": "LIMIT",
    "status": "PENDING",
    "direction": "LONG",
    "features": 1,
    "fillPrice": 1,
    "price": 1,
    "makerFeeRate": 1,
    "takerFeeRate": 1,
    "fee": 1,
    "createdAt": 1,
    "updatedAt": 1,
    "immediateOrCancel": true,
    "fillOrKill": true,
    "postOnly": true,
    "symbol": "text",
    "finalStatus": true
  },
  "error": "text",
  "errorField": "text",
  "errorMessage": "text"
}

Query order match details by ID

get
Path parameters
orderIdinteger · int64Required
Responses
200

OK

*/*
get
/v1/spots/orders/{orderId}/matches
GET /v1/spots/orders/{orderId}/matches HTTP/1.1
Host: dex-api.benpay.com
Accept: */*
200

OK

{
  "success": true,
  "data": [
    {
      "taker": true,
      "price": 1,
      "quantity": 1,
      "fee": 1,
      "createdAt": 1
    }
  ],
  "error": "text",
  "errorField": "text",
  "errorMessage": "text"
}

Query all active orders

get
Responses
200

OK

*/*
get
/v1/spots/orders/open
GET /v1/spots/orders/open HTTP/1.1
Host: dex-api.benpay.com
Accept: */*
200

OK

{
  "success": true,
  "data": [
    {
      "id": 1,
      "clientOrderId": "text",
      "sequenceId": 1,
      "baseCurrencyId": 1,
      "quoteCurrencyId": 1,
      "userId": 1,
      "symbolId": 1,
      "quantity": 1,
      "unfilledQuantity": 1,
      "type": "LIMIT",
      "status": "PENDING",
      "direction": "LONG",
      "features": 1,
      "fillPrice": 1,
      "price": 1,
      "makerFeeRate": 1,
      "takerFeeRate": 1,
      "fee": 1,
      "createdAt": 1,
      "updatedAt": 1,
      "immediateOrCancel": true,
      "fillOrKill": true,
      "postOnly": true,
      "symbol": "text",
      "finalStatus": true
    }
  ],
  "error": "text",
  "errorField": "text",
  "errorMessage": "text"
}

Query active order by ID

get
Path parameters
orderIdinteger · int64Required
Responses
200

OK

*/*
get
/v1/spots/orders/open/{orderId}
GET /v1/spots/orders/open/{orderId} HTTP/1.1
Host: dex-api.benpay.com
Accept: */*
200

OK

{
  "success": true,
  "data": {
    "id": 1,
    "clientOrderId": "text",
    "sequenceId": 1,
    "baseCurrencyId": 1,
    "quoteCurrencyId": 1,
    "userId": 1,
    "symbolId": 1,
    "quantity": 1,
    "unfilledQuantity": 1,
    "type": "LIMIT",
    "status": "PENDING",
    "direction": "LONG",
    "features": 1,
    "fillPrice": 1,
    "price": 1,
    "makerFeeRate": 1,
    "takerFeeRate": 1,
    "fee": 1,
    "createdAt": 1,
    "updatedAt": 1,
    "immediateOrCancel": true,
    "fillOrKill": true,
    "postOnly": true,
    "symbol": "text",
    "finalStatus": true
  },
  "error": "text",
  "errorField": "text",
  "errorMessage": "text"
}

Query historical orders by month

get
Query parameters
rangestringOptional

Query range, e.g., for February 2025 enter 202502

Example: 202502
symbolstringOptional

Trading pair name

Example: BTC_USD
fromMillisnumberOptional

Start time in milliseconds

Default: 0Example: 1738339200000
toMillisnumberOptional

End time in milliseconds

Default: 0Example: 1739894400000
offsetIdnumberOptional

Order ID offset (nextOffsetId returned from last query)

Default: 0Example: 0
limitnumberOptional

Page size

Default: 0Example: 100
Responses
200

OK

*/*
get
/v1/spots/orders/closed
GET /v1/spots/orders/closed HTTP/1.1
Host: dex-api.benpay.com
Accept: */*
200

OK

{
  "success": true,
  "data": {
    "hasMore": true,
    "nextOffsetId": 1,
    "results": [
      {
        "id": 1,
        "clientOrderId": "text",
        "sequenceId": 1,
        "baseCurrencyId": 1,
        "quoteCurrencyId": 1,
        "userId": 1,
        "symbolId": 1,
        "quantity": 1,
        "unfilledQuantity": 1,
        "type": "LIMIT",
        "status": "PENDING",
        "direction": "LONG",
        "features": 1,
        "fillPrice": 1,
        "price": 1,
        "makerFeeRate": 1,
        "takerFeeRate": 1,
        "fee": 1,
        "createdAt": 1,
        "updatedAt": 1,
        "immediateOrCancel": true,
        "fillOrKill": true,
        "postOnly": true,
        "symbol": "text",
        "finalStatus": true
      }
    ],
    "range": "text"
  },
  "error": "text",
  "errorField": "text",
  "errorMessage": "text"
}

Paginated query of user order clearing records

get
Query parameters
rangestringOptional

Query range (data shard)

Example: 202502
symbolstringOptional

Trading pair name

Example: BTC_USD
directionstringOptional

Direction. LONG/SHORT/empty string

Example: LONG
fromMillisnumberOptional

Start time in milliseconds

Default: 0LExample: 1738339200000
toMillisnumberOptional

End time in milliseconds

Default: 0LExample: 1739894400000
offsetIdnumberOptional

Order ID offset (nextOffsetId returned from last query)

Default: 0Example: 0
limitnumberOptional

Page size

Default: 0Example: 100
Responses
200

OK

*/*
get
/v1/spots/match/clearings
GET /v1/spots/match/clearings HTTP/1.1
Host: dex-api.benpay.com
Accept: */*
200

OK

{
  "success": true,
  "data": {
    "hasMore": true,
    "nextOffsetId": 1,
    "results": [
      {
        "id": 1,
        "orderId": 1,
        "userId": 1,
        "sequenceId": 1,
        "direction": "LONG",
        "type": "MAKER",
        "matchPrice": 1,
        "matchQuantity": 1,
        "orderStatusAfterClearing": "PENDING",
        "orderUnfilledQuantityAfterClearing": 1,
        "feeCurrency": "text",
        "fee": 1,
        "rate": 1,
        "createdAt": 1,
        "symbol": "text"
      }
    ],
    "range": "text"
  },
  "error": "text",
  "errorField": "text",
  "errorMessage": "text"
}

Query spot trading fee rate

get
Query parameters
symbolstringOptionalDefault: ""
timestampinteger · int64OptionalDefault: 0
Responses
200

OK

*/*
get
/v1/spots/fee/rate
GET /v1/spots/fee/rate HTTP/1.1
Host: dex-api.benpay.com
Accept: */*
200

OK

{
  "success": true,
  "data": {
    "taker": 1,
    "maker": 1,
    "timestamp": 1
  },
  "error": "text",
  "errorField": "text",
  "errorMessage": "text"
}

Query spot balances

get
Responses
200

OK

*/*
get
/v1/spots/balances
GET /v1/spots/balances HTTP/1.1
Host: dex-api.benpay.com
Accept: */*
200

OK

{
  "success": true,
  "data": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "error": "text",
  "errorField": "text",
  "errorMessage": "text"
}

Last updated