cURL
curl --request GET \
--url https://drb.coinbase.com/api/v2/private/change_margin_model \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "private/change_margin_model",
"params": {
"margin_model": "cross_pm",
"user_id": 3
}
}
'import requests
url = "https://drb.coinbase.com/api/v2/private/change_margin_model"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "private/change_margin_model",
"params": {
"margin_model": "cross_pm",
"user_id": 3
}
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 1,
jsonrpc: '2.0',
method: 'private/change_margin_model',
params: {margin_model: 'cross_pm', user_id: 3}
})
};
fetch('https://drb.coinbase.com/api/v2/private/change_margin_model', 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://drb.coinbase.com/api/v2/private/change_margin_model",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'private/change_margin_model',
'params' => [
'margin_model' => 'cross_pm',
'user_id' => 3
]
]),
CURLOPT_HTTPHEADER => [
"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://drb.coinbase.com/api/v2/private/change_margin_model"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/change_margin_model\",\n \"params\": {\n \"margin_model\": \"cross_pm\",\n \"user_id\": 3\n }\n}")
req, _ := http.NewRequest("GET", url, payload)
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.get("https://drb.coinbase.com/api/v2/private/change_margin_model")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/change_margin_model\",\n \"params\": {\n \"margin_model\": \"cross_pm\",\n \"user_id\": 3\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://drb.coinbase.com/api/v2/private/change_margin_model")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/change_margin_model\",\n \"params\": {\n \"margin_model\": \"cross_pm\",\n \"user_id\": 3\n }\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"jsonrpc": "2.0",
"result": [
{
"currency": "eth",
"new_state": {
"available_balance": 0,
"initial_margin_rate": 0,
"maintenance_margin_rate": 0
},
"old_state": {
"available_balance": 0,
"initial_margin_rate": 0,
"maintenance_margin_rate": 0
}
},
{
"currency": "btc",
"new_state": {
"available_balance": 0.98106428,
"initial_margin_rate": 0.03252245,
"maintenance_margin_rate": 0.02710204
},
"old_state": {
"available_balance": 0.553590509,
"initial_margin_rate": 0.45407615,
"maintenance_margin_rate": 0.02862727
}
}
]
}Account Management
private/change_margin_model
Changes the margin model for the authenticated account or a specified subaccount. Margin models determine how margin requirements are calculated (e.g., Standard Margin vs. Portfolio Margin).
Changing the margin model may affect margin requirements, available funds, and trading capabilities. Use the dry_run parameter to preview the impact of the change before applying it.
📖 Related Article: Margin types and usage
Scope: rat#trade or wallet:user:update
GET
/
private
/
change_margin_model
cURL
curl --request GET \
--url https://drb.coinbase.com/api/v2/private/change_margin_model \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "private/change_margin_model",
"params": {
"margin_model": "cross_pm",
"user_id": 3
}
}
'import requests
url = "https://drb.coinbase.com/api/v2/private/change_margin_model"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "private/change_margin_model",
"params": {
"margin_model": "cross_pm",
"user_id": 3
}
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 1,
jsonrpc: '2.0',
method: 'private/change_margin_model',
params: {margin_model: 'cross_pm', user_id: 3}
})
};
fetch('https://drb.coinbase.com/api/v2/private/change_margin_model', 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://drb.coinbase.com/api/v2/private/change_margin_model",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'private/change_margin_model',
'params' => [
'margin_model' => 'cross_pm',
'user_id' => 3
]
]),
CURLOPT_HTTPHEADER => [
"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://drb.coinbase.com/api/v2/private/change_margin_model"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/change_margin_model\",\n \"params\": {\n \"margin_model\": \"cross_pm\",\n \"user_id\": 3\n }\n}")
req, _ := http.NewRequest("GET", url, payload)
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.get("https://drb.coinbase.com/api/v2/private/change_margin_model")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/change_margin_model\",\n \"params\": {\n \"margin_model\": \"cross_pm\",\n \"user_id\": 3\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://drb.coinbase.com/api/v2/private/change_margin_model")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/change_margin_model\",\n \"params\": {\n \"margin_model\": \"cross_pm\",\n \"user_id\": 3\n }\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"jsonrpc": "2.0",
"result": [
{
"currency": "eth",
"new_state": {
"available_balance": 0,
"initial_margin_rate": 0,
"maintenance_margin_rate": 0
},
"old_state": {
"available_balance": 0,
"initial_margin_rate": 0,
"maintenance_margin_rate": 0
}
},
{
"currency": "btc",
"new_state": {
"available_balance": 0.98106428,
"initial_margin_rate": 0.03252245,
"maintenance_margin_rate": 0.02710204
},
"old_state": {
"available_balance": 0.553590509,
"initial_margin_rate": 0.45407615,
"maintenance_margin_rate": 0.02862727
}
}
]
}Query Parameters
Id of a (sub)account - by default current user id is used
Example:
1
Margin model
Available options:
cross_pm, cross_sm, segregated_pm, segregated_sm If true request returns the result without switching the margining model. Default: false
Example:
true
Was this page helpful?
⌘I