cURL
curl --request GET \
--url https://drb.coinbase.com/api/v2/private/get_margins \
--header 'Content-Type: application/json' \
--data '
{
"id": 7,
"jsonrpc": "2.0",
"method": "private/get_margins",
"params": {
"amount": 10000,
"instrument_name": "BTC-PERPETUAL",
"price": 3725
}
}
'import requests
url = "https://drb.coinbase.com/api/v2/private/get_margins"
payload = {
"id": 7,
"jsonrpc": "2.0",
"method": "private/get_margins",
"params": {
"amount": 10000,
"instrument_name": "BTC-PERPETUAL",
"price": 3725
}
}
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: 7,
jsonrpc: '2.0',
method: 'private/get_margins',
params: {amount: 10000, instrument_name: 'BTC-PERPETUAL', price: 3725}
})
};
fetch('https://drb.coinbase.com/api/v2/private/get_margins', 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/get_margins",
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' => 7,
'jsonrpc' => '2.0',
'method' => 'private/get_margins',
'params' => [
'amount' => 10000,
'instrument_name' => 'BTC-PERPETUAL',
'price' => 3725
]
]),
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/get_margins"
payload := strings.NewReader("{\n \"id\": 7,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/get_margins\",\n \"params\": {\n \"amount\": 10000,\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 3725\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/get_margins")
.header("Content-Type", "application/json")
.body("{\n \"id\": 7,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/get_margins\",\n \"params\": {\n \"amount\": 10000,\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 3725\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://drb.coinbase.com/api/v2/private/get_margins")
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\": 7,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/get_margins\",\n \"params\": {\n \"amount\": 10000,\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 3725\n }\n}"
response = http.request(request)
puts response.read_body{
"id": 7,
"jsonrpc": "2.0",
"result": {
"buy": 0.0219949,
"max_price": 3759.24,
"min_price": 3684.8,
"sell": 0
}
}Trading
private/get_margins
Calculates margin requirements for a hypothetical order on a given instrument. Returns initial margin and maintenance margin for the specified instrument, quantity, and price.
This method is useful for estimating margin requirements before placing an order, helping to ensure sufficient funds are available and understanding the margin impact of potential trades.
Scope: rat#view or wallet:accounts:read
GET
/
private
/
get_margins
cURL
curl --request GET \
--url https://drb.coinbase.com/api/v2/private/get_margins \
--header 'Content-Type: application/json' \
--data '
{
"id": 7,
"jsonrpc": "2.0",
"method": "private/get_margins",
"params": {
"amount": 10000,
"instrument_name": "BTC-PERPETUAL",
"price": 3725
}
}
'import requests
url = "https://drb.coinbase.com/api/v2/private/get_margins"
payload = {
"id": 7,
"jsonrpc": "2.0",
"method": "private/get_margins",
"params": {
"amount": 10000,
"instrument_name": "BTC-PERPETUAL",
"price": 3725
}
}
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: 7,
jsonrpc: '2.0',
method: 'private/get_margins',
params: {amount: 10000, instrument_name: 'BTC-PERPETUAL', price: 3725}
})
};
fetch('https://drb.coinbase.com/api/v2/private/get_margins', 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/get_margins",
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' => 7,
'jsonrpc' => '2.0',
'method' => 'private/get_margins',
'params' => [
'amount' => 10000,
'instrument_name' => 'BTC-PERPETUAL',
'price' => 3725
]
]),
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/get_margins"
payload := strings.NewReader("{\n \"id\": 7,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/get_margins\",\n \"params\": {\n \"amount\": 10000,\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 3725\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/get_margins")
.header("Content-Type", "application/json")
.body("{\n \"id\": 7,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/get_margins\",\n \"params\": {\n \"amount\": 10000,\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 3725\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://drb.coinbase.com/api/v2/private/get_margins")
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\": 7,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/get_margins\",\n \"params\": {\n \"amount\": 10000,\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 3725\n }\n}"
response = http.request(request)
puts response.read_body{
"id": 7,
"jsonrpc": "2.0",
"result": {
"buy": 0.0219949,
"max_price": 3759.24,
"min_price": 3684.8,
"sell": 0
}
}Query Parameters
Instrument name Unique instrument identifier
Example:
"BTC-PERPETUAL"
It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
Price
Example:
3725
Was this page helpful?
⌘I