curl --request GET \
--url https://api.routeur.app/v1/markets/{venue}/{id}/comparison \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.routeur.app/v1/markets/{venue}/{id}/comparison"
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://api.routeur.app/v1/markets/{venue}/{id}/comparison', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.routeur.app/v1/markets/{venue}/{id}/comparison"
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))
}{
"data": {
"input": {
"side": "yes",
"unit": "usd",
"amount": "<string>"
},
"assessment": {
"outcome": "<string>",
"settlement": "unknown",
"evidence": "pending",
"mapping": "unconfirmed",
"summary": "<string>",
"differences": [
{
"topic": "<string>",
"result": "agree",
"explanation": "<string>",
"citations": [
{
"contract": 0,
"source_id": "<string>",
"quote": "<string>"
}
]
}
],
"receipt": {
"id": "<string>",
"model": "<string>",
"policy": "<string>",
"status": "complete",
"challenge": "<string>",
"assessed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"left_hash": "<string>",
"right_hash": "<string>",
"mapping": "same",
"scope": "<string>",
"findings": [
{
"topic": "<string>",
"result": "agree",
"explanation": "<string>",
"citations": [
{
"contract": 0,
"source_id": "<string>",
"quote": "<string>"
}
]
}
],
"reason": "<string>"
}
},
"options": [
{
"contract": {
"venue": "kalshi",
"id": "<string>",
"title": "<string>",
"yes_label": "<string>",
"no_label": "<string>",
"rules_hash": "<string>",
"evidence_hash": "<string>",
"currency": "<string>",
"payout": "<string>",
"evidence_issues": [
"<string>"
],
"sources": [
{
"id": "<string>",
"version": "<string>",
"text": "<string>",
"url": "<string>"
}
]
},
"quote": {
"side": "yes",
"quantity": "<string>",
"principal": "<string>",
"fee": "<string>",
"total": "<string>",
"unfilled": "<string>",
"as_of": "2023-11-07T05:31:56Z",
"valid_until": "2023-11-07T05:31:56Z",
"status": "current",
"issues": [
"<string>"
],
"account": "not_checked",
"worst_price": "<string>"
}
}
],
"best": 0,
"pricing": {
"kind": "trading_cost",
"currency": "USD",
"assumptions": [
"<string>"
],
"excluded": [
"<string>"
]
},
"reasons": [
"<string>"
],
"compared_at": "2023-11-07T05:31:56Z",
"candidates": [
{
"relation": "equivalent",
"cross_venue": true,
"evidence": [
"<string>"
],
"market": {
"venue": "kalshi",
"id": "<string>",
"event_id": "<string>",
"title": "<string>",
"yes_label": "<string>",
"no_label": "<string>",
"event_mutually_exclusive": true,
"relations": {
"implies": 123,
"implied_by": 123,
"equivalent": 123,
"contradicts": 123,
"overlaps": 123,
"cross_venue": 123
},
"volume_24h_usd": "0.4100",
"trades_24h": 123,
"liquidity": "deep",
"category": "<string>",
"strike": {
"type": "<string>",
"rules_template_hash": "<string>",
"floor": "<string>",
"cap": "<string>",
"custom": {},
"functional": true
},
"game_starts_at": "2023-11-07T05:31:56Z",
"quote": {
"observed_at": "2023-11-07T05:31:56Z",
"yes_ask_usd": "0.4100",
"no_ask_usd": "0.4100",
"yes_bid_usd": "0.4100",
"no_bid_usd": "0.4100",
"price_usd": "0.4100",
"source": "venue"
},
"volume_source": "venue",
"total_volume_usd": "0.4100",
"open_interest_usd": "0.4100",
"spread_usd": "0.4100",
"yes_spread_usd": "0.4100",
"no_spread_usd": "0.4100",
"book_spread_usd": "0.4100",
"book_yes_depth_5c_usd": "0.4100",
"book_no_depth_5c_usd": "0.4100",
"book_imbalance": "0.4100",
"book_at": "2023-11-07T05:31:56Z"
}
}
],
"advantage": "<string>"
}
}Compare a chosen purchase against a cross-venue contract
Account-independent whole-share estimates using current depth, live Kalshi event/series fee overrides, and captured Polymarket fee schedules. Missing, stale, disconnected or limited recorded books trigger bounded public venue reads (four seconds per contract, up to 500 levels). A failed refresh remains unavailable; no stale quote is promoted. Automated settlement assessments bind full source versions. USD/USDC estimates assume parity and funded balances with exclusions in pricing. Missing evidence, unsupported assets, unknown fees and stale or incomplete books prevent a savings recommendation. No order or account is created. Responses are never cached.
curl --request GET \
--url https://api.routeur.app/v1/markets/{venue}/{id}/comparison \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.routeur.app/v1/markets/{venue}/{id}/comparison"
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://api.routeur.app/v1/markets/{venue}/{id}/comparison', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.routeur.app/v1/markets/{venue}/{id}/comparison"
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))
}{
"data": {
"input": {
"side": "yes",
"unit": "usd",
"amount": "<string>"
},
"assessment": {
"outcome": "<string>",
"settlement": "unknown",
"evidence": "pending",
"mapping": "unconfirmed",
"summary": "<string>",
"differences": [
{
"topic": "<string>",
"result": "agree",
"explanation": "<string>",
"citations": [
{
"contract": 0,
"source_id": "<string>",
"quote": "<string>"
}
]
}
],
"receipt": {
"id": "<string>",
"model": "<string>",
"policy": "<string>",
"status": "complete",
"challenge": "<string>",
"assessed_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"left_hash": "<string>",
"right_hash": "<string>",
"mapping": "same",
"scope": "<string>",
"findings": [
{
"topic": "<string>",
"result": "agree",
"explanation": "<string>",
"citations": [
{
"contract": 0,
"source_id": "<string>",
"quote": "<string>"
}
]
}
],
"reason": "<string>"
}
},
"options": [
{
"contract": {
"venue": "kalshi",
"id": "<string>",
"title": "<string>",
"yes_label": "<string>",
"no_label": "<string>",
"rules_hash": "<string>",
"evidence_hash": "<string>",
"currency": "<string>",
"payout": "<string>",
"evidence_issues": [
"<string>"
],
"sources": [
{
"id": "<string>",
"version": "<string>",
"text": "<string>",
"url": "<string>"
}
]
},
"quote": {
"side": "yes",
"quantity": "<string>",
"principal": "<string>",
"fee": "<string>",
"total": "<string>",
"unfilled": "<string>",
"as_of": "2023-11-07T05:31:56Z",
"valid_until": "2023-11-07T05:31:56Z",
"status": "current",
"issues": [
"<string>"
],
"account": "not_checked",
"worst_price": "<string>"
}
}
],
"best": 0,
"pricing": {
"kind": "trading_cost",
"currency": "USD",
"assumptions": [
"<string>"
],
"excluded": [
"<string>"
]
},
"reasons": [
"<string>"
],
"compared_at": "2023-11-07T05:31:56Z",
"candidates": [
{
"relation": "equivalent",
"cross_venue": true,
"evidence": [
"<string>"
],
"market": {
"venue": "kalshi",
"id": "<string>",
"event_id": "<string>",
"title": "<string>",
"yes_label": "<string>",
"no_label": "<string>",
"event_mutually_exclusive": true,
"relations": {
"implies": 123,
"implied_by": 123,
"equivalent": 123,
"contradicts": 123,
"overlaps": 123,
"cross_venue": 123
},
"volume_24h_usd": "0.4100",
"trades_24h": 123,
"liquidity": "deep",
"category": "<string>",
"strike": {
"type": "<string>",
"rules_template_hash": "<string>",
"floor": "<string>",
"cap": "<string>",
"custom": {},
"functional": true
},
"game_starts_at": "2023-11-07T05:31:56Z",
"quote": {
"observed_at": "2023-11-07T05:31:56Z",
"yes_ask_usd": "0.4100",
"no_ask_usd": "0.4100",
"yes_bid_usd": "0.4100",
"no_bid_usd": "0.4100",
"price_usd": "0.4100",
"source": "venue"
},
"volume_source": "venue",
"total_volume_usd": "0.4100",
"open_interest_usd": "0.4100",
"spread_usd": "0.4100",
"yes_spread_usd": "0.4100",
"no_spread_usd": "0.4100",
"book_spread_usd": "0.4100",
"book_yes_depth_5c_usd": "0.4100",
"book_no_depth_5c_usd": "0.4100",
"book_imbalance": "0.4100",
"book_at": "2023-11-07T05:31:56Z"
}
}
],
"advantage": "<string>"
}
}Authorizations
Query Parameters
yes, no usd, shares A venue:market_id from the returned candidate list; defaults to the strongest graph relation.
Response
Conditional purchase comparison, automated settlement findings and quote quality, with explicit assumptions and blocking reasons.
Show child attributes
Show child attributes