Skip to main content

Trading and Orders

The Trading and Orders API endpoints allow you to execute various trading actions such as placing buy and sell orders on supported exchanges, canceling existing orders, and retrieving detailed historical order information.

Info

An order is an instruction to buy or sell on a trading venue. A limit order is an order to buy or sell a stock at a specific price or better. A market order is an order to buy or sell a stock at the market's current best available price.

The following sections outline how to interact with these endpoints, including parameter details, request examples in multiple programming languages, and sample responses.

To place an order for any pair, at least one trading pair on that exchange must be actively cycling in Gunbot Core.

Place Limit Buy Order

  • Method: POST
  • Endpoint: /api/v1/trade/buy
  • Description: Place a limit buy order on a specified exchange for a given trading pair at a set price.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to buy.
pricenumberYesLimit price at which to place the buy order.

Examples

cURL

curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/buy \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0,
"price": 50000
}
}'

JavaScript (fetch API)

fetch('https://your-gunbot-instance.com:3000/api/v1/trade/buy', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0,
price: 50000
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

Python (requests library)

import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/buy'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0,
'price': 50000
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())

Response

{
"status": "success",
"message": "Order sent"
}

Place Market Buy Order

  • Method: POST
  • Endpoint: /api/v1/trade/buy/market
  • Description: Place a market buy order on a specified exchange for a given trading pair at the current market price.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to buy.
pricenumberNoOptional for market orders; defaults to market price.

Examples

cURL

curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/buy/market \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0
}
}'

JavaScript (fetch API)

fetch('https://your-gunbot-instance.com:3000/api/v1/trade/buy/market', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

Python (requests library)

import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/buy/market'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())

Response

{
"status": "success",
"message": "Order sent"
}

Place Limit Sell Order

  • Method: POST
  • Endpoint: /api/v1/trade/sell
  • Description: Place a limit sell order on a specified exchange for a given trading pair at a set price.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to sell.
pricenumberYesLimit price at which to place the sell order.

Examples

cURL

curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/sell \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0,
"price": 52500
}
}'

JavaScript (fetch API)

fetch('https://your-gunbot-instance.com:3000/api/v1/trade/sell', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0,
price: 52500
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

Python (requests library)

import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/sell'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0,
'price': 52500
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())

Response

{
"status": "success",
"message": "Order sent"
}

Place Market Sell Order

  • Method: POST
  • Endpoint: /api/v1/trade/sell/market
  • Description: Place a market sell order on a specified exchange for a given trading pair at the current market price.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to sell.
pricenumberNoOptional for market orders; defaults to market price.

Examples

cURL

curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/sell/market \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0
}
}'

JavaScript (fetch API)

fetch('https://your-gunbot-instance.com:3000/api/v1/trade/sell/market', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

Python (requests library)

import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/sell/market'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())

Response

{
"status": "success",
"message": "Order sent"
}

Cancel Order

  • Method: POST
  • Endpoint: /api/v1/trade/cancel
  • Description: Cancel an existing order on a specified exchange for a given trading pair.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
idstringYesOrder ID of the order to cancel.
pricenumberYesPrice at which the order was placed.
typestringYesOrder type (limit or market).

Examples

cURL

curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/cancel \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"id": "357044",
"price": 50000,
"type": "limit"
}
}'

JavaScript (fetch API)

fetch('https://your-gunbot-instance.com:3000/api/v1/trade/cancel', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
id: '357044',
price: 50000,
type: 'limit'
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

Python (requests library)

import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/cancel'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'id': '357044',
'price': 50000,
'type': 'limit'
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())

Response

{
"status": "success",
"message": "Order sent"
}

Get All Local Order History

  • Method: GET
  • Endpoint: /api/v1/orders
  • Description: Retrieve all locally stored order history for a specified trading pair on an exchange.

Parameters

ParameterTypeRequiredDescription
keystringYesCombined exchange and trading pair in the format exchange/pair (e.g., binance/USDT-XRP). Must be URL-encoded.

