Contract
{
"type": "object",
"required": [
"address"
],
"properties": {
"to": {
"type": "string",
"minLength": 1,
"description": "Window end, inclusive, bounds close_time: Unix seconds, an ISO datetime, or a bare date — a bare date means the END of that UTC day, so from=X&to=X covers the whole day X. Defaults to now. Example: 2026-03-31."
},
"dex": {
"enum": [
"main_dex",
"xyz",
"flx",
"vntl",
"hyna",
"km",
"abcd",
"cash",
"para",
"mkts"
],
"type": "string",
"description": "Market scope: main_dex for the native market only, omit to aggregate across ALL markets, or a builder market — one of: xyz, flx, vntl, hyna, km, abcd, cash, para, mkts. NOTE: the omit default differs from /leaderboard, where omitting dex means the native market only."
},
"from": {
"type": "string",
"minLength": 1,
"description": "Window start, bounds close_time: Unix seconds, an ISO datetime (2026-03-01T12:00:00Z), or a bare date (= midnight UTC). Omit for full history. Example: 2026-03-01."
},
"address": {
"type": "string",
"minLength": 1,
"description": "Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported."
},
"group_by": {
"enum": [
"day",
"symbol",
"direction",
"size_bucket",
"hold_bucket"
],
"type": "string",
"default": "day",
"description": "Dimension to roll up by. day = UTC calendar day (the P&L calendar / equity-curve source); symbol = per market; direction = long vs short; size_bucket = notional-USD tiers; hold_bucket = holding-time tiers. Defaults to \"day\"."
},
"fill_gaps": {
"type": "boolean",
"default": false,
"description": "group_by=day only: emit a zero row for every no-trade UTC day in the window so the calendar is dense. Requires from (a bounded window); ignored for other group_by values. Defaults to false."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Value of the grouping dimension. With group_by=day (the only group_by value observed in these fixtures) this is a UTC date string like '2026-03-02'; for the other group_by values (symbol, direction, size_bucket, hold_bucket) it would carry that dimension's label -- unconfirmed from these fixtures."
},
"fees": {
"type": "number",
"description": "Trading fees for the group, USD. Negative values were observed (fee rebates or credits), so do not assume this is always a positive cost."
},
"avg_win": {
"type": "number",
"description": "Average USD profit across the group's winning trades. Present on rows that had at least one winner, absent on an all-loss day."
},
"net_pnl": {
"type": "number",
"description": "Profit or loss after fees and funding, USD. Negative on losing days."
},
"avg_loss": {
"type": "number",
"description": "Average USD loss across the group's losing trades (negative). Present only on rows whose day had at least one losing trade; absent (not null) on all-win days -- it was observed on fewer rows than avg_win."
},
"win_rate": {
"type": "number",
"description": "Fraction of the group's closed trades that were winners, 0 to 1 (e.g. 0.4 = 40%). Observed 0 on an all-loss day, 1 on an all-win day."
},
"gross_pnl": {
"type": "number",
"description": "Gross profit or loss before fees and funding, USD. Negative on losing days."
},
"volume_usd": {
"type": "number",
"description": "Total notional volume traded in the group, USD."
},
"funding_pnl": {
"type": "number",
"description": "Funding received or paid, USD. Observed 0 on every row of the covered fixture; other values are unconfirmed from these fixtures."
},
"trade_count": {
"type": "integer",
"description": "Number of closed trades in the group. Observed 1 to 10 per day in the covered fixture."
},
"funding_status": {
"type": "string",
"description": "Availability of the group's funding data. Observed only as 'unavailable' on every row; other values are unconfirmed from these fixtures."
}
},
"additionalProperties": false
},
"description": "One entry per group. Empty when the window matches no closed trades (see meta.watermark)."
},
"meta": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Row limit applied. 30 on the covered fixture; 0 on the empty fixture."
},
"total": {
"type": "integer",
"description": "Total group count for the query. 30 on the covered fixture; 0 on the empty fixture."
},
"cached": {
"type": "boolean",
"description": "Whether this response was served from the provider's cache. false on both fixtures observed."
},
"offset": {
"type": "integer",
"description": "Paging offset. 0 on both fixtures observed."
},
"watermark": {
"type": "integer",
"description": "Unix-seconds timestamp marking the dataset's coverage cutoff. A from/to window entirely after this time returns zero rows (the covered dataset ends mid-April 2026; a mid-August 2026 window legitimately returned data: [])."
}
},
"description": "Paging and coverage metadata.",
"additionalProperties": false
}
},
"description": "The trade-aggregate response, as returned at routing.responseResultPath ($.output).",
"additionalProperties": false
}Pricing
Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.
Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.
| Charge | Rate |
|---|---|
Per call Flat, regardless of what comes back | $0.03276 |
- Cost basis
- Not recorded
This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.
- Updated
- Sep 25, 2026
