Cross-venue cluster membership for a set of markets
Resolves each <provider_id>:<market_id> reference to its equivalence cluster at the requested tier floor and returns the cluster’s other live members. Members listed on a venue whose indexing is switched off, or whose status is settled/closed/resolved, are excluded; a reference whose cluster keeps fewer than two live members after that filter is omitted from the response entirely. Membership is capped at 32 per cluster, with truncated and the stored size stating what was left out.
curl --request GET \
--url https://data.kairos.trade/market-clustersimport requests
url = "https://data.kairos.trade/market-clusters"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://data.kairos.trade/market-clusters', 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://data.kairos.trade/market-clusters",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://data.kairos.trade/market-clusters"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.kairos.trade/market-clusters")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.kairos.trade/market-clusters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"clusters": {},
"count": 123,
"floor": "exact"
}{
"detail": "Invalid provider"
}{
"detail": [
{}
]
}{
"error": "Rate limit exceeded: 100 per 1 minute"
}{
"detail": "Cluster store unavailable"
}Query Parameters
Comma-separated <provider_id>:<market_id> references, max 200. Only the first colon separates the two parts, so market ids may themselves contain colons. Unparseable and duplicate references are dropped silently.
Tier floor to resolve membership at.
exact, semantic Response
Cluster membership keyed by the requested reference.
Keyed by the requested <provider_id>:<market_id> reference. A reference with no cluster, or whose cluster has fewer than two live members after filtering, is absent — the map is never padded with empties.
Show child attributes
Show child attributes
Number of entries in clusters.
exact, semantic Was this page helpful?
curl --request GET \
--url https://data.kairos.trade/market-clustersimport requests
url = "https://data.kairos.trade/market-clusters"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://data.kairos.trade/market-clusters', 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://data.kairos.trade/market-clusters",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://data.kairos.trade/market-clusters"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.kairos.trade/market-clusters")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.kairos.trade/market-clusters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"clusters": {},
"count": 123,
"floor": "exact"
}{
"detail": "Invalid provider"
}{
"detail": [
{}
]
}{
"error": "Rate limit exceeded: 100 per 1 minute"
}{
"detail": "Cluster store unavailable"
}