Examples

cURL

curl -G https://your-gunbot-instance.com:3000/api/v1/orders \
-H "Authorization: Bearer YOUR_TOKEN" \
--data-urlencode "key=binance/USDT-XRP"

JavaScript (fetch API)

const params = new URLSearchParams({
key: 'binance/USDT-XRP'
});

fetch(`https://your-gunbot-instance.com:3000/api/v1/orders?${params.toString()}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

Python (requests library)

import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/orders'
headers = {
'Authorization': 'Bearer YOUR_TOKEN'
}
params = {
'key': 'binance/USDT-XRP'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())

Response

{
"data": [
{
"time": 1731617894238,
"pair": "USDT-BTC",
"type": "buy",
"rate": 87740.105,
"amount": 0.0007884042071927771,
"id": 166132,
"cost": 69.17466792153601,
"toCancel": true,
"fees": 0.06917466792153601,
"baseValue": 69.24384258945754,
"costProceed": -69.24384258945754,
"averagePrice": 87827.84510499999,
"pnlPrice": 62265.7632540246,
"balance": 0.0018547712531865415,
"baseBalance": 5199.37490001808,
"inventory_cost": 89053.68482887851,
"ABP": 89885.66715497107,
"pnl": 0
},
{
"time": 1731596553416,
"pair": "USDT-BTC",
"type": "sell",
"rate": 88888.03,
"amount": 0.0005572244556575904,
"id": 448165,
"cost": 49.53058413122556,
"fees": 0.04953058413122556,
"baseValue": 49.481053547094334,
"costProceed": 49.481053547094334,
"averagePrice": 85700.7154144933,
"pnlPrice": 61279.0778096541,
"balance": 0.0010663670459937643,
"baseBalance": 5268.549567939615,
"inventory_cost": 89697.41560740759,
"ABP": 90864.57035248159,
"pnl": 0.17646695031266005
},
{
"time": 1731596480207,
"pair": "USDT-BTC",
"type": "buy",
"rate": 88392.70000000001,
"amount": 0.0005572244556575904,
"id": 826436,
"cost": 49.25457414160469,
"toCancel": true,
"fees": 0.049254574141604696,
"baseValue": 49.3038287157463,
"costProceed": -49.3038287157463,
"averagePrice": 87665.81682479104,
"pnlPrice": 62257.51727031601,
"balance": 0.0016235915016513548,
"baseBalance": 5219.01898380839,
"inventory_cost": 89710.661199906,
"ABP": 90267.99857431499,
"pnl": 0
},
{
"time": 1731595106491,
"pair": "USDT-BTC",
"type": "buy",
"rate": 90399.035,
"amount": 0.000515321047902929,
"id": 613198,
"cost": 46.58452544561356,
"toCancel": true,
"fees": 0.04658452544561356,
"baseValue": 46.631109971059175,
"costProceed": -46.631109971059175,
"averagePrice": 88781.90272859199,
"pnlPrice": 63166.40338265961,
"balance": 0.0010663670459937645,
"baseBalance": 5268.273557949994,
"inventory_cost": 90167.15161602566,
"ABP": 90864.26884252609,
"pnl": 0
}
]
}

Get Orders for Current Day (Multiple Pairs/Exchanges)

  • Method: GET
  • Endpoint: /api/v1/orders/day
  • Description: Retrieve orders from the current day for multiple trading pairs and exchanges.

Parameters

ParameterTypeRequiredDescription
timezonestringYesTimezone identifier (e.g., America/New_York). Must be a valid IANA timezone.
keys[]arrayYesArray of keys in the format exchange/pair (e.g., binance/USDT-XRP). Must be URL-encoded.

Examples

cURL

curl -G https://your-gunbot-instance.com:3000/api/v1/orders/day \
-H "Authorization: Bearer YOUR_TOKEN" \
--data-urlencode "timezone=America/New_York" \
--data-urlencode "keys[]=binance/USDT-XRP" \
--data-urlencode "keys[]=mex_gunthy/USDT-DOGE"

JavaScript (fetch API)

const params = new URLSearchParams({
timezone: 'America/New_York'
});
['binance/USDT-XRP', 'mex_gunthy/USDT-DOGE'].forEach(key => params.append('keys[]', key));

fetch(`https://your-gunbot-instance.com:3000/api/v1/orders/day?${params.toString()}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

Python (requests library)

import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/orders/day'
headers = {
'Authorization': 'Bearer YOUR_TOKEN'
}
params = [
('timezone', 'America/New_York'),
('keys[]', 'binance/USDT-XRP'),
('keys[]', 'mex_gunthy/USDT-DOGE')
]
response = requests.get(url, headers=headers, params=params)
print(response.json())

Response

{
"days": [],
"orders": [],
"closeOrders": []
}

Get Paginated Orders (Single Pair)

  • Method: GET
  • Endpoint: /api/v1/orders/page
  • Description: Retrieve paginated orders for a specified trading pair on an exchange.

Parameters

ParameterTypeRequiredDescription
keystringYesCombined exchange and trading pair in the format exchange/pair (e.g., binance/USDT-XRP). Must be URL-encoded.
pagenumberYesPage number starting from 0.
pageSizenumberYesNumber of records per page.

Examples

cURL

curl -G https://your-gunbot-instance.com:3000/api/v1/orders/page \
-H "Authorization: Bearer YOUR_TOKEN" \
--data-urlencode "key=binance/USDT-XRP" \
--data-urlencode "page=0" \
--data-urlencode "pageSize=10"

JavaScript (fetch API)

const params = new URLSearchParams({
key: 'binance/USDT-XRP',
page: '0',
pageSize: '10'
});

fetch(`https://your-gunbot-instance.com:3000/api/v1/orders/page?${params.toString()}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

Python (requests library)

import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/orders/page'
headers = {
'Authorization': 'Bearer YOUR_TOKEN'
}
params = {
'key': 'binance/USDT-XRP',
'page': '0',
'pageSize': '10'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())

Response

{
"total": 0,
"page": 0,
"data": []
}

Get Paginated Orders (Multiple Pairs/Exchanges)

  • Method: GET
  • Endpoint: /api/v1/orders/page/multi
  • Description: Retrieve paginated orders for multiple trading pairs and exchanges.

Parameters

ParameterTypeRequiredDescription
keys[]arrayYesArray of keys in the format exchange/pair (e.g., binance/USDT-XRP). Must be URL-encoded.
pagenumberYesPage number starting from 0.
pageSizenumberYesNumber of records per page.

Examples

cURL

curl -G https://your-gunbot-instance.com:3000/api/v1/orders/page/multi \
-H "Authorization: Bearer YOUR_TOKEN" \
--data-urlencode "page=0" \
--data-urlencode "pageSize=10" \
--data-urlencode "keys[]=binance/USDT-XRP" \
--data-urlencode "keys[]=mex_gunthy/USDT-DOGE"

JavaScript (fetch API)

const params = new URLSearchParams({
page: '0',
pageSize: '10'
});
['binance/USDT-XRP', 'mex_gunthy/USDT-DOGE'].forEach(key => params.append('keys[]', key));

fetch(`https://your-gunbot-instance.com:3000/api/v1/orders/page/multi?${params.toString()}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

Python (requests library)

import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/orders/page/multi'
headers = {
'Authorization': 'Bearer YOUR_TOKEN'
}
params = [
('page', '0'),
('pageSize', '10'),
('keys[]', 'binance/USDT-XRP'),
('keys[]', 'mex_gunthy/USDT-DOGE')
]
response = requests.get(url, headers=headers, params=params)
print(response.json())

Response

{
"total": 0,
"totalCount": 0,
"page": 0,
"data": []
}

Binance Specific Endpoints

Place Stop-Limit Buy Order (Binance)

  • Method: POST
  • Endpoint: /api/v1/trade/buy/stoplimit
  • Description: Place a stop-limit buy order on Binance. The order will convert to a limit buy order once the stop price is reached.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to buy.
stopPricenumberYesThe price at which the limit order will be triggered.
limitPricenumberYesThe limit price used once the stop price has been reached.

Examples

cURL
curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/buy/stoplimit \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0,
"stopPrice": 49900,
"limitPrice": 49850
}
}'
JavaScript (fetch API)
fetch('https://your-gunbot-instance.com:3000/api/v1/trade/buy/stoplimit', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0,
stopPrice: 49900,
limitPrice: 49850
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Python (requests library)
import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/buy/stoplimit'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0,
'stopPrice': 49900,
'limitPrice': 49850
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
Response
{
"status": "success",
"message": "Order sent"
}

Place Stop-Limit Sell Order (Binance)

  • Method: POST
  • Endpoint: /api/v1/trade/sell/stoplimit
  • Description: Place a stop-limit sell order on Binance. The order will convert to a limit sell order once the stop price is reached.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to sell.
stopPricenumberYesThe price at which the limit order will be triggered.
limitPricenumberYesThe limit price used once the stop price has been reached.

Examples

cURL
curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/sell/stoplimit \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0,
"stopPrice": 50100,
"limitPrice": 50150
}
}'
JavaScript (fetch API)
fetch('https://your-gunbot-instance.com:3000/api/v1/trade/sell/stoplimit', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0,
stopPrice: 50100,
limitPrice: 50150
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Python (requests library)
import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/sell/stoplimit'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0,
'stopPrice': 50100,
'limitPrice': 50150
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
Response
{
"status": "success",
"message": "Order sent"
}

Place Trailing Stop Buy Order (Binance)

  • Method: POST
  • Endpoint: /api/v1/trade/buy/trailingstop
  • Description: Place a trailing stop buy order on Binance. This adjusts the stop price automatically as the market moves, attempting to buy as the price recovers after a drop.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to buy.
pricenumberYesReference price for the order.
stopPricenumberYesTrailing stop price.

Examples

cURL
curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/buy/trailingstop \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0,
"price": 50000,
"stopPrice": 49900
}
}'
JavaScript (fetch API)
fetch('https://your-gunbot-instance.com:3000/api/v1/trade/buy/trailingstop', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0,
price: 50000,
stopPrice: 49900
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Python (requests library)
import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/buy/trailingstop'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0,
'price': 50000,
'stopPrice': 49900
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
Response
{
"status": "success",
"message": "Order sent"
}

Place Trailing Stop Sell Order (Binance)

  • Method: POST
  • Endpoint: /api/v1/trade/sell/trailingstop
  • Description: Place a trailing stop sell order on Binance. This adjusts the stop price automatically as the market moves, attempting to sell as the price declines after a rise.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to sell.
pricenumberYesReference price for the order.
stopPricenumberYesTrailing stop price.

Examples

cURL
curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/sell/trailingstop \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0,
"price": 52500,
"stopPrice": 52550
}
}'
JavaScript (fetch API)
fetch('https://your-gunbot-instance.com:3000/api/v1/trade/sell/trailingstop', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0,
price: 52500,
stopPrice: 52550
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Python (requests library)
import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/sell/trailingstop'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0,
'price': 52500,
'stopPrice': 52550
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
Response
{
"status": "success",
"message": "Order sent"
}

Place OCO Buy Order (Binance)

  • Method: POST
  • Endpoint: /api/v1/trade/buy/oco
  • Description: Place a one-cancels-the-other (OCO) buy order on Binance. This places a limit order and a stop-limit order simultaneously. If one order executes fully or partially, the other is automatically canceled.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to buy.
pricenumberYesLimit price for the OCO order.
stopPricenumberYesStop price for the stop-limit part.
limitnumberYesLimit price used after the stop is triggered.

Examples

cURL
curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/buy/oco \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0,
"price": 50000,
"stopPrice": 49900,
"limit": 49850
}
}'
JavaScript (fetch API)
fetch('https://your-gunbot-instance.com:3000/api/v1/trade/buy/oco', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0,
price: 50000,
stopPrice: 49900,
limit: 49850
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Python (requests library)
import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/buy/oco'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0,
'price': 50000,
'stopPrice': 49900,
'limit': 49850
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
Response
{
"status": "success",
"message": "Order sent"
}

Place OCO Sell Order (Binance)

  • Method: POST
  • Endpoint: /api/v1/trade/sell/oco
  • Description: Place a one-cancels-the-other (OCO) sell order on Binance. This places a limit order and a stop-limit order simultaneously. If one order executes fully or partially, the other is automatically canceled.

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., binance).
pairstringYesTrading pair symbol (e.g., USDT-BTC).
amtnumberYesAmount of the asset to sell.
pricenumberYesLimit price for the OCO order.
stopPricenumberYesStop price for the stop-limit part.
limitnumberYesLimit price used after the stop is triggered.

