curl --request GET \
--url https://partners.centaur.io/api/v1/traders \
--header 'x-api-key: <api-key>'import requests
url = "https://partners.centaur.io/api/v1/traders"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://partners.centaur.io/api/v1/traders', 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://partners.centaur.io/api/v1/traders",
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-api-key: <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://partners.centaur.io/api/v1/traders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<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://partners.centaur.io/api/v1/traders")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://partners.centaur.io/api/v1/traders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"results": [
{
"id": 123,
"name": "<string>",
"slug": "<string>",
"avatarUrl": "<string>",
"tradeCount": 123,
"source": {
"platform": "TELEGRAM",
"sourceIdentityId": "<string>",
"displayName": "<string>",
"handle": "<string>",
"avatarUrl": "<string>",
"profileUrl": "<string>",
"audienceCount": 123
}
}
],
"meta": {
"hasMore": true,
"nextCursor": "<string>"
}
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "INVALID_CURSOR",
"message": "Malformed cursor"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Unauthorized"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "Forbidden"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Unauthorized",
"details": "<unknown>"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "AUTHENTICATION_UNAVAILABLE",
"message": "Authentication is temporarily unavailable"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}List traders
curl --request GET \
--url https://partners.centaur.io/api/v1/traders \
--header 'x-api-key: <api-key>'import requests
url = "https://partners.centaur.io/api/v1/traders"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://partners.centaur.io/api/v1/traders', 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://partners.centaur.io/api/v1/traders",
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-api-key: <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://partners.centaur.io/api/v1/traders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<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://partners.centaur.io/api/v1/traders")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://partners.centaur.io/api/v1/traders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"results": [
{
"id": 123,
"name": "<string>",
"slug": "<string>",
"avatarUrl": "<string>",
"tradeCount": 123,
"source": {
"platform": "TELEGRAM",
"sourceIdentityId": "<string>",
"displayName": "<string>",
"handle": "<string>",
"avatarUrl": "<string>",
"profileUrl": "<string>",
"audienceCount": 123
}
}
],
"meta": {
"hasMore": true,
"nextCursor": "<string>"
}
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "INVALID_CURSOR",
"message": "Malformed cursor"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Unauthorized"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "Forbidden"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Unauthorized",
"details": "<unknown>"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}{
"success": false,
"error": {
"code": "AUTHENTICATION_UNAVAILABLE",
"message": "Authentication is temporarily unavailable"
},
"requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}Authorizations
API key issued by Centaur.
Query Parameters
Case-insensitive partial match against trader name or slug.
1Filter to specific trader IDs.
Filter to traders with eligible positions on specific asset IDs.
Filter to traders whose source platform is TELEGRAM or X.
Minimum tradeCount required for a trader to appear in discovery. tradeCount is the eligible visible position count after asset and position-open time filters. Defaults to 3; pass 0 for the full visible directory.
x >= 0Inclusive ISO-8601 lower bound on position open time for trader discovery tradeCount and minTrades. This does not compute performance metrics; use trader stats for performance.
Inclusive ISO-8601 upper bound on position open time for trader discovery tradeCount and minTrades. This does not compute performance metrics; use trader stats for performance.
Maximum number of rows to return.
1 <= x <= 200Forward pagination cursor from meta.nextCursor.
1