Contract
{
"type": "object",
"required": [
"pair"
],
"properties": {
"pair": {
"type": "string",
"minLength": 1,
"description": "Trading pair (e.g. BTC/USDT). Example: BTC/USDT."
},
"type": {
"enum": [
"spot",
"swap",
"perpetual",
"perp"
],
"type": "string",
"default": "spot",
"description": "Market type: spot for spot trading, swap/perpetual/perp for perpetual contracts. Example: spot. Defaults to \"spot\"."
},
"exchange": {
"enum": [
"binance",
"okx",
"bybit",
"bitget",
"coinbase",
"kraken",
"gate",
"htx",
"kucoin",
"mexc",
"upbit",
"bitfinex",
"bitstamp",
"deribit",
"bitmex",
"bithumb",
"hyperliquid"
],
"type": "string",
"default": "binance",
"description": "Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid. Example: binance. Defaults to \"binance\"."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Present instead of data/meta when the request errors -- observed as 'HTTP_400' for an unrecognized trading pair."
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ask": {
"type": "number",
"description": "Current best ask price."
},
"bid": {
"type": "number",
"description": "Current best bid price."
},
"last": {
"type": "number",
"description": "Most recent trade price."
},
"pair": {
"type": "string",
"description": "Echoes the requested trading pair, e.g. 'BTC/USDT'."
},
"low_24h": {
"type": "number",
"description": "Lowest trade price over the trailing 24 hours."
},
"exchange": {
"type": "string",
"description": "Echoes the requested exchange, e.g. 'binance', 'okx'."
},
"high_24h": {
"type": "number",
"description": "Highest trade price over the trailing 24 hours."
},
"timestamp": {
"type": "number",
"description": "Unix seconds for this quote."
},
"change_24h_pct": {
"type": "number",
"description": "Trailing 24-hour price change, as a percent (observed negative on a down day)."
},
"volume_24h_base": {
"type": "number",
"description": "Trailing 24-hour trading volume, denominated in the pair's base asset."
}
},
"additionalProperties": true
},
"description": "Present on a successful lookup. One entry for the requested pair -- only a single-element array was observed across both success fixtures, but callers should read data[0] rather than assume length 1 is guaranteed."
},
"meta": {
"type": "object",
"properties": {
"cached": {
"type": "boolean",
"description": "True when this quote was served from a short-lived cache rather than fetched live."
}
},
"additionalProperties": true
},
"message": {
"type": "string",
"description": "Human-readable error message accompanying `code`."
}
},
"description": "A trading pair's live ticker (data + meta) on a successful lookup, or an error code/message when the requested pair is not recognized.",
"additionalProperties": true
}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.00819 |
- 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 8, 2026
