List Copiers
List every trade copier on your login, on or off. Each item has the fields in Copier fields.
Elite
The Management API requires an Elite subscription. See Authentication.
- NT8
- Tradovate
Endpoint
GET https://app.crosstrade.io/v1/api/manage/nt8/copiers
Headers
| Name | Required | Value |
|---|---|---|
| Authorization | Yes | Bearer <your API token> |
| If-None-Match | No | ETag from a previous list. Returns 304 with no body if nothing changed |
Code examples
- Python
- cURL
import requests
resp = requests.get(
"https://app.crosstrade.io/v1/api/manage/nt8/copiers",
headers={"Authorization": "Bearer YOUR_TOKEN"},
)
print(resp.status_code, resp.json())
curl "https://app.crosstrade.io/v1/api/manage/nt8/copiers" \
-H "Authorization: Bearer YOUR_TOKEN"
Responses
- 200
- Other errors
{
"success": true,
"data": [
{
"id": "4b1f0c9e2d7a4c55b1e0",
"nickname": null,
"active": false,
"mode": "order",
"leader": "Sim101",
"type": "single",
"groupName": null,
"followers": [
{
"account": "DemoAccount"
}
],
"sizing": {
"method": "ratio",
"ratio": 1,
"quantity": null,
"maxQuantity": null
},
"inverse": false,
"fillsOnly": false,
"instruments": [
"*"
],
"symbolReplacements": {},
"stealth": true,
"tandem": false,
"autoSync": {
"enabled": true,
"intervalSeconds": 10
},
"syncCorrection": {
"cooldownSeconds": 300,
"maxAttempts": 1
},
"reconnectDelayMs": 10000,
"strategyTagMode": "override",
"created": "2026-09-01T13:02:11Z",
"updated": "2026-10-02T14:31:07Z"
}
],
"meta": {
"requestId": "req_9f2c1a0b7d3e4f51",
"count": 1,
"etag": "\"c2:Tm90UmVhbEV0YWcwMw\""
}
}
| Status | error | When |
|---|---|---|
| 304 | If-None-Match matched; no body | |
| 400 | unexpected_body, unknown_parameter | A body or an unknown query parameter was sent |
| 401 | unauthorized | Missing or invalid token |
| 403 | elite_required, not_available | See Authentication |
| 429 | rate_limited, too_many_concurrent_requests | See Rate limits |
| 503 | management_unavailable, management_busy, storage_unavailable | See Errors |
Endpoint
GET https://app.crosstrade.io/v1/api/manage/tradovate/copiers
Headers
| Name | Required | Value |
|---|---|---|
| Authorization | Yes | Bearer <your API token> |
| If-None-Match | No | ETag from a previous list. Returns 304 with no body if nothing changed |
Code examples
- Python
- cURL
import requests
resp = requests.get(
"https://app.crosstrade.io/v1/api/manage/tradovate/copiers",
headers={"Authorization": "Bearer YOUR_TOKEN"},
)
print(resp.status_code, resp.json())
curl "https://app.crosstrade.io/v1/api/manage/tradovate/copiers" \
-H "Authorization: Bearer YOUR_TOKEN"
Responses
- 200
- Other errors
{
"success": true,
"data": [
{
"id": "9c3e5a7b1d2f4e6a8b0c",
"nickname": null,
"active": false,
"mode": "signal",
"leader": "DEMO12345678",
"type": "single",
"groupName": null,
"followers": [
{
"account": "DEMO87654321",
"environment": "demo"
}
],
"sizing": {
"method": "ratio",
"ratio": 1,
"quantity": null,
"maxQuantity": null
},
"inverse": false,
"fillsOnly": false,
"instruments": [
"*"
],
"symbolReplacements": {},
"stealth": true,
"tandem": false,
"autoSync": {
"enabled": true
},
"syncCorrection": {
"cooldownSeconds": 300,
"maxAttempts": 1
},
"created": "2026-09-01T13:02:11Z",
"updated": "2026-10-02T14:31:07Z"
}
],
"meta": {
"requestId": "req_9f2c1a0b7d3e4f51",
"count": 1,
"etag": "\"c2:Tm90UmVhbEV0YWcwMw\""
}
}
| Status | error | When |
|---|---|---|
| 304 | If-None-Match matched; no body | |
| 400 | unexpected_body, unknown_parameter | A body or an unknown query parameter was sent |
| 401 | unauthorized | Missing or invalid token |
| 403 | elite_required, not_available | See Authentication |
| 429 | rate_limited, too_many_concurrent_requests | See Rate limits |
| 503 | management_unavailable, management_busy, storage_unavailable | See Errors |
Notes
- The list is not paginated.