API reference
Get route execution times
GET
/v2/swaps/route-statsRead 30-day measured execution medians by token and network.
Authentication: None. This route is public.
#Response
200 returns an object with:
asOf· string (date-time) · requiredwindowStart· string (date-time) · requiredwindowDays·30· requiredcohort·"completed_at"· requiredbasis·"projection_system_seconds"· required — Same systemSeconds as dashboard performance: detected deposit to last recorded workflow step (workflow update when no step end exists). Excludes customer wait before detection; not wallet spendability.minimumSamples·5· requiredroutes· array of object · requiredfromChainId· integer · requiredfromToken· string · requiredtoChainId· integer · requiredtoToken· string · requiredsampleCount· integer · requiredmedianSeconds· number or null · required
Errors use the standard error envelope: branch on code, never on the message.
#Example
curl
curl 'https://api-beta.wagyu.xyz/v2/swaps/route-stats'JavaScript
const res = await fetch('https://api-beta.wagyu.xyz/v2/swaps/route-stats'
);
const data = await res.json();Python
import requests
res = requests.get('https://api-beta.wagyu.xyz/v2/swaps/route-stats', timeout=30)
data = res.json()Response · 200 · captured 4 Nov 2026, 08:24 UTC
{
"asOf": "2026-11-04T08:22:28.664Z",
"windowStart": "2026-10-05T08:22:28.664Z",
"windowDays": 30,
"cohort": "completed_at",
"basis": "projection_system_seconds",
"minimumSamples": 5,
"routes": [
{
"fromChainId": 0,
"fromToken": "XMR",
"toChainId": 1,
"toToken": "0x0000000000000000000000000000000000000000",
"sampleCount": 1154,
"medianSeconds": 828.5999999999999
},
{
"fromChainId": 0,
"fromToken": "XMR",
"toChainId": 1,
"toToken": "0x6b175474e89094c44da98b954eedeac495271d0f",
"sampleCount": 215,
"medianSeconds": 935.5
},
{
"fromChainId": 0,
"fromToken": "XMR",
"toChainId": 1,
"toToken": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"sampleCount": 326,
"medianSeconds": 863.45
}
]
}