const res = await fetch('https://app.trdrs.co/api/trading/margin-mode', {
method: 'PUT',
headers: {
'content-type': 'application/json',
Authorization: `Bearer ${process.env.TRDRS_API_KEY}`,
},
body: JSON.stringify({
"instrument": "HYPERLIQUID:BTC",
"marginMode": "isolated"
}),
})
const data = await res.json()curl -X PUT 'https://app.trdrs.co/api/trading/margin-mode' \
-H "Authorization: Bearer $TRDRS_API_KEY" \
-H 'content-type: application/json' \
-d '{"instrument":"HYPERLIQUID:BTC","marginMode":"isolated"}'import requests
url = "https://app.trdrs.co/api/trading/margin-mode"
payload = {
"instrument": "HYPERLIQUID:BTC",
"marginMode": "isolated"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.trdrs.co/api/trading/margin-mode",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'instrument' => 'HYPERLIQUID:BTC',
'marginMode' => 'isolated'
]),
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://app.trdrs.co/api/trading/margin-mode"
payload := strings.NewReader("{\n \"instrument\": \"HYPERLIQUID:BTC\",\n \"marginMode\": \"isolated\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://app.trdrs.co/api/trading/margin-mode")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"instrument\": \"HYPERLIQUID:BTC\",\n \"marginMode\": \"isolated\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/trading/margin-mode")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"instrument\": \"HYPERLIQUID:BTC\",\n \"marginMode\": \"isolated\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}Set margin mode
Changes the margin mode of one instrument between cross and isolated at the provider, or the whole account’s where the provider holds one mode for every instrument on the account (the symbol configuration’s marginModeScope says which). The leverage stays as it is. The change is refused while a position or a working order sits within its reach, and on an instrument that trades in one mode only. Asking for the mode already set changes nothing.
Required key: Trading API key. A Connect app’s backend can also send it with the app’s API key, and a venue’s backend with its Venue key, which carries trader:trade, each naming one of its own traders in x-trdrs-trader: it then runs on that trader’s own accounts.
const res = await fetch('https://app.trdrs.co/api/trading/margin-mode', {
method: 'PUT',
headers: {
'content-type': 'application/json',
Authorization: `Bearer ${process.env.TRDRS_API_KEY}`,
},
body: JSON.stringify({
"instrument": "HYPERLIQUID:BTC",
"marginMode": "isolated"
}),
})
const data = await res.json()curl -X PUT 'https://app.trdrs.co/api/trading/margin-mode' \
-H "Authorization: Bearer $TRDRS_API_KEY" \
-H 'content-type: application/json' \
-d '{"instrument":"HYPERLIQUID:BTC","marginMode":"isolated"}'import requests
url = "https://app.trdrs.co/api/trading/margin-mode"
payload = {
"instrument": "HYPERLIQUID:BTC",
"marginMode": "isolated"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.trdrs.co/api/trading/margin-mode",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'instrument' => 'HYPERLIQUID:BTC',
'marginMode' => 'isolated'
]),
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://app.trdrs.co/api/trading/margin-mode"
payload := strings.NewReader("{\n \"instrument\": \"HYPERLIQUID:BTC\",\n \"marginMode\": \"isolated\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://app.trdrs.co/api/trading/margin-mode")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"instrument\": \"HYPERLIQUID:BTC\",\n \"marginMode\": \"isolated\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trdrs.co/api/trading/margin-mode")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"instrument\": \"HYPERLIQUID:BTC\",\n \"marginMode\": \"isolated\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}{
"error": "invalid_instrument"
}Authorizations
The Trading API key (trdrs_sk_…), for market data, orders and account state on the accounts its owner holds. Use it server-to-server, and keep it on your server. Its scope is named trading in the API.
Query Parameters
The provider the account is at, such as rithmic or paper. Omit it to use your default provider. An unknown value is refused with 400, never replaced with another provider.
The account number at that provider. It must be one of your own accounts, or the call is refused with 400.
Body
Response
The margin mode is set.
The confirmation a write returns when it has nothing else to say.
True when the write succeeded.