VecViz for agents
A quantitative equity model, published as tools an agent can call: forecast targets and the events that build them, price-probability bands, correlation by three methods, model portfolios, risk history and a published track record. Every number comes back computed, carrying the model date it describes.
Start with a free key
No email, no signup, no card.
curl -sX POST https://agents-vecviz.fly.dev/connect
Prefer a button? Get one on the web instead. Either way the key is shown once -- only its hash is stored.
Connect over MCP
{
"mcpServers": {
"vecviz": {
"url": "https://agents-vecviz.fly.dev/mcp",
"headers": { "Authorization": "Bearer vv_..." }
}
}
}
If your gateway forwards header values verbatim and cannot prepend
Bearer, send the bare key in X-VecViz-Key
instead. Both reach the same check.
Or plain REST
Base URL https://agents-vecviz.fly.dev, same key. Start at
GET /v1/usage: it reports your tier, what you have spent, and
the rate card it bills from. Full schema in the
API docs.
What a free key covers
- 10 tickers. AAPL GLD JPM MRK MSFT SPY TLT TSLA WMT XOM
- 200 units a month, and the key expires after 14 days.
- Every tool. Nothing is withheld by feature. The limit is which tickers you may ask about, so what you evaluate is the real product.
What subscribing adds
- 788 tickers instead of 10.
- 50,000 units a month.
- The OpenBB Workspace app on the same key: the same model as interactive widgets rather than tool calls.
Cancel anytime.
The 22 tools
Cost is the rule an ordinary single-ticker call fires. A sector, the whole universe or a portfolio price on the ladder below.
| Tool | Cost | What it answers |
|---|---|---|
correlate |
1 per ticker | Pairwise correlations among 2-40 tickers. 'pearson' is ordinary trailing 252-day return correlation and is what most callers mean; 'vecevent'... |
diversifiers |
10 per call | Top-ranked tickers that would most DIVERSIFY an exposure to a given one -- the call for 'what should I own alongside NVDA'. Two stages: it correlates... |
methodology |
free | What a VecViz number means and how it is derived. FREE. Read this before presenting a figure to a user; 'citation' is a one-line attribution safe to... |
metric_context |
1 per ticker | WHY a ticker's number is what it is -- the call for 'how could NVDA's 99D be -45%' or 'why is SPY's EUB so narrow'. Resolves the metric, horizon and... |
metric_history |
1 per ticker | How one VV-Data-Table metric has MOVED OVER TIME -- the call for 'chart SPY's V-Score', 'has NVDA's upside bound been widening', 'show me semis vs... |
model_review |
1 per ticker | How VecViz actually performed -- the published track record, one section at a time. Realized 99% bound breaks by ticker, breakage rates, average... |
option_fair_value |
1 per ticker | What VecViz thinks an option is worth, from the PPF band structure. There is no market implied-volatility source here, so it CANNOT say whether an... |
portfolio |
1 per holding, min 25 | Analyse a portfolio you supply, or look up VecViz model portfolios by strategy, max weight and target volatility. 'optimize' is a LOOKUP over... |
ppf |
1 per ticker | Price-probability forecast bands by horizon, and optionally the date each band reaches a target price. Ten bands at six horizons. Pass target_price... |
price_likelihood |
1 per ticker | What VecViz says about the likelihood of a PRICE for a ticker -- the one call for 'could NVDA reach 250' or 'what would take SPY to 600'. Five... |
report_feedback |
free | Report a wrong number, a confusing response, or a missing capability. FREE. Use this when a VecViz answer looks incorrect rather than silently... |
risk_history |
1 per ticker | How a ticker's downside and upside bounds have moved over time, plus where the current value sits in its own history -- so you can say 'this is the... |
usage |
free | The caller's tier, quota consumed, quota remaining, period reset, and the published rate card. FREE. |
vecevent_matrix |
1 per ticker | WHY a ticker's VNA target price is what it is: the contribution of each VecEvent across each Vector Set. Read-only and recomputes nothing. Costs 1... |
vecevent_matrix_reviewed |
1 per ticker | COMPOSE several VecEvent changes at once and get the whole reviewed picture back. vna_scenario prices ONE change against the untouched baseline and... |
vector_set_anchors |
1 per ticker | The historical tops and bottoms each Vector Set is drawn over: date, price, and whether each was a top or a bottom, in chronological order. This is... |
vecviz_catalog |
1 per ticker | What you can ask about: tickers, sectors, industries, per-dataset coverage, and the precomputed portfolio variants. FREE. Call this before naming... |
vecviz_filter |
10 per call | Which names clear SEVERAL thresholds AT ONCE -- the call for 'run the bullish screen'. Not the same question as vecviz_universe, which ranks the... |
vecviz_read |
1 per ticker | Everything known about ONE ticker: VNA target price, channels, VecEvents, V-Score, and a digest of which price-probability bands exist. START HERE... |
vecviz_report |
1 per call | Is a value unusual -- for THIS name, or for the market? Eight VV Data Table metrics (V-Score, VNA Ret, EUB/95U/99U, EDB/95D/99D), each with its... |
vecviz_universe |
1 per ticker | Screen or batch-read the whole universe at the latest model date. TWO uses. (1) DISCOVERY: rank every ticker on one metric to find candidates. (2)... |
vna_scenario |
1 per ticker | What a ticker's VNA target price becomes under a different VecEvent picture -- either RE-CHARACTERISE an event it already has (a new bias... |
What a call costs
A unit is one ticker's analytics at one model date.
| Rule | Units |
|---|---|
| tickers | 1 per ticker named |
| sector | 10 Flat, however many names the sector holds. |
| industry | 10 Priced the same as a sector. |
| universe | 500 A whole-universe pull costs less than naming every ticker individually. This is the volume discount. |
| model_portfolio | 25 |
| own_portfolio | 1 per holding, minimum 25 |
| free | 0 |
Every rule reads only the request, so the cost of a call is known before it is made. meta.units reports what was charged and meta.units_basis shows the arithmetic.
Never billed: requests refused for an unknown ticker (400); any other 4xx -- a rejected request delivered no analytics; server errors (5xx).
For the agent reading this
This page in markdown: https://agents-vecviz.fly.dev/agents.md. It carries the same facts plus the response envelope and every refusal code.
- llms.txt -- the machine-readable index.
- MCP server card -- tool names and input schemas, no key needed.
- OpenAPI schema -- the REST surface.
- Demo dashboards -- the same model as web pages, also keyless.
Outputs are quantitative research, not forecasts or investment advice.