Contract
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"to": {
"type": "string",
"minLength": 1,
"description": "End of time range. Accepts Unix seconds or date string (YYYY-MM-DD). Example: 2026-03-01."
},
"from": {
"type": "string",
"minLength": 1,
"description": "Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD). Example: 2026-01-01."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc",
"description": "Sort order. Example: desc. Defaults to \"desc\"."
},
"symbol": {
"enum": [
"BTC",
"ETH",
"XRP",
"SOL",
"HYPE"
],
"type": "string",
"description": "Token symbol. Can be BTC, ETH, XRP, SOL, or HYPE. Example: BTC."
},
"sort_by": {
"enum": [
"flow_usd",
"timestamp"
],
"type": "string",
"default": "timestamp",
"description": "Field to sort results by. Example: timestamp. Defaults to \"timestamp\"."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"etfs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "ETF ticker, e.g. IBIT, FBTC, BITB, ARKB, BTCO, EZBC, BRRR, HODL, BTCW, GBTC."
},
"flow_usd": {
"type": "number",
"description": "That ETF's own USD flow for the day. Observed positive, negative, and zero."
}
},
"additionalProperties": false
},
"description": "Per-ETF breakdown of that day's flow, one entry per tracked ticker."
},
"symbol": {
"type": "string",
"description": "Echoes the requested token symbol."
},
"settled": {
"type": "boolean",
"description": "Whether that day's flow figure is finalized. Observed true on every row of the one non-empty fixture; a false value was never observed."
},
"flow_usd": {
"type": "number",
"description": "Net USD flow across all tracked ETFs for that day. Observed positive, negative, and zero."
},
"price_usd": {
"type": "number",
"description": "Token price on that day."
},
"timestamp": {
"type": "integer",
"description": "Unix seconds marking the start of the day."
}
},
"additionalProperties": false
},
"description": "One entry per day. Observed non-empty (32 days) for BTC over a Jan-Mar 2026 range, and genuinely empty for a HYPE query over Jan 2026 -- a token/range combination with no spot ETF flow recorded returns an empty array here, not an error."
},
"meta": {
"type": "object",
"properties": {
"cached": {
"type": "boolean",
"description": "Whether this response was served from the provider's cache."
}
},
"additionalProperties": false
}
},
"description": "The ETF flow 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.01638 |
- 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 15, 2026
