Products
Copilot
Copilot combines ticker research and portfolio context into structured responses.
It exposes the available source evidence and the limits of that evidence.
Interpret the result#
Single-ticker and portfolio routes can return scores, model evidence, narrative, and source coverage. Return estimates, calibrated intervals, and suggested position sizes are conditional on the route's evidence and capital-authorization checks. Missing or withheld fields are not zero, and a research score alone is not a position-sizing recommendation.
/api/v3/copilot/ticker_full/{ticker} aggregates transparency and smart-money
layers. Inspect each layer for missing or stale data. Its candidate_weight_pct
parameter is echoed context reserved for a separate sizing integration; passing
it does not produce portfolio-aware sizing.
Access#
10 credits/call. Included on the Expert and Enterprise plans, or via the $199/mo Copilot add-on on any paid base plan (Starter or Pro).
Endpoints#
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/copilot/score/{ticker} | Ticker research with evidence and authorization gates; numerical return and sizing fields can be withheld. |
| POST | /api/v1/copilot/portfolio | Score a list of user-held tickers; aggregate factor tilts; identify top-3 names to trim/add. |
| GET | /api/v3/copilot/ticker_full/{ticker} | Omnibus single-stock aggregation: transparency (ML drivers, prediction, calibration, voter IC drift, coverage) + smart-money (13F changes, institutional ownership, insider trades, options flow, dark pool, max pain, GEX) — 12 layers fanned in parallel, 1 HTTP request. |
Examples#
Bash#
Get a single-ticker verdict:
1curl -H "Authorization: Bearer $TENGU_API_KEY" \2 "https://firm.wealthnow.io/api/v1/copilot/score/AAPL"Post a portfolio for scoring:
1curl -X POST -H "Authorization: Bearer $TENGU_API_KEY" \2 -H "Content-Type: application/json" \3 -d '{4 "holdings": [5 {"ticker": "AAPL", "weight_pct": 0.15},6 {"ticker": "MSFT", "weight_pct": 0.12},7 {"ticker": "NVDA", "weight_pct": 0.10}8 ]9 }' \10 "https://firm.wealthnow.io/api/v1/copilot/portfolio"Response fields differ by endpoint. Check coverage, freshness, availability, and
capital_authorized before using numerical return or sizing fields. Do not assume
a ticker aggregation shares the score endpoint's response shape.
Python#
Read the returned portfolio evidence:
1import os, requests2 3r = requests.post(4 "https://firm.wealthnow.io/api/v1/copilot/portfolio",5 headers={"Authorization": f"Bearer {os.environ['TENGU_API_KEY']}"},6 json={7 "holdings": [8 {"ticker": "AAPL", "weight_pct": 0.15},9 {"ticker": "MSFT", "weight_pct": 0.12},10 ]11 },12 timeout=30,13)14r.raise_for_status()15envelope = r.json()16print(f"Timestamp: {envelope['timestamp']}")17print(f"Portfolio score: {envelope['portfolio_score']:+.3f}")18print(f"Weighted decile: {envelope['weighted_decile']:.1f}/10")19print(f"Coverage: {envelope['coverage_pct']:.0%} of holdings in prediction universe")20print(f"Factor tilts: {envelope['factor_tilts']}")21print(f"Narrative: {envelope['narrative']}")Ticker collisions: crypto vs equity#
Nine tickers name both a crypto asset and a US-listed equity: BTC, ETH, LINK, LTC, COMP, ARB, NEAR, APT, ATOM.
asset_class defaults to equity; pass it explicitly so the namespace is never inferred:
1# the US-listed equity, not Bitcoin2curl -H "X-API-Key: $TENGU_API_KEY" \3 "https://firm.wealthnow.io/api/v3/intel/ml_prediction/BTC?asset_class=equity"Responses for those nine carry a disambiguation note:
1{2 "ticker_collision": {3 "note": "This is the US-listed equity 'BTC'. For the crypto asset, pass asset_class=crypto.",4 "crypto_available": false,5 "asset_class": "equity"6 }7}Requesting the crypto side fails closed with 404 crypto_model_unavailable rather than silently returning the equity. That error never means "use the equity instead." Non-colliding tickers are unaffected.
Related#
- API reference — complete endpoint catalog with per-route credit costs and plan access.
- Pricing & credits — plan tier details, add-on pricing, and credit consumption.
- Quant Signals — underlying 19-voter decomposition, ML predictions, and conformal intervals (Starter+).