curl --request POST \
--url https://api.ondoperps.xyz/v1/perps/stop_order \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"market": "AAPL-USD.P",
"positionDirection": "long",
"type": "stopLoss",
"triggerPrice": "9.00",
"quantity": "0.5"
}
'import requests
url = "https://api.ondoperps.xyz/v1/perps/stop_order"
payload = {
"market": "AAPL-USD.P",
"positionDirection": "long",
"type": "stopLoss",
"triggerPrice": "9.00",
"quantity": "0.5"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
market: 'AAPL-USD.P',
positionDirection: 'long',
type: 'stopLoss',
triggerPrice: '9.00',
quantity: '0.5'
})
};
fetch('https://api.ondoperps.xyz/v1/perps/stop_order', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ondoperps.xyz/v1/perps/stop_order",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'market' => 'AAPL-USD.P',
'positionDirection' => 'long',
'type' => 'stopLoss',
'triggerPrice' => '9.00',
'quantity' => '0.5'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ondoperps.xyz/v1/perps/stop_order"
payload := strings.NewReader("{\n \"market\": \"AAPL-USD.P\",\n \"positionDirection\": \"long\",\n \"type\": \"stopLoss\",\n \"triggerPrice\": \"9.00\",\n \"quantity\": \"0.5\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ondoperps.xyz/v1/perps/stop_order")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"market\": \"AAPL-USD.P\",\n \"positionDirection\": \"long\",\n \"type\": \"stopLoss\",\n \"triggerPrice\": \"9.00\",\n \"quantity\": \"0.5\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ondoperps.xyz/v1/perps/stop_order")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"market\": \"AAPL-USD.P\",\n \"positionDirection\": \"long\",\n \"type\": \"stopLoss\",\n \"triggerPrice\": \"9.00\",\n \"quantity\": \"0.5\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"market": "AAPL-USD.P",
"positionDirection": "long",
"stopLoss": "200.00",
"takeProfit": null
}
}{
"success": false,
"error": "Description of the error",
"error_code": "invalid_market"
}{
"success": false,
"error": "Description of the error",
"error_code": "auth_missing"
}{
"success": false,
"error": "Description of the error",
"error_code": "account_not_allowed"
}{
"success": false,
"error": "Description of the error",
"error_code": "too_many_requests"
}{
"success": false,
"error": "Description of the error",
"error_code": "unknown"
}Set Stop Order
Set a stop order for a particular position defined by market and direction. Optionally pass builderCode to attribute the eventual triggered close to a builder for commission. For how stop orders work, see Take profit and stop loss.
curl --request POST \
--url https://api.ondoperps.xyz/v1/perps/stop_order \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"market": "AAPL-USD.P",
"positionDirection": "long",
"type": "stopLoss",
"triggerPrice": "9.00",
"quantity": "0.5"
}
'import requests
url = "https://api.ondoperps.xyz/v1/perps/stop_order"
payload = {
"market": "AAPL-USD.P",
"positionDirection": "long",
"type": "stopLoss",
"triggerPrice": "9.00",
"quantity": "0.5"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
market: 'AAPL-USD.P',
positionDirection: 'long',
type: 'stopLoss',
triggerPrice: '9.00',
quantity: '0.5'
})
};
fetch('https://api.ondoperps.xyz/v1/perps/stop_order', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ondoperps.xyz/v1/perps/stop_order",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'market' => 'AAPL-USD.P',
'positionDirection' => 'long',
'type' => 'stopLoss',
'triggerPrice' => '9.00',
'quantity' => '0.5'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ondoperps.xyz/v1/perps/stop_order"
payload := strings.NewReader("{\n \"market\": \"AAPL-USD.P\",\n \"positionDirection\": \"long\",\n \"type\": \"stopLoss\",\n \"triggerPrice\": \"9.00\",\n \"quantity\": \"0.5\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ondoperps.xyz/v1/perps/stop_order")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"market\": \"AAPL-USD.P\",\n \"positionDirection\": \"long\",\n \"type\": \"stopLoss\",\n \"triggerPrice\": \"9.00\",\n \"quantity\": \"0.5\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ondoperps.xyz/v1/perps/stop_order")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"market\": \"AAPL-USD.P\",\n \"positionDirection\": \"long\",\n \"type\": \"stopLoss\",\n \"triggerPrice\": \"9.00\",\n \"quantity\": \"0.5\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"market": "AAPL-USD.P",
"positionDirection": "long",
"stopLoss": "200.00",
"takeProfit": null
}
}{
"success": false,
"error": "Description of the error",
"error_code": "invalid_market"
}{
"success": false,
"error": "Description of the error",
"error_code": "auth_missing"
}{
"success": false,
"error": "Description of the error",
"error_code": "account_not_allowed"
}{
"success": false,
"error": "Description of the error",
"error_code": "too_many_requests"
}{
"success": false,
"error": "Description of the error",
"error_code": "unknown"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Perps market
"AAPL-USD.P"
Position direction this stop order watches
long, short "long"
The type of stop order to set
stopLoss, takeProfit "stopLoss"
The trigger price
"9.00"
Optional. Sets a partial stop order for this quantity of the position instead of the full position. Omit to close the full position when triggered.
"0.5"
Optional. Attributes the eventual triggered close to a builder for commission. Must be set explicitly on this request for the close to carry builder commission; it is not inherited from the builderCode on the order(s) that originally opened the position.
Show child attributes
Show child attributes
Response
Updated stop orders for the market
Whether the request was successful
true
Error message, present only on failure
""
Semantic error code. See each endpoint's error responses for the specific codes it can return.
Deprecation notice, if applicable
""
Show child attributes
Show child attributes