curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId} \
--header 'X-Monaco-Signature: <api-key>'import requests
url = "https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}"
headers = {"X-Monaco-Signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Monaco-Signature': '<api-key>'}};
fetch('https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}', 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/copy-trading/follows/{followId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Monaco-Signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}")
.header("X-Monaco-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Monaco-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"follow": {
"followId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"leader": {
"walletAddress": "0x1234567890abcdef1234567890abcdef12345678",
"handle": "alpha_trader",
"display": "alpha_trader"
},
"status": "ACTIVE",
"marginModePolicy": "<string>",
"sizingMode": "<string>",
"sizingParam": "<string>",
"leverageMode": "<string>",
"fixedLeverage": "<string>",
"allocation": "<string>",
"slPct": "<string>",
"copyExisting": true,
"tradingPairIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"consecutiveSkips": 123,
"copyRiskBucketId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startedAt": "<string>",
"stoppedAt": "<string>",
"stopReason": "<string>"
},
"recentSkips": [
{
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason": "INSUFFICIENT_MARGIN",
"requestedQuantity": "<string>",
"skippedAt": "<string>"
}
],
"copyAccountEquity": "1042.75"
}Get one of your follows
Get one of your follows.
The follow plus its most recent skipped mirrors (up to 100, newest first). 404 unless the follow is yours.
curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId} \
--header 'X-Monaco-Signature: <api-key>'import requests
url = "https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}"
headers = {"X-Monaco-Signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Monaco-Signature': '<api-key>'}};
fetch('https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}', 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/copy-trading/follows/{followId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Monaco-Signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}")
.header("X-Monaco-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/copy-trading/follows/{followId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Monaco-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"follow": {
"followId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"leader": {
"walletAddress": "0x1234567890abcdef1234567890abcdef12345678",
"handle": "alpha_trader",
"display": "alpha_trader"
},
"status": "ACTIVE",
"marginModePolicy": "<string>",
"sizingMode": "<string>",
"sizingParam": "<string>",
"leverageMode": "<string>",
"fixedLeverage": "<string>",
"allocation": "<string>",
"slPct": "<string>",
"copyExisting": true,
"tradingPairIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"consecutiveSkips": 123,
"copyRiskBucketId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"startedAt": "<string>",
"stoppedAt": "<string>",
"stopReason": "<string>"
},
"recentSkips": [
{
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reason": "INSUFFICIENT_MARGIN",
"requestedQuantity": "<string>",
"skippedAt": "<string>"
}
],
"copyAccountEquity": "1042.75"
}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
Response
OK
The follow.
Show child attributes
Show child attributes
Most recent skipped mirrors, newest first (up to 100).
Show child attributes
Show child attributes
The copy account's equity at the engine's marks, in quote units: its collateral plus the unrealized PnL of its positions. Absent when the engine could not be read. A balance, not trading PnL
"1042.75"
Was this page helpful?

