curl --request POST \
--url https://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out \
--header 'Content-Type: application/json' \
--header 'X-Monaco-Signature: <api-key>' \
--data '
{
"marginAccountId": "<string>",
"asset": "<string>",
"amount": "<string>",
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"strategyKey": "<string>",
"marginMode": "<string>"
}
'import requests
url = "https://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out"
payload = {
"marginAccountId": "<string>",
"asset": "<string>",
"amount": "<string>",
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"strategyKey": "<string>",
"marginMode": "<string>"
}
headers = {
"X-Monaco-Signature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Monaco-Signature': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
marginAccountId: '<string>',
asset: '<string>',
amount: '<string>',
tradingPairId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
strategyKey: '<string>',
marginMode: '<string>'
})
};
fetch('https://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out', 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://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out",
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([
'marginAccountId' => '<string>',
'asset' => '<string>',
'amount' => '<string>',
'tradingPairId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'strategyKey' => '<string>',
'marginMode' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Monaco-Signature: <api-key>"
],
]);
$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://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out"
payload := strings.NewReader("{\n \"marginAccountId\": \"<string>\",\n \"asset\": \"<string>\",\n \"amount\": \"<string>\",\n \"tradingPairId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"strategyKey\": \"<string>\",\n \"marginMode\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Monaco-Signature", "<api-key>")
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://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out")
.header("X-Monaco-Signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"marginAccountId\": \"<string>\",\n \"asset\": \"<string>\",\n \"amount\": \"<string>\",\n \"tradingPairId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"strategyKey\": \"<string>\",\n \"marginMode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Monaco-Signature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"marginAccountId\": \"<string>\",\n \"asset\": \"<string>\",\n \"amount\": \"<string>\",\n \"tradingPairId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"strategyKey\": \"<string>\",\n \"marginMode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"movementId": "<string>",
"marginAccountId": "<string>",
"asset": "<string>",
"amount": "<string>",
"status": "<string>",
"newEquity": "<string>",
"newTotalCollateralValue": "<string>",
"newWithdrawableCollateral": "<string>",
"strategyKey": "<string>"
}Post apiv1marginaccounts collateraltransfer out
curl --request POST \
--url https://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out \
--header 'Content-Type: application/json' \
--header 'X-Monaco-Signature: <api-key>' \
--data '
{
"marginAccountId": "<string>",
"asset": "<string>",
"amount": "<string>",
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"strategyKey": "<string>",
"marginMode": "<string>"
}
'import requests
url = "https://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out"
payload = {
"marginAccountId": "<string>",
"asset": "<string>",
"amount": "<string>",
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"strategyKey": "<string>",
"marginMode": "<string>"
}
headers = {
"X-Monaco-Signature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Monaco-Signature': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
marginAccountId: '<string>',
asset: '<string>',
amount: '<string>',
tradingPairId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
strategyKey: '<string>',
marginMode: '<string>'
})
};
fetch('https://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out', 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://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out",
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([
'marginAccountId' => '<string>',
'asset' => '<string>',
'amount' => '<string>',
'tradingPairId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'strategyKey' => '<string>',
'marginMode' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Monaco-Signature: <api-key>"
],
]);
$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://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out"
payload := strings.NewReader("{\n \"marginAccountId\": \"<string>\",\n \"asset\": \"<string>\",\n \"amount\": \"<string>\",\n \"tradingPairId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"strategyKey\": \"<string>\",\n \"marginMode\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Monaco-Signature", "<api-key>")
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://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out")
.header("X-Monaco-Signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"marginAccountId\": \"<string>\",\n \"asset\": \"<string>\",\n \"amount\": \"<string>\",\n \"tradingPairId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"strategyKey\": \"<string>\",\n \"marginMode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/margin/accounts/{marginAccountId}/collateral/transfer-out")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Monaco-Signature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"marginAccountId\": \"<string>\",\n \"asset\": \"<string>\",\n \"amount\": \"<string>\",\n \"tradingPairId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"strategyKey\": \"<string>\",\n \"marginMode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"movementId": "<string>",
"marginAccountId": "<string>",
"asset": "<string>",
"amount": "<string>",
"status": "<string>",
"newEquity": "<string>",
"newTotalCollateralValue": "<string>",
"newWithdrawableCollateral": "<string>",
"strategyKey": "<string>"
}Authorizations
Ed25519 session-key request signing. Every authenticated request carries three headers: X-Monaco-PublicKey (64-char lowercase-hex session public key), X-Monaco-Timestamp (Unix milliseconds, within 30s of server time), and X-Monaco-Signature (hex ed25519 signature). The signature is over METHOD\npath?query\ntimestamp_ms\nSHA256_hex(body), where the body hash is the SHA-256 of the empty byte string when there is no body. Obtain the session keypair from POST /api/v1/auth/challenge followed by POST /api/v1/auth/verify.
Path Parameters
Parent margin account UUID that releases collateral.
Body
Parent margin account UUID that releases collateral.
Optional trading pair UUID used to release collateral from an isolated risk bucket under the parent margin account. If omitted, the transfer applies to the parent margin account only.
Optional strategy key echoed in responses when callers scope a risk bucket.
Risk bucket mode. Defaults to ISOLATED, which is selected by tradingPairId. Pass CROSS to release from the account's cross risk bucket, which has no trading pair and so cannot be named any other way. Values: ISOLATED, CROSS.
Response
OK
The largest amount a further transfer-out will accept after this one.
See MarginAccountSummary.withdrawable_collateral: this is an
allocation-bounded figure, not clamped equity headroom.
Was this page helpful?

