Price + news data — three stacks, free to premium
Swing Deck already ships with a 4-tier cascade that falls through providers automatically. You can run the whole thing without a single API key, but adding 3 free keys (5 minutes of signup work) unlocks live quotes, sentiment, and better news. Here's what each tier adds and how to wire them.
The cascade (how Swing Deck fetches data)
┌─ QUOTES ─────────────────────────────────────────────────────────┐
│ Tier 0 Tradier — sub-second, bearer token │
│ Tier 1 Finnhub — ~15-min delayed on free tier │
│ Tier 2A Alpha Vantage — keyed free tier │
│ Tier 2B Stooq — free, EOD-based │
│ Tier 3 yfinance — last resort, unofficial │
└──────────────────────────────────────────────────────────────────┘
┌─ HISTORICAL BARS ────────────────────────────────────────────────┐
│ Tier 2A Alpha Vantage — daily, keyed │
│ Tier 2B Stooq — daily, free │
│ Tier 3 yfinance — last resort │
└──────────────────────────────────────────────────────────────────┘
┌─ NEWS ───────────────────────────────────────────────────────────┐
│ Tier 1A Finnhub news — keyed, per-ticker │
│ Tier 1B GNews.io — commercial-friendly ($49 upgrade path) │
│ Tier 1C News API — non-commercial free tier │
│ Tier 2 Google RSS — free, unlimited │
│ Tier 3 yfinance news — last resort │
└──────────────────────────────────────────────────────────────────┘
┌─ SENTIMENT ──────────────────────────────────────────────────────┐
│ Primary MarketAux — sentiment scoring, 100/day free │
│ Fallback OBV + volume — no external call │
└──────────────────────────────────────────────────────────────────┘
Each tier falls through to the next on 429 (rate-limited), 500 (provider down), or empty response. The dashboard shows which tier answered each request in the source-health panel.
Three recommended stacks
🆓 FREE STACK · $0/mo · default out-of-box
Works without any API key signup. Good for testing Swing Deck before deciding to invest time in registrations.
| Broker | Manual portfolio.txt + paper trading mode |
| Quotes | Stooq (EOD) + yfinance (last resort) |
| Historical | Stooq + yfinance |
| News | Google RSS (unlimited, free) |
| Sentiment | OBV + volume fallback (no sentiment scoring) |
| Total | $0/mo |
What works: Full 11-point score, all 11 price-action triggers, all 13 pillars, status lights, AI thesis, morning briefing.
What's missing: live quotes (EOD only), AI sentiment, ticker-specific news with broad publisher coverage.
🔑 FREE-WITH-KEYS · $0/mo · recommended for most users
Same $0 cost, but you register for 4 free API keys (5 min total). Unlocks sentiment, per-ticker news, and full cascade.
| Broker | Tradier (free tier, 15-min delayed quotes + Greeks) |
| Quotes | Tradier → Finnhub → Alpha Vantage → Stooq → yfinance |
| Historical | Alpha Vantage → Stooq → yfinance |
| News | Finnhub (60/min) + GNews (100/day) + MarketAux (100/day) |
| Sentiment | MarketAux (AI scored) |
| Total | $0/mo |
The sweet spot. Every feature works. 5 minutes of signup = lifetime of better data.
💼 PRO STACK · ~$30/mo · for active traders
| Broker | Tradier Pro (real-time) or Alpaca |
| Tradier Pro real-time | $10/mo |
| MarketAux Pro | $19/mo · 10,000 calls/day · full sentiment |
| Everything else | Covered by free-tier keys above |
| Total | ~$29/mo |
Key upgrade: real-time quotes (no 15-min lag on triggers) + higher news throughput for active-ticker workflows.
🏆 PREMIUM STACK · ~$280/mo · power users
| Broker writes | E*TRADE or IBKR · free |
| Polygon Stocks Advanced | $79/mo · institutional-grade real-time |
| Unusual Whales | $50/mo · options flow + dark-pool prints |
| SpotGamma | $99/mo · real gamma exposure levels |
| Finnhub Pro | $50/mo · news + fundamentals + earnings transcripts |
| Total | ~$280/mo |
What this unlocks: real gamma walls (not the blog guru's metaphor — actual dealer positioning), options-flow edge, institutional news coverage, intraday regime awareness.
Free-keys quickstart (5 minutes total)
Register these 4 free keys in order. Each takes ~60 seconds. Add to your .env file.
60 API calls/min free forever. Powers: real-time quotes, per-ticker company news.
.env: FINNHUB_API_KEY=...
100 calls/day free. Powers: AI sentiment scoring (drives Swing Deck's Whale Sentiment score).
.env: MARKETAUX_API_KEY=...
25 calls/day free. Powers: historical backup, international tickers.
.env: ALPHA_VANTAGE_API_KEY=...
100 calls/day free. Powers: broad-publisher news. Commercial-friendly paid tier ($49/mo).
.env: GNEWS_API_KEY=...
Tradier is set up separately — see Broker setup. The free token works for quotes + Greeks.
Viewing cascade health in the dashboard
Hit http://localhost:8001/data/sources/health to see which providers are keyed + which tier answered each recent request. Also surfaced on the Settings panel as "Data Sources → Provider health."
{
"providers": {
"tradier": true,
"finnhub": true,
"marketaux": true,
"alpha_vantage": true,
"gnews": true,
"newsapi": false
}
}
Every true = an active tier. Every false = Swing Deck falls through to the next one (no user-visible breakage — just a degraded free-tier experience).
Ready to wire it up
Each free key is 60 seconds. All 4 = a production-grade stack for $0.
Back to install →