Contract
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Stock ticker symbol (e.g. 'AAPL')."
},
"exchange": {
"type": "string",
"description": "Stock exchange (e.g. 'NYSE', 'NASDAQ')."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Buy": {
"type": "string",
"description": "Count of Buy ratings that month, as a numeric string."
},
"Date": {
"type": "string",
"description": "First day of the covered month, e.g. '09/01/2023' (MM/DD/YYYY)."
},
"Hold": {
"type": "string",
"description": "Count of Hold ratings that month, as a numeric string."
},
"Sell": {
"type": "string",
"description": "Count of Sell ratings that month, as a numeric string."
},
"StrongBuy": {
"type": "string",
"description": "Count of Strong Buy ratings that month, as a numeric string."
},
"TotalRatings": {
"type": "string",
"description": "Total analyst ratings that month, as a numeric string; equal to Sell+Hold+Buy+StrongBuy for that month in every row observed."
}
},
"additionalProperties": false
},
"description": "Monthly analyst rating counts, oldest first, on a real successful lookup (AAPL: 38 months, roughly 3 years of history). On an unrecognized ticker, this endpoint has been observed returning an unrelated fallback stock listing instead of an error or an empty result (see usage.md) -- none of that listing's fields are mapped to this shape, so those entries appear here as empty objects rather than ratings data."
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "'success' on both real calls observed, including the unrecognized-ticker case."
}
},
"description": "The analyst-ratings record, 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.0273 |
- 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