Examples

cURL
curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/sell/oco \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "binance",
"pair": "USDT-BTC",
"amt": 1.0,
"price": 52500,
"stopPrice": 52550,
"limit": 52600
}
}'
JavaScript (fetch API)
fetch('https://your-gunbot-instance.com:3000/api/v1/trade/sell/oco', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'binance',
pair: 'USDT-BTC',
amt: 1.0,
price: 52500,
stopPrice: 52550,
limit: 52600
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Python (requests library)
import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/sell/oco'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'binance',
'pair': 'USDT-BTC',
'amt': 1.0,
'price': 52500,
'stopPrice': 52550,
'limit': 52600
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
Response
{
"status": "success",
"message": "Order sent"
}

Bybit Specific Endpoints

Close Position at Limit Price (Bybit Futures)

  • Method: POST
  • Endpoint: /api/v1/trade/close
  • Description: Close an open position at a specified limit price on Bybit (futures).

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., bybit).
pairstringYesTrading pair symbol (e.g., USDT-BTC-LONG).
amtnumberYesAmount of the asset to close.
pricenumberYesLimit price at which to close the position.

Examples

cURL
curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/close \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "bybit",
"pair": "USDT-BTC-LONG",
"amt": 1.0,
"price": 51000
}
}'
JavaScript (fetch API)
fetch('https://your-gunbot-instance.com:3000/api/v1/trade/close', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'bybit',
pair: 'USDT-BTC-LONG',
amt: 1.0,
price: 51000
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Python (requests library)
import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/close'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'bybit',
'pair': 'USDT-BTC-LONG',
'amt': 1.0,
'price': 51000
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
Response
{
"status": "success",
"message": "Order sent"
}

Close Position at Market Price (Bybit Futures)

  • Method: POST
  • Endpoint: /api/v1/trade/close/market
  • Description: Close an open position at the current market price on Bybit (futures).

Parameters

ParameterTypeRequiredDescription
exchstringYesExchange name (e.g., bybit).
pairstringYesTrading pair symbol (e.g., USDT-BTC-LONG).
amtnumberYesAmount of the asset to close.

Examples

cURL
curl -X POST https://your-gunbot-instance.com:3000/api/v1/trade/close/market \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"data": {
"exch": "bybit",
"pair": "USDT-BTC-LONG",
"amt": 1.0
}
}'
JavaScript (fetch API)
fetch('https://your-gunbot-instance.com:3000/api/v1/trade/close/market', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify({
data: {
exch: 'bybit',
pair: 'USDT-BTC-LONG',
amt: 1.0
}
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Python (requests library)
import requests

url = 'https://your-gunbot-instance.com:3000/api/v1/trade/close/market'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'data': {
'exch': 'bybit',
'pair': 'USDT-BTC-LONG',
'amt': 1.0
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
Response
{
"status": "success",
"message": "Order sent"
}