Developer API
Daily ranked stock and crypto watchlists with model conviction scores, reference levels, and macro context. Free tier live now — no key required.
Pricing
$0/mo
100 calls / day
✓Top 5 stock & crypto
✓Risk levels & sectors
✓Performance chart data
✓No API key required
$19/mo
500 calls / day
✓Model conviction scores
✓Upside & downside levels
✓Catalyst summaries
✓Full watchlist + daily change log
✓Pick-by-pick performance history
$49/mo
2,000 calls / day
✓Top 25 ranked stock feed
✓Full crypto + on-chain data
✓Real-time alert feed
✓Sector breakdowns
✓Per-symbol performance stats
✓Macro regime & market conditions
✓Weekly model confidence score
$99/mo
10,000 calls / day
✓Everything in Pro, plus:
✓Undervalued (GARP) watchlist
✓Monthly Generational selection (rolling out, first full selections August 2026)
✓Full historical picks archive, all cohorts
✓150+ fields per stock
✓Insider & congress trading data
Cancel anytime from your Stripe dashboard. No contracts.
Endpoints, fields, and rate limits may change. Some paid endpoints are newly added and may have limited historical data at first.
Endpoints
Full machine-readable contract: /api/v1/openapi.json (OpenAPI 3.0, importable into Postman/codegen)
/api/v1/free/today.json
Top 5 stocks + top 5 crypto + basic macro
/api/v1/crypto/today.json
Top 5 crypto with basic signals
/api/v1/performance/cumulative.json
Cumulative performance chart data
/api/v1/metadata.json
Endpoint discovery, signal health, schema
/api/v1/performance/undervalued.json
Undervalued strategy performance chart data
/api/v1/performance/undervalued_cumulative.json
Undervalued cumulative growth chart data
/api/v1/watchlist/today.json
Full watchlist with reference levels & catalysts
/api/v1/watchlist/changes.json
What changed today vs yesterday
/api/v1/performance/history.json
Full ranking history with returns
/api/v1/stocks/today.json
Top 25 stock feed with all fields
/api/v1/crypto/full.json
Top 25 crypto with on-chain & derivatives
/api/v1/confidence/latest.json
Model conviction scores
/api/v1/macro/today.json
Full macro regime: VIX, yields, GDP, CPI, FRED
/api/v1/stocks/sectors.json
Sector-level breakdown of the stock feed
/api/v1/performance.json
Win rates, returns, S&P 500 comparison
/api/v1/performance/symbols.json
Per-stock performance analytics
/api/v1/alerts/today.json
Today's price-level alert events
/api/v1/undervalued/latest.json
Undervalued watchlist (12-month value selections)
/api/v1/generational/latest.json
Generational (forever-hold) selections — launching August 2026
/api/v1/ultra/archive.json
Full historical pick archive with exit prices & reasons
Filter /stocks/today.json with query params:
GET /api/v1/stocks/today.json?min_score=80§or=Technology&risk=low&limit=10
GET /api/v1/stocks/today.json?symbol=NVDA
| symbol | Lookup a specific stock |
| min_score | Minimum AI score (0-99) |
| sector | Filter by sector |
| risk | Max risk level: low, medium, or high |
| limit | Max results to return |
Sample responses
Quick start
All endpoints return JSON. Your data is in the data field: response.data.stocks[0].symbol
Auth: Authorization: Bearer YOUR_API_KEY — Free endpoints need no key. Rate limits: Free 100/day, Starter 500/day, Pro 2,000/day, Ultra 10,000/day.
import requests
# Free (no key)
data = requests.get(
"https://top5stocks-api.top5stocks.workers.dev/api/v1/free/today.json"
).json()["data"]
for s in data["stocks"]:
print(f"{s['rank']}. {s['symbol']} — Score {s['selection_score']}, ${s['price']}")
# Paid (with key)
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = requests.get(
"https://top5stocks-api.top5stocks.workers.dev/api/v1/stocks/today.json",
headers=headers,
params={"min_score": 80, "sector": "Technology"}
).json()["data"]
for s in data["stocks"]:
levels = s.get("technical_levels", {})
print(f"{s['symbol']} — Up {levels.get('upside_reference_level')}, Down {levels.get('downside_reference_level')}")
// Free (no key)
const res = await fetch(
"https://top5stocks-api.top5stocks.workers.dev/api/v1/free/today.json"
);
const { data } = await res.json();
data.stocks.forEach(s =>
console.log(`${s.rank}. ${s.symbol} — Score ${s.selection_score}, $${s.price}`)
);
// Paid (with key)
const paid = await fetch(
"https://top5stocks-api.top5stocks.workers.dev/api/v1/stocks/today.json?min_score=80",
{ headers: { Authorization: "Bearer YOUR_API_KEY" } }
);
const paidData = (await paid.json()).data;
paidData.stocks.forEach(s => {
const levels = s.technical_levels || {};
console.log(`${s.symbol} — Up ${levels.upside_reference_level}, Down ${levels.downside_reference_level}`);
});
=TOP5PICKS() → Today's top 5 ranked stocks
=TOP5STOCK("NVDA", "score") → AI score for any symbol
=TOP5STOCK("AAPL", "upside") → Upside reference level (Starter+)
=TOP5SECTORS() → Sector breakdown with avg scores
Free functions work without an API key. Upside/downside fields require Starter or above.
Data & terms
200+ signals from 25+ market data sources. Stock and crypto data aggregated, scored, and ranked daily. Signal health is monitored automatically.
Disclaimer: This API provides ranked model output for educational and informational purposes only. It is not financial advice, not a recommendation to buy, sell, or hold any security, and not personalized investment guidance. We are not a registered investment advisor. Past model performance does not guarantee future results. Use this data at your own risk. Full disclaimer →