Matched markets with identifiers, outcomes, and current reference prices
Returns the same verified, live-filtered pair catalog as /matched-markets, with details and pricing attached to both sides. Unsupported markets, missing quotes, and individual venue failures produce pricing: null without changing pair membership or pagination. Prices use each venue’s API scale and are reference prices, not executable bids or asks. The page is capped at 150 pairs to bound request cost. Responses are not cacheable.
curl --request GET \
--url https://data.kairos.trade/matched-markets/enrichedimport requests
url = "https://data.kairos.trade/matched-markets/enriched"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://data.kairos.trade/matched-markets/enriched', 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/matched-markets/enriched",
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/matched-markets/enriched"
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/matched-markets/enriched")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.kairos.trade/matched-markets/enriched")
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{
"pairs": [
{
"a": {
"provider_id": 2,
"provider": "polymarket",
"market_id": "587234",
"title": "Will the Celtics win?",
"ticker": "<string>",
"image": "<string>",
"icon": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"category": "<string>",
"details": {
"market_id": "<string>",
"provider_id": 123,
"event_id": "<string>",
"name": "<string>",
"category": "<string>",
"status": "<string>",
"condition_id": "<string>",
"token_id": "<string>",
"token_ids": [
"<string>"
],
"outcomes": [
"<string>"
]
},
"pricing": {
"price": 123,
"volume": "<string>",
"liquidity": 123
}
},
"b": {
"provider_id": 2,
"provider": "polymarket",
"market_id": "587234",
"title": "Will the Celtics win?",
"ticker": "<string>",
"image": "<string>",
"icon": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"category": "<string>",
"details": {
"market_id": "<string>",
"provider_id": 123,
"event_id": "<string>",
"name": "<string>",
"category": "<string>",
"status": "<string>",
"condition_id": "<string>",
"token_id": "<string>",
"token_ids": [
"<string>"
],
"outcomes": [
"<string>"
]
},
"pricing": {
"price": 123,
"volume": "<string>",
"liquidity": 123
}
},
"similarity": 0.94,
"updated_at": "2023-11-07T05:31:56Z"
}
],
"count": 42,
"limit": 50,
"offset": 0,
"has_more": true,
"next_cursor": "<string>",
"catalog_version": "<string>",
"total": 1284
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": [
{}
]
}{
"error": "Rate limit exceeded: 100 per 1 minute"
}{
"detail": "<string>"
}Query Parameters
Maximum number of enriched pairs to return.
1 <= x <= 150Legacy pagination offset. Do not combine with cursor.
x >= 0Opaque keyset cursor. Send an empty value on the first page, then pass each response next_cursor. A 409 requires restarting the walk.
16384Filter to pairs where either side belongs to this provider.
Minimum similarity, clamped server-side to at least 0.82.
0 <= x <= 1Offset-mode sort column. Cursor mode orders by canonical pair identity.
similarity, updated_at Include the total matching-pair count under pre-live filters.
Response
A page of verified pairs with details and best-effort reference pricing.
Show child attributes
Show child attributes
Number of pairs on this page after live-status post-filtering (may be less than limit).
42
50
0
Whether the underlying page (before live-status post-filtering) was full — not a strict function of count.
Opaque cursor for the next keyset page. Present when cursor mode is requested.
Full-set fingerprint shared by every page in one cursor walk.
Only present when include_total=true. Total matching-pair count under the pre-live-filter query filters.
1284
Was this page helpful?
curl --request GET \
--url https://data.kairos.trade/matched-markets/enrichedimport requests
url = "https://data.kairos.trade/matched-markets/enriched"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://data.kairos.trade/matched-markets/enriched', 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/matched-markets/enriched",
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/matched-markets/enriched"
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/matched-markets/enriched")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.kairos.trade/matched-markets/enriched")
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{
"pairs": [
{
"a": {
"provider_id": 2,
"provider": "polymarket",
"market_id": "587234",
"title": "Will the Celtics win?",
"ticker": "<string>",
"image": "<string>",
"icon": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"category": "<string>",
"details": {
"market_id": "<string>",
"provider_id": 123,
"event_id": "<string>",
"name": "<string>",
"category": "<string>",
"status": "<string>",
"condition_id": "<string>",
"token_id": "<string>",
"token_ids": [
"<string>"
],
"outcomes": [
"<string>"
]
},
"pricing": {
"price": 123,
"volume": "<string>",
"liquidity": 123
}
},
"b": {
"provider_id": 2,
"provider": "polymarket",
"market_id": "587234",
"title": "Will the Celtics win?",
"ticker": "<string>",
"image": "<string>",
"icon": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"category": "<string>",
"details": {
"market_id": "<string>",
"provider_id": 123,
"event_id": "<string>",
"name": "<string>",
"category": "<string>",
"status": "<string>",
"condition_id": "<string>",
"token_id": "<string>",
"token_ids": [
"<string>"
],
"outcomes": [
"<string>"
]
},
"pricing": {
"price": 123,
"volume": "<string>",
"liquidity": 123
}
},
"similarity": 0.94,
"updated_at": "2023-11-07T05:31:56Z"
}
],
"count": 42,
"limit": 50,
"offset": 0,
"has_more": true,
"next_cursor": "<string>",
"catalog_version": "<string>",
"total": 1284
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": [
{}
]
}{
"error": "Rate limit exceeded: 100 per 1 minute"
}{
"detail": "<string>"
}
